Do not merge. Refresh "InputMethodPreference"s onResume
Corresponding change is I015075d57ebed94d6b
Bug: 11245599
Change-Id: I8be2b9a81d41fab979afe000bd1bce6fc57550c7
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index a2700cf..1e4c8b1 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -166,25 +166,6 @@
mKeyboardSettingsCategory.addPreference(currentIme);
}
- synchronized (mInputMethodPreferenceList) {
- mInputMethodPreferenceList.clear();
- final List<InputMethodInfo> imis = mInputMethodSettingValues.getInputMethodList();
- final int N = (imis == null ? 0 : imis.size());
- for (int i = 0; i < N; ++i) {
- final InputMethodInfo imi = imis.get(i);
- final InputMethodPreference pref = getInputMethodPreference(imi);
- pref.setOnImePreferenceChangeListener(mOnImePreferenceChangedListener);
- mInputMethodPreferenceList.add(pref);
- }
-
- if (!mInputMethodPreferenceList.isEmpty()) {
- Collections.sort(mInputMethodPreferenceList);
- for (int i = 0; i < N; ++i) {
- mKeyboardSettingsCategory.addPreference(mInputMethodPreferenceList.get(i));
- }
- }
- }
-
// Build hard keyboard and game controller preference categories.
mIm = (InputManager)getActivity().getSystemService(Context.INPUT_SERVICE);
updateInputDevices();
@@ -427,6 +408,28 @@
private void updateInputMethodPreferenceViews() {
synchronized (mInputMethodPreferenceList) {
+ // Clear existing "InputMethodPreference"s
+ for (final InputMethodPreference imp : mInputMethodPreferenceList) {
+ mKeyboardSettingsCategory.removePreference(imp);
+ }
+ mInputMethodPreferenceList.clear();
+ final List<InputMethodInfo> imis = mInputMethodSettingValues.getInputMethodList();
+ final int N = (imis == null ? 0 : imis.size());
+ for (int i = 0; i < N; ++i) {
+ final InputMethodInfo imi = imis.get(i);
+ final InputMethodPreference pref = getInputMethodPreference(imi);
+ pref.setOnImePreferenceChangeListener(mOnImePreferenceChangedListener);
+ mInputMethodPreferenceList.add(pref);
+ }
+
+ if (!mInputMethodPreferenceList.isEmpty()) {
+ Collections.sort(mInputMethodPreferenceList);
+ for (int i = 0; i < N; ++i) {
+ mKeyboardSettingsCategory.addPreference(mInputMethodPreferenceList.get(i));
+ }
+ }
+
+ // update views status
for (Preference pref : mInputMethodPreferenceList) {
if (pref instanceof InputMethodPreference) {
((InputMethodPreference) pref).updatePreferenceViews();