Merge "[PB4] Make a memory non-static"
This commit is contained in:
commit
e91c001da9
3 changed files with 40 additions and 9 deletions
|
@ -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;
|
||||||
|
}
|
|
@ -64,6 +64,8 @@ public final class DictionarySettingsFragment extends PreferenceFragment
|
||||||
private ConnectivityManager mConnectivityManager;
|
private ConnectivityManager mConnectivityManager;
|
||||||
private MenuItem mUpdateNowMenu;
|
private MenuItem mUpdateNowMenu;
|
||||||
private boolean mChangedSettings;
|
private boolean mChangedSettings;
|
||||||
|
private DictionaryListInterfaceState mDictionaryListInterfaceState =
|
||||||
|
new DictionaryListInterfaceState();
|
||||||
|
|
||||||
private final BroadcastReceiver mConnectivityChangedReceiver = new BroadcastReceiver() {
|
private final BroadcastReceiver mConnectivityChangedReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -297,8 +299,9 @@ public final class DictionarySettingsFragment extends PreferenceFragment
|
||||||
final String key = matchLevelString + "." + description + "." + wordlistId;
|
final String key = matchLevelString + "." + description + "." + wordlistId;
|
||||||
final WordListPreference existingPref = prefList.get(key);
|
final WordListPreference existingPref = prefList.get(key);
|
||||||
if (null == existingPref || hasPriority(status, existingPref.mStatus)) {
|
if (null == existingPref || hasPriority(status, existingPref.mStatus)) {
|
||||||
final WordListPreference pref = new WordListPreference(activity, mClientId,
|
final WordListPreference pref = new WordListPreference(activity,
|
||||||
wordlistId, version, locale, description, status);
|
mDictionaryListInterfaceState, mClientId, wordlistId, version, locale,
|
||||||
|
description, status);
|
||||||
prefList.put(key, pref);
|
prefList.put(key, pref);
|
||||||
}
|
}
|
||||||
} while (cursor.moveToNext());
|
} while (cursor.moveToNext());
|
||||||
|
|
|
@ -65,16 +65,19 @@ public final class WordListPreference extends Preference {
|
||||||
static final private int ANIMATION_IN = 1;
|
static final private int ANIMATION_IN = 1;
|
||||||
static final private int ANIMATION_OUT = 2;
|
static final private int ANIMATION_OUT = 2;
|
||||||
|
|
||||||
private static String sLastClickedWordlistId = null;
|
private final DictionaryListInterfaceState mInterfaceState;
|
||||||
private final OnWordListPreferenceClick mPreferenceClickHandler =
|
private final OnWordListPreferenceClick mPreferenceClickHandler =
|
||||||
new OnWordListPreferenceClick();
|
new OnWordListPreferenceClick();
|
||||||
private final OnActionButtonClick mActionButtonClickHandler =
|
private final OnActionButtonClick mActionButtonClickHandler =
|
||||||
new OnActionButtonClick();
|
new OnActionButtonClick();
|
||||||
|
|
||||||
public WordListPreference(final Context context, final String clientId, final String wordlistId,
|
public WordListPreference(final Context context,
|
||||||
final int version, final Locale locale, final String description, final int status) {
|
final DictionaryListInterfaceState dictionaryListInterfaceState, final String clientId,
|
||||||
|
final String wordlistId, final int version, final Locale locale,
|
||||||
|
final String description, final int status) {
|
||||||
super(context, null);
|
super(context, null);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
|
mInterfaceState = dictionaryListInterfaceState;
|
||||||
mClientId = clientId;
|
mClientId = clientId;
|
||||||
mVersion = version;
|
mVersion = version;
|
||||||
mWordlistId = wordlistId;
|
mWordlistId = wordlistId;
|
||||||
|
@ -192,7 +195,8 @@ public final class WordListPreference extends Preference {
|
||||||
final Button button = (Button)view.findViewById(R.id.wordlist_button);
|
final Button button = (Button)view.findViewById(R.id.wordlist_button);
|
||||||
button.setText(getButtonLabel(mStatus));
|
button.setText(getButtonLabel(mStatus));
|
||||||
// String identity match. This is an ==, not an .equals, on purpose.
|
// 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);
|
button.setOnClickListener(mActionButtonClickHandler);
|
||||||
view.setOnClickListener(mPreferenceClickHandler);
|
view.setOnClickListener(mPreferenceClickHandler);
|
||||||
}
|
}
|
||||||
|
@ -206,15 +210,15 @@ public final class WordListPreference extends Preference {
|
||||||
if (!(parent instanceof ListView)) return;
|
if (!(parent instanceof ListView)) return;
|
||||||
final ListView listView = (ListView)parent;
|
final ListView listView = (ListView)parent;
|
||||||
final int indexToOpen;
|
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
|
// 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.
|
// displayed button any more, and note that we don't want to open any button.
|
||||||
sLastClickedWordlistId = null;
|
mInterfaceState.mLastClickedId = null;
|
||||||
indexToOpen = -1;
|
indexToOpen = -1;
|
||||||
} else {
|
} else {
|
||||||
// This button was not being shown. Mark it as the latest selected button, and
|
// 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.
|
// remember the index of this child as the one to open in the following loop.
|
||||||
sLastClickedWordlistId = mWordlistId;
|
mInterfaceState.mLastClickedId = mWordlistId;
|
||||||
indexToOpen = listView.indexOfChild(v);
|
indexToOpen = listView.indexOfChild(v);
|
||||||
}
|
}
|
||||||
final int lastDisplayedIndex =
|
final int lastDisplayedIndex =
|
||||||
|
|
Loading…
Reference in a new issue