From 4ba22162193ca8587ebee43fff8d60251b76a415 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Mon, 27 Feb 2012 12:56:08 +0900 Subject: [PATCH] Reset previous symbols shifted state when auto switch backed Bug: 6072517 Change-Id: I00337b3ed5c85df4627e8f5a02465d406c4d9178 --- .../inputmethod/keyboard/internal/KeyboardState.java | 7 +++++-- .../keyboard/internal/KeyboardStateSingleTouchTests.java | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java index 6a8a03677..18a3f9794 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java @@ -546,16 +546,19 @@ public class KeyboardState { || code == Keyboard.CODE_OUTPUT_TEXT)) { mSwitchState = SWITCH_STATE_SYMBOL; } - // Switch back to alpha keyboard mode immediately if user types a quote character. + // Switch back to alpha keyboard mode immediately if user types one of the switch back + // characters. if (isLayoutSwitchBackCharacter(code)) { toggleAlphabetAndSymbols(); + mPrevSymbolsKeyboardWasShifted = false; } break; case SWITCH_STATE_SYMBOL: // Switch back to alpha keyboard mode if user types one or more non-space/enter - // characters followed by a space/enter or a quote character. + // characters followed by a space/enter or one of the switch back characters. if (isSpaceCharacter(code) || isLayoutSwitchBackCharacter(code)) { toggleAlphabetAndSymbols(); + mPrevSymbolsKeyboardWasShifted = false; } break; } diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java index ef0facf57..de2a50fcf 100644 --- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java +++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateSingleTouchTests.java @@ -122,6 +122,8 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase { pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); // Enter space, switch back to alphabet. pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_UNSHIFTED); + // Press/release "?123" key, enter into symbols (not symbols shifted). + pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); } // Automatic switch back to alphabet shift locked test by space key.