diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index 1e4c8b106fe..3a948651d35 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -292,10 +292,6 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment // Refresh internal states in mInputMethodSettingValues to keep the latest // "InputMethodInfo"s and "InputMethodSubtype"s mInputMethodSettingValues.refreshAllInputMethodAndSubtypes(); - // TODO: Consolidate the logic to InputMethodSettingsWrapper - InputMethodAndSubtypeUtil.loadInputMethodSubtypeList( - this, getContentResolver(), - mInputMethodSettingValues.getInputMethodList(), null); updateInputMethodPreferenceViews(); } @@ -437,6 +433,13 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment } } updateCurrentImeName(); + // TODO: Consolidate the logic with InputMethodSettingsWrapper + // CAVEAT: The preference class here does not know about the default value - that is + // managed by the Input Method Manager Service, so in this case it could save the wrong + // value. Hence we must update the checkboxes here. + InputMethodAndSubtypeUtil.loadInputMethodSubtypeList( + this, getContentResolver(), + mInputMethodSettingValues.getInputMethodList(), null); } private void updateCurrentImeName() {