diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index d9d28f186..3540577ca 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -205,16 +205,21 @@ public class Keyboard { 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 @@ public class Keyboard { // 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 e839fe7a3..fa073b671 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -134,6 +134,7 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions, if (mainKeyboardId.isPhoneKeyboard()) { mState.onToggleAlphabetAndSymbols(); } + updateShiftState(); } public void saveKeyboardState() { @@ -164,7 +165,6 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions, 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);