Merge "Save/restore alphabet shift locked state while rotating even in symbols mode"
commit
3feb99fa6c
|
@ -87,14 +87,14 @@ public class KeyboardState {
|
||||||
static class SavedKeyboardState {
|
static class SavedKeyboardState {
|
||||||
public boolean mIsValid;
|
public boolean mIsValid;
|
||||||
public boolean mIsAlphabetMode;
|
public boolean mIsAlphabetMode;
|
||||||
public boolean mIsShiftLocked;
|
public boolean mIsAlphabetShiftLocked;
|
||||||
public boolean mIsShifted;
|
public boolean mIsShifted;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
if (!mIsValid) return "INVALID";
|
if (!mIsValid) return "INVALID";
|
||||||
if (mIsAlphabetMode) {
|
if (mIsAlphabetMode) {
|
||||||
if (mIsShiftLocked) return "ALPHABET_SHIFT_LOCKED";
|
if (mIsAlphabetShiftLocked) return "ALPHABET_SHIFT_LOCKED";
|
||||||
return mIsShifted ? "ALPHABET_SHIFTED" : "ALPHABET";
|
return mIsShifted ? "ALPHABET_SHIFTED" : "ALPHABET";
|
||||||
} else {
|
} else {
|
||||||
return mIsShifted ? "SYMBOLS_SHIFTED" : "SYMBOLS";
|
return mIsShifted ? "SYMBOLS_SHIFTED" : "SYMBOLS";
|
||||||
|
@ -124,11 +124,11 @@ public class KeyboardState {
|
||||||
final SavedKeyboardState state = mSavedKeyboardState;
|
final SavedKeyboardState state = mSavedKeyboardState;
|
||||||
state.mIsAlphabetMode = mIsAlphabetMode;
|
state.mIsAlphabetMode = mIsAlphabetMode;
|
||||||
if (mIsAlphabetMode) {
|
if (mIsAlphabetMode) {
|
||||||
state.mIsShiftLocked = mAlphabetShiftState.isShiftLocked();
|
state.mIsAlphabetShiftLocked = mAlphabetShiftState.isShiftLocked();
|
||||||
state.mIsShifted = !state.mIsShiftLocked
|
state.mIsShifted = !state.mIsAlphabetShiftLocked
|
||||||
&& mAlphabetShiftState.isShiftedOrShiftLocked();
|
&& mAlphabetShiftState.isShiftedOrShiftLocked();
|
||||||
} else {
|
} else {
|
||||||
state.mIsShiftLocked = false;
|
state.mIsAlphabetShiftLocked = mPrevMainKeyboardWasShiftLocked;
|
||||||
state.mIsShifted = mIsSymbolShifted;
|
state.mIsShifted = mIsSymbolShifted;
|
||||||
}
|
}
|
||||||
state.mIsValid = true;
|
state.mIsValid = true;
|
||||||
|
@ -156,10 +156,12 @@ public class KeyboardState {
|
||||||
state.mIsValid = false;
|
state.mIsValid = false;
|
||||||
|
|
||||||
if (state.mIsAlphabetMode) {
|
if (state.mIsAlphabetMode) {
|
||||||
setShiftLocked(state.mIsShiftLocked);
|
setShiftLocked(state.mIsAlphabetShiftLocked);
|
||||||
if (!state.mIsShiftLocked) {
|
if (!state.mIsAlphabetShiftLocked) {
|
||||||
setShifted(state.mIsShifted ? MANUAL_SHIFT : UNSHIFT);
|
setShifted(state.mIsShifted ? MANUAL_SHIFT : UNSHIFT);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
mPrevMainKeyboardWasShiftLocked = state.mIsAlphabetShiftLocked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -602,24 +602,68 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
|
||||||
|
|
||||||
// Change orientation.
|
// Change orientation.
|
||||||
public void testChangeOrientation() {
|
public void testChangeOrientation() {
|
||||||
// Press/release shift key.
|
// Alphabet -> rotate -> alphabet.
|
||||||
|
updateShiftState(ALPHABET_UNSHIFTED);
|
||||||
|
// Rotate device, remain in alphabet.
|
||||||
|
rotateDevice(ALPHABET_UNSHIFTED);
|
||||||
|
|
||||||
|
// Alphabet shifted -> rotate -> alphabet shifted.
|
||||||
|
// Press/release shift key, enter alphabet shifted.
|
||||||
pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
|
pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
|
||||||
// Rotate device.
|
// Rotate device, remain in alphabet shifted.
|
||||||
rotateDevice(ALPHABET_MANUAL_SHIFTED);
|
rotateDevice(ALPHABET_MANUAL_SHIFTED);
|
||||||
|
|
||||||
|
// Alphabet shift locked -> rotate -> alphabet shift locked.
|
||||||
// Long press shift key, enter alphabet shift locked.
|
// Long press shift key, enter alphabet shift locked.
|
||||||
longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
|
longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
|
||||||
// Rotate device.
|
// Rotate device, remain in alphabet shift locked.
|
||||||
rotateDevice(ALPHABET_SHIFT_LOCKED);
|
rotateDevice(ALPHABET_SHIFT_LOCKED);
|
||||||
|
|
||||||
// Press/release "?123" key.
|
// Alphabet shift locked -> symbols -> rotate -> symbols ->
|
||||||
|
// Alphabet shift locked.
|
||||||
|
// Press/release "?123" key, enter symbols.
|
||||||
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
// Rotate device.
|
// Rotate device, remain in symbols,
|
||||||
rotateDevice(SYMBOLS_UNSHIFTED);
|
rotateDevice(SYMBOLS_UNSHIFTED);
|
||||||
|
// Press/release "ABC" key, alphabet shift locked state should be maintained.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
|
||||||
|
|
||||||
// Press/release "=\<" key.
|
// Alphabet shift locked -> symbols shifted -> rotate -> symbols shifted ->
|
||||||
|
// Alphabet shift locked.
|
||||||
|
// Press/release "?123" key, enter symbols.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
|
// Press/release "=\<" key, enter symbols shifted.
|
||||||
pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
|
pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
|
||||||
// Rotate device.
|
// Rotate device, remain in symbols shifted.
|
||||||
rotateDevice(SYMBOLS_SHIFTED);
|
rotateDevice(SYMBOLS_SHIFTED);
|
||||||
|
// Press/release "ABC" key, alphabet shift locked state should be maintained.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
|
||||||
|
|
||||||
|
// Alphabet shift locked -> symbols shifted -> alphabet shift locked -> rotate ->
|
||||||
|
// Alphabet shift locked -> symbols.
|
||||||
|
// Press/release "?123" key, enter symbols.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
|
// Press/release "=\<" key, enter symbols shifted.
|
||||||
|
pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
|
||||||
|
// Press/release "ABC" key, enter alphabet shift locked.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
|
||||||
|
// Rotate device, remain in alphabet shift locked.
|
||||||
|
rotateDevice(ALPHABET_SHIFT_LOCKED);
|
||||||
|
// Press/release "?123" key, enter symbols (not symbols shifted).
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
|
|
||||||
|
// Alphabet -> symbols shifted -> alphabet -> rotate ->
|
||||||
|
// Alphabet -> symbols.
|
||||||
|
loadKeyboard(ALPHABET_UNSHIFTED);
|
||||||
|
// Press/release "?123" key, enter symbols.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
|
// Press/release "=\<" key, enter symbols shifted.
|
||||||
|
pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
|
||||||
|
// Press/release "ABC" key, enter alphabet.
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
|
||||||
|
// Rotate device, remain in alphabet shift locked.
|
||||||
|
rotateDevice(ALPHABET_UNSHIFTED);
|
||||||
|
// Press/release "?123" key, enter symbols (not symbols shifted).
|
||||||
|
pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue