Fix automatic temporary upper case mode shift key graphics

Bug: 5802387
Change-Id: I4f59fb2f971c543748ed32b37af528767a0549e4
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index d9d28f1..3540577 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -205,16 +205,21 @@
         return mShiftState.isShiftLocked();
     }
 
+    private void setShiftKeyGraphics(boolean newShiftState) {
+        if (mShiftState.isShiftLocked()) {
+            return;
+        }
+        for (final Key key : mShiftKeys) {
+            final int attrId = newShiftState
+                    ? R.styleable.Keyboard_iconShiftKeyShifted
+                    : R.styleable.Keyboard_iconShiftKey;
+            key.setIcon(mIconsSet.getIconByAttrId(attrId));
+        }
+    }
+
     // TODO: Remove this method.
     void setShifted(boolean newShiftState) {
-        if (!mShiftState.isShiftLocked()) {
-            for (final Key key : mShiftKeys) {
-                final int attrId = newShiftState
-                        ? R.styleable.Keyboard_iconShiftKeyShifted
-                        : R.styleable.Keyboard_iconShiftKey;
-                key.setIcon(mIconsSet.getIconByAttrId(attrId));
-            }
-        }
+        setShiftKeyGraphics(newShiftState);
         mShiftState.setShifted(newShiftState);
     }
 
@@ -225,6 +230,7 @@
 
     // TODO: Remove this method
     void setAutomaticTemporaryUpperCase() {
+        setShiftKeyGraphics(true);
         mShiftState.setAutomaticTemporaryUpperCase();
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index e839fe7..fa073b6 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -134,6 +134,7 @@
         if (mainKeyboardId.isPhoneKeyboard()) {
             mState.onToggleAlphabetAndSymbols();
         }
+        updateShiftState();
     }
 
     public void saveKeyboardState() {
@@ -164,7 +165,6 @@
         mKeyboardView.updateSpacebar(0.0f,
                 mSubtypeSwitcher.needsToDisplayLanguage(keyboard.mId.mLocale));
         mKeyboardView.updateShortcutKey(mSubtypeSwitcher.isShortcutImeReady());
-        updateShiftState();
         final boolean localeChanged = (oldKeyboard == null)
                 || !keyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale);
         mInputMethodService.mHandler.startDisplayLanguageOnSpacebar(localeChanged);