From a9f4b19ca409f55a88f7dbe0e8b1c17a37717ac7 Mon Sep 17 00:00:00 2001
From: Amith Yamasani <yamasani@google.com>
Date: Sun, 21 Feb 2010 15:59:15 -0800
Subject: [PATCH] Switch keyboards when configuration changes. Bug 2432435

---
 src/com/android/inputmethod/latin/LatinIME.java | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/com/android/inputmethod/latin/LatinIME.java b/src/com/android/inputmethod/latin/LatinIME.java
index 0f91c3b655..bcd190bfd0 100644
--- a/src/com/android/inputmethod/latin/LatinIME.java
+++ b/src/com/android/inputmethod/latin/LatinIME.java
@@ -360,8 +360,18 @@ public class LatinIME extends InputMethodService
 
     @Override
     public void onConfigurationChanged(Configuration conf) {
+        // If the system locale changes and is different from the saved
+        // locale (mLocale), then reload the input locale list from the 
+        // latin ime settings (shared prefs) and reset the input locale
+        // to the first one.
         if (!TextUtils.equals(conf.locale.toString(), mLocale)) {
-            initSuggest(conf.locale.toString());
+            if (mLanguageSwitcher != null) {
+                mLanguageSwitcher.loadLocales(
+                        PreferenceManager.getDefaultSharedPreferences(this));
+                toggleLanguage(true, true);
+            } else {
+                reloadKeyboards();
+            }
         }
         // If orientation changed while predicting, commit the change
         if (conf.orientation != mOrientation) {
@@ -369,8 +379,8 @@ public class LatinIME extends InputMethodService
             commitTyped(ic);
             if (ic != null) ic.finishComposingText(); // For voice input
             mOrientation = conf.orientation;
+            reloadKeyboards();
         }
-        reloadKeyboards();
         super.onConfigurationChanged(conf);
     }
 
-- 
GitLab