From 6769c67987f323008647f5d029c02f8cc95272ee Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 19 Nov 2010 13:52:58 -0800 Subject: [PATCH] Fix automatic temporary upper case mode behaviour This change is a followup of I948ef26f Automatic Temporary Upper Case mode acts like Normal mode until shift key is pressed. However, after shift key is pressed, it acts like Manual Temporary Upper Case mode. Bug: 3193390 Change-Id: Id3d7a38a1f5905322cd46ded36b1db26576d49af --- .../com/android/inputmethod/latin/KeyboardSwitcher.java | 8 ++++---- .../com/android/inputmethod/latin/ModifierKeyState.java | 4 ++-- .../src/com/android/inputmethod/latin/ShiftKeyState.java | 9 +++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index 5f78cb91e..0d116dcf9 100644 --- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -499,26 +499,26 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha if (isShiftLocked()) { // Shift key is pressed while caps lock state, we will treat this state as shifted // caps lock state and mark as if shift key pressed while normal state. - setManualTemporaryUpperCase(true); shiftKeyState.onPress(); + setManualTemporaryUpperCase(true); } else if (isAutomaticTemporaryUpperCase()) { // Shift key is pressed while automatic temporary upper case, we have to move to // manual temporary upper case. + shiftKeyState.onPress(); setManualTemporaryUpperCase(true); - shiftKeyState.onPressOnShifted(); } else if (isShiftedOrShiftLocked()) { // In manual upper case state, we just record shift key has been pressing while // shifted state. shiftKeyState.onPressOnShifted(); } else { // In base layout, chording or manual temporary upper case mode is started. - toggleShift(); shiftKeyState.onPress(); + toggleShift(); } } else { // In symbol mode, just toggle symbol and symbol more keyboard. - toggleShift(); shiftKeyState.onPress(); + toggleShift(); } } diff --git a/java/src/com/android/inputmethod/latin/ModifierKeyState.java b/java/src/com/android/inputmethod/latin/ModifierKeyState.java index 07a5c4f7f..8443be433 100644 --- a/java/src/com/android/inputmethod/latin/ModifierKeyState.java +++ b/java/src/com/android/inputmethod/latin/ModifierKeyState.java @@ -49,7 +49,7 @@ public class ModifierKeyState { public void onOtherKeyPressed() { final int oldState = mState; - if (mState == PRESSING) + if (oldState == PRESSING) mState = MOMENTARY; if (DEBUG) Log.d(TAG, mName + ".onOtherKeyPressed: " + toString(oldState) + " > " + this); @@ -64,7 +64,7 @@ public class ModifierKeyState { return toString(mState); } - protected static String toString(int state) { + protected String toString(int state) { switch (state) { case RELEASING: return "RELEASING"; case PRESSING: return "PRESSING"; diff --git a/java/src/com/android/inputmethod/latin/ShiftKeyState.java b/java/src/com/android/inputmethod/latin/ShiftKeyState.java index ef13ddc9b..7412a566d 100644 --- a/java/src/com/android/inputmethod/latin/ShiftKeyState.java +++ b/java/src/com/android/inputmethod/latin/ShiftKeyState.java @@ -29,9 +29,9 @@ public class ShiftKeyState extends ModifierKeyState { @Override public void onOtherKeyPressed() { int oldState = mState; - if (mState == PRESSING) { + if (oldState == PRESSING) { mState = MOMENTARY; - } else if (mState == PRESSING_ON_SHIFTED) { + } else if (oldState == PRESSING_ON_SHIFTED) { mState = IGNORING; } if (DEBUG) @@ -58,11 +58,12 @@ public class ShiftKeyState extends ModifierKeyState { return toString(mState); } - protected static String toString(int state) { + @Override + protected String toString(int state) { switch (state) { case PRESSING_ON_SHIFTED: return "PRESSING_ON_SHIFTED"; case IGNORING: return "IGNORING"; - default: return ModifierKeyState.toString(state); + default: return super.toString(state); } } }