Update shift state when alphabet keyboard has been set

Bug: 5857492
Change-Id: I5ef78af21a76e8cf645e223d1ffa6212690bb1eb
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 2add292..54d842f 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -324,6 +324,12 @@
         setKeyboard(mKeyboardSet.getSymbolsShiftedKeyboard());
     }
 
+    // Implements {@link KeyboardState.SwitchActions}.
+    @Override
+    public void requestUpdatingShiftState() {
+        mState.onUpdateShiftState(mInputMethodService.getCurrentAutoCapsState());
+    }
+
     public boolean isInMomentarySwitchState() {
         return mState.isInMomentarySwitchState();
     }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index f54bdbb..42f069c 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -53,6 +53,11 @@
         public void setSymbolsKeyboard();
 
         public void setSymbolsShiftedKeyboard();
+
+        /**
+         * Request to call back {@link KeyboardState#onUpdateShiftState(boolean)}.
+         */
+        public void requestUpdatingShiftState();
     }
 
     private KeyboardShiftState mKeyboardShiftState = new KeyboardShiftState();
@@ -212,6 +217,7 @@
         mSwitchState = SWITCH_STATE_ALPHA;
         setShiftLocked(mPrevMainKeyboardWasShiftLocked);
         mPrevMainKeyboardWasShiftLocked = false;
+        mSwitchActions.requestUpdatingShiftState();
     }
 
     private void setSymbolsKeyboard() {
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTests.java
index 9dc1fac..006a572 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTests.java
@@ -71,6 +71,11 @@
             mLayout = SYMBOLS_SHIFTED;
         }
 
+        @Override
+        public void requestUpdatingShiftState() {
+            mState.onUpdateShiftState(mAutoCaps);
+        }
+
         public void toggleCapsLock() {
             mState.onToggleCapsLock();
         }
@@ -111,7 +116,6 @@
         public void onCancelInput(boolean isSinglePointer) {
             mState.onCancelInput(isSinglePointer);
         }
-
     }
 
     private MockKeyboardSwitcher mSwitcher;