aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2013-04-24 13:18:01 +0900
committerJean Chalard <jchalard@google.com>2013-04-24 20:46:28 +0900
commitc017f18a59a6b0ba1905a67193057b5b70410e06 (patch)
tree2b4e55313ea91a54e092698efa2a6938bcc13337
parent43e8639e4e39defa2c6e5b0743a74cdb572adb2b (diff)
downloadlatinime-c017f18a59a6b0ba1905a67193057b5b70410e06.tar.gz
latinime-c017f18a59a6b0ba1905a67193057b5b70410e06.tar.xz
latinime-c017f18a59a6b0ba1905a67193057b5b70410e06.zip
[PB4] Make a memory non-static
The life span of this object is actually the life span of the interface. It should not be static. Also, we'll have a few other things to store in there soon. Bug: 7600384 Change-Id: I708019e9ee53653e83a1e52c8e76326c3e39bcf3
-rw-r--r--java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java24
-rw-r--r--java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java7
-rw-r--r--java/src/com/android/inputmethod/dictionarypack/WordListPreference.java18
3 files changed, 40 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java
new file mode 100644
index 000000000..cbf0476a3
--- /dev/null
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+
+package com.android.inputmethod.dictionarypack;
+
+/**
+ * Helper class to maintain the interface state of word list preferences.
+ */
+public class DictionaryListInterfaceState {
+ public String mLastClickedId = null;
+}
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
index 9e27c1f3f..aa1e9b9cf 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
@@ -64,6 +64,8 @@ public final class DictionarySettingsFragment extends PreferenceFragment
private ConnectivityManager mConnectivityManager;
private MenuItem mUpdateNowMenu;
private boolean mChangedSettings;
+ private DictionaryListInterfaceState mDictionaryListInterfaceState =
+ new DictionaryListInterfaceState();
private final BroadcastReceiver mConnectivityChangedReceiver = new BroadcastReceiver() {
@Override
@@ -297,8 +299,9 @@ public final class DictionarySettingsFragment extends PreferenceFragment
final String key = matchLevelString + "." + description + "." + wordlistId;
final WordListPreference existingPref = prefList.get(key);
if (null == existingPref || hasPriority(status, existingPref.mStatus)) {
- final WordListPreference pref = new WordListPreference(activity, mClientId,
- wordlistId, version, locale, description, status);
+ final WordListPreference pref = new WordListPreference(activity,
+ mDictionaryListInterfaceState, mClientId, wordlistId, version, locale,
+ description, status);
prefList.put(key, pref);
}
} while (cursor.moveToNext());
diff --git a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
index 48d8b144c..32825ba7f 100644
--- a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
+++ b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
@@ -65,16 +65,19 @@ public final class WordListPreference extends Preference {
static final private int ANIMATION_IN = 1;
static final private int ANIMATION_OUT = 2;
- private static String sLastClickedWordlistId = null;
+ private final DictionaryListInterfaceState mInterfaceState;
private final OnWordListPreferenceClick mPreferenceClickHandler =
new OnWordListPreferenceClick();
private final OnActionButtonClick mActionButtonClickHandler =
new OnActionButtonClick();
- public WordListPreference(final Context context, final String clientId, final String wordlistId,
- final int version, final Locale locale, final String description, final int status) {
+ public WordListPreference(final Context context,
+ final DictionaryListInterfaceState dictionaryListInterfaceState, final String clientId,
+ final String wordlistId, final int version, final Locale locale,
+ final String description, final int status) {
super(context, null);
mContext = context;
+ mInterfaceState = dictionaryListInterfaceState;
mClientId = clientId;
mVersion = version;
mWordlistId = wordlistId;
@@ -192,7 +195,8 @@ public final class WordListPreference extends Preference {
final Button button = (Button)view.findViewById(R.id.wordlist_button);
button.setText(getButtonLabel(mStatus));
// String identity match. This is an ==, not an .equals, on purpose.
- button.setVisibility(mWordlistId == sLastClickedWordlistId ? View.VISIBLE : View.INVISIBLE);
+ button.setVisibility(mWordlistId == mInterfaceState.mLastClickedId
+ ? View.VISIBLE : View.INVISIBLE);
button.setOnClickListener(mActionButtonClickHandler);
view.setOnClickListener(mPreferenceClickHandler);
}
@@ -206,15 +210,15 @@ public final class WordListPreference extends Preference {
if (!(parent instanceof ListView)) return;
final ListView listView = (ListView)parent;
final int indexToOpen;
- if (sLastClickedWordlistId == mWordlistId) {
+ if (mInterfaceState.mLastClickedId == mWordlistId) {
// This button was being shown. Clear last state to record that there isn't a
// displayed button any more, and note that we don't want to open any button.
- sLastClickedWordlistId = null;
+ mInterfaceState.mLastClickedId = null;
indexToOpen = -1;
} else {
// This button was not being shown. Mark it as the latest selected button, and
// remember the index of this child as the one to open in the following loop.
- sLastClickedWordlistId = mWordlistId;
+ mInterfaceState.mLastClickedId = mWordlistId;
indexToOpen = listView.indexOfChild(v);
}
final int lastDisplayedIndex =