From 38b5605feed7260a6dc43ce7bd88d0f95cf43261 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Wed, 3 Aug 2011 09:39:42 -0700
Subject: [PATCH] Fix saving keyboard state while rotating

This change also uses longer timeout for restoring keyboard state.

Bug: 4311428
Change-Id: Ieade33d7c69f1dee727b2b8c26f0112eca44b336
---
 .../android/inputmethod/keyboard/KeyboardSwitcher.java   | 9 +++++++--
 java/src/com/android/inputmethod/latin/LatinIME.java     | 2 +-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 2d08abc19f..f629a071ab 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -188,8 +188,13 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
 
         public void save() {
             mIsAlphabetMode = isAlphabetMode();
-            mIsShiftLocked = mIsAlphabetMode && isShiftLocked();
-            mIsShifted = !mIsShiftLocked && isShiftedOrShiftLocked();
+            if (mIsAlphabetMode) {
+                mIsShiftLocked = isShiftLocked();
+                mIsShifted = !mIsShiftLocked && isShiftedOrShiftLocked();
+            } else {
+                mIsShiftLocked = false;
+                mIsShifted = mSymbolsShiftedKeyboardId.equals(mCurrentId);
+            }
             mIsValid = true;
         }
 
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index d00ce78e10..cbfc900177 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -115,7 +115,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
 
     private static final int SCREEN_ORIENTATION_CHANGE_DETECTION_DELAY = 2;
     private static final int ACCUMULATE_START_INPUT_VIEW_DELAY = 20;
-    private static final int RESTORE_KEYBOARD_STATE_DELAY = 200;
+    private static final int RESTORE_KEYBOARD_STATE_DELAY = 300;
 
     /**
      * The name of the scheme used by the Package Manager to warn of a new package installation,
-- 
GitLab