Revert I432be8f7 partially
This change reverts removing SubtypeSwitcher.onConfigurationChanged by careless in I432be8f7.
Bug: 3290290
Change-Id: I796ea01877d61eb750dabdeb3fdbf87666646c56
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index bea44ee..4a78c2e 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -444,6 +444,7 @@
@Override
public void onConfigurationChanged(Configuration conf) {
+ mSubtypeSwitcher.onConfigurationChanged(conf);
// If orientation changed while predicting, commit the change
if (conf.orientation != mOrientation) {
InputConnection ic = getCurrentInputConnection();
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 968495b..21c99fe 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -370,6 +370,23 @@
}
}
+ public void onConfigurationChanged(Configuration conf) {
+ final Locale systemLocale = conf.locale;
+ // If system configuration was changed, update all parameters.
+ if (!TextUtils.equals(systemLocale.toString(), mSystemLocale.toString())) {
+ if (mConfigUseSpacebarLanguageSwitcher) {
+ // If the system locale changes and is different from the saved
+ // locale (mSystemLocale), then reload the input locale list from the
+ // latin ime settings (shared prefs) and reset the input locale
+ // to the first one.
+ mLanguageSwitcher.loadLocales(mPrefs);
+ mLanguageSwitcher.setSystemLocale(systemLocale);
+ } else {
+ updateAllParameters();
+ }
+ }
+ }
+
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (mConfigUseSpacebarLanguageSwitcher) {
if (Settings.PREF_SELECTED_LANGUAGES.equals(key)) {