am 7d045829: Request update shift state after shift-chording input

* commit '7d045829b8cd613ab43cb88b4cf0d4f492827996':
  Request update shift state after shift-chording input
This commit is contained in:
Tadashi G. Takaoka 2012-11-27 11:30:52 -08:00 committed by Android Git Automerger
commit b172725c8d
2 changed files with 26 additions and 5 deletions

View file

@ -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);

View file

@ -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() {