From d98f406dd31c9f72ba3273b10b521a1a77136ac3 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Tue, 23 Apr 2013 20:39:54 +0900
Subject: [PATCH] [PB2] Small bugfix

The button would not display after it got hidden once.

Bug: 7600384
Change-Id: I57f9f1191be3b8fff55dde7a2781dbef68a2df62
---
 .../dictionarypack/WordListPreference.java       | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
index f042795ddb..a9301e2549 100644
--- a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
+++ b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
@@ -203,17 +203,27 @@ public final class WordListPreference extends Preference {
         @Override
         public void onClick(final View v) {
             final Button button = (Button)v.findViewById(R.id.wordlist_button);
-            animateButton(button, ANIMATION_IN);
             final ViewParent parent = v.getParent();
             // Just in case something changed in the framework, test for the concrete class
             if (!(parent instanceof ListView)) return;
             final ListView listView = (ListView)parent;
             final int myIndex = listView.indexOfChild(v) + listView.getFirstVisiblePosition();
             if (NOT_AN_INDEX != sLastClickedIndex) {
+                // If another button is showing, hide it
                 animateButton(getButtonForIndex(listView, sLastClickedIndex), ANIMATION_OUT);
             }
-            sLastClickedIndex = myIndex;
-            sLastClickedWordlistId = mWordlistId;
+            if (sLastClickedWordlistId == mWordlistId) {
+                // This button was being shown. Clear last state to record that there isn't a
+                // displayed button any more.
+                sLastClickedIndex = NOT_AN_INDEX;
+                sLastClickedWordlistId = null;
+            } else {
+                // This button was not being shown. Show it and mark it as the latest selected
+                // button.
+                animateButton(button, ANIMATION_IN);
+                sLastClickedIndex = myIndex;
+                sLastClickedWordlistId = mWordlistId;
+            }
         }
     }
 
-- 
GitLab