From ea90cd2fca08e5c65e54d8df1c208337e08fc541 Mon Sep 17 00:00:00 2001 From: Satoshi Kataoka Date: Fri, 18 Oct 2013 16:57:57 +0900 Subject: [PATCH] Do not merge. Refresh "InputMethodPreference"s onResume Corresponding change is I015075d57ebed94d6b Bug: 11245599 Change-Id: I8be2b9a81d41fab979afe000bd1bce6fc57550c7 --- .../InputMethodAndLanguageSettings.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index a2700cfc44e..1e4c8b106fe 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -166,25 +166,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment mKeyboardSettingsCategory.addPreference(currentIme); } - synchronized (mInputMethodPreferenceList) { - mInputMethodPreferenceList.clear(); - final List 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 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment private void updateInputMethodPreferenceViews() { synchronized (mInputMethodPreferenceList) { + // Clear existing "InputMethodPreference"s + for (final InputMethodPreference imp : mInputMethodPreferenceList) { + mKeyboardSettingsCategory.removePreference(imp); + } + mInputMethodPreferenceList.clear(); + final List 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();