aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-11-27 11:30:52 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2012-11-27 11:30:52 -0800
commitb172725c8dc26bc96667135d1b17396f2a6257b4 (patch)
treedacd48648a281680b0e6f81087a77fe41723b801
parentb9385ff9be484487a523c1eb6db4eba33ef2359d (diff)
parent7d045829b8cd613ab43cb88b4cf0d4f492827996 (diff)
downloadlatinime-b172725c8dc26bc96667135d1b17396f2a6257b4.tar.gz
latinime-b172725c8dc26bc96667135d1b17396f2a6257b4.tar.xz
latinime-b172725c8dc26bc96667135d1b17396f2a6257b4.zip
am 7d045829: Request update shift state after shift-chording input
* commit '7d045829b8cd613ab43cb88b4cf0d4f492827996': Request update shift state after shift-chording input
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java5
-rw-r--r--tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java26
2 files changed, 26 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index 5e111fb9a..631e647e8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -487,6 +487,11 @@ public final class KeyboardState {
// After chording input while normal state.
setShifted(UNSHIFT);
}
+ // After chording input, automatic shift state may have been changed depending on
+ // what characters were input.
+ mShiftKeyState.onRelease();
+ mSwitchActions.requestUpdatingShiftState();
+ return;
} else if (mAlphabetShiftState.isShiftLockShifted() && withSliding) {
// In shift locked state, shift has been pressed and slid out to other key.
setShiftLocked(true);
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
index f5ad7239e..053bcb53a 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateMultiTouchTests.java
@@ -50,7 +50,7 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);
// Press/release symbol letter key.
chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
- // Release "123?" key, switch back to alphabet shift unshifted.
+ // Release "123?" key, switch back to alphabet unshifted.
releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED);
}
@@ -330,7 +330,7 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
releaseKey('X', ALPHABET_MANUAL_SHIFTED);
// Release 'Z' key
releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
- // Release shift key.
+ // Release shift key, switch back to alphabet shifted.
releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
}
@@ -351,8 +351,24 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
releaseKey('X', ALPHABET_MANUAL_SHIFTED);
// Release 'Z' key
releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
- // Release shift key.
+ // Release shift key, updated to alphabet unshifted.
releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED);
+
+ // Update shift state with auto caps enabled.
+ pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED);
+
+ // Press shift key and hold, switch to alphabet shifted.
+ pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED);
+ // Press 'X' key and hold
+ chordingPressKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Release 'X' key
+ releaseKey('X', ALPHABET_MANUAL_SHIFTED);
+ // Press key and hold, stays in alphabet shifted.
+ chordingPressKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_MANUAL_SHIFTED);
+ // Release 'Z' key
+ releaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_MANUAL_SHIFTED);
+ // Release shift key, updated to alphabet automatic shifted.
+ releaseKey(CODE_SHIFT, ALPHABET_AUTOMATIC_SHIFTED);
}
// Multi touch shift chording input in capitalize character mode.
@@ -372,8 +388,8 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
releaseKey('X', ALPHABET_MANUAL_SHIFTED);
// Release 'Z' key
releaseKey('Z', ALPHABET_MANUAL_SHIFTED);
- // Release shift key.
- releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED);
+ // Release shift key, updated to alphabet automatic shifted.
+ releaseKey(CODE_SHIFT, ALPHABET_AUTOMATIC_SHIFTED);
}
public void testLongPressShiftAndChording() {