Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fecba897 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android Git Automerger
Browse files

am c882d619: Merge "Save and restore previous mode keyboard state at...

am c882d619: Merge "Save and restore previous mode keyboard state at KeyboardState.toggleAlphabetAndSymbols"

* commit 'c882d619':
  Save and restore previous mode keyboard state at KeyboardState.toggleAlphabetAndSymbols
parents 152563cf c882d619
Loading
Loading
Loading
Loading
+17 −14
Original line number Original line Diff line number Diff line
@@ -216,10 +216,24 @@ public class KeyboardState {
    }
    }


    private void toggleAlphabetAndSymbols() {
    private void toggleAlphabetAndSymbols() {
        if (DEBUG_ACTION) {
            Log.d(TAG, "toggleAlphabetAndSymbols: " + this);
        }
        if (mIsAlphabetMode) {
        if (mIsAlphabetMode) {
            mPrevMainKeyboardWasShiftLocked = mAlphabetShiftState.isShiftLocked();
            if (mPrevSymbolsKeyboardWasShifted) {
                setSymbolsShiftedKeyboard();
            } else {
                setSymbolsKeyboard();
                setSymbolsKeyboard();
            }
            mPrevSymbolsKeyboardWasShifted = false;
        } else {
        } else {
            mPrevSymbolsKeyboardWasShifted = mIsSymbolShifted;
            setAlphabetKeyboard();
            setAlphabetKeyboard();
            if (mPrevMainKeyboardWasShiftLocked) {
                setShiftLocked(true);
            }
            mPrevMainKeyboardWasShiftLocked = false;
        }
        }
    }
    }


@@ -235,24 +249,15 @@ public class KeyboardState {
        if (DEBUG_ACTION) {
        if (DEBUG_ACTION) {
            Log.d(TAG, "setAlphabetKeyboard");
            Log.d(TAG, "setAlphabetKeyboard");
        }
        }
        mPrevSymbolsKeyboardWasShifted = mIsSymbolShifted;
        mSwitchActions.setAlphabetKeyboard();
        mSwitchActions.setAlphabetKeyboard();
        mIsAlphabetMode = true;
        mIsAlphabetMode = true;
        mIsSymbolShifted = false;
        mIsSymbolShifted = false;
        mSwitchState = SWITCH_STATE_ALPHA;
        mSwitchState = SWITCH_STATE_ALPHA;
        setShiftLocked(mPrevMainKeyboardWasShiftLocked);
        mPrevMainKeyboardWasShiftLocked = false;
        mSwitchActions.requestUpdatingShiftState();
        mSwitchActions.requestUpdatingShiftState();
    }
    }


    // TODO: Make this method private
    // TODO: Make this method private
    public void setSymbolsKeyboard() {
    public void setSymbolsKeyboard() {
        mPrevMainKeyboardWasShiftLocked = mAlphabetShiftState.isShiftLocked();
        if (mPrevSymbolsKeyboardWasShifted) {
            setSymbolsShiftedKeyboard();
            return;
        }

        if (DEBUG_ACTION) {
        if (DEBUG_ACTION) {
            Log.d(TAG, "setSymbolsKeyboard");
            Log.d(TAG, "setSymbolsKeyboard");
        }
        }
@@ -261,7 +266,6 @@ public class KeyboardState {
        mIsSymbolShifted = false;
        mIsSymbolShifted = false;
        // Reset alphabet shift state.
        // Reset alphabet shift state.
        mAlphabetShiftState.setShiftLocked(false);
        mAlphabetShiftState.setShiftLocked(false);
        mPrevSymbolsKeyboardWasShifted = false;
        mSwitchState = SWITCH_STATE_SYMBOL_BEGIN;
        mSwitchState = SWITCH_STATE_SYMBOL_BEGIN;
    }
    }


@@ -274,7 +278,6 @@ public class KeyboardState {
        mIsSymbolShifted = true;
        mIsSymbolShifted = true;
        // Reset alphabet shift state.
        // Reset alphabet shift state.
        mAlphabetShiftState.setShiftLocked(false);
        mAlphabetShiftState.setShiftLocked(false);
        mPrevSymbolsKeyboardWasShifted = false;
        mSwitchState = SWITCH_STATE_SYMBOL_BEGIN;
        mSwitchState = SWITCH_STATE_SYMBOL_BEGIN;
    }
    }


@@ -495,14 +498,14 @@ public class KeyboardState {
            }
            }
            // Switch back to alpha keyboard mode immediately if user types a quote character.
            // Switch back to alpha keyboard mode immediately if user types a quote character.
            if (isLayoutSwitchBackCharacter(code)) {
            if (isLayoutSwitchBackCharacter(code)) {
                setAlphabetKeyboard();
                toggleAlphabetAndSymbols();
            }
            }
            break;
            break;
        case SWITCH_STATE_SYMBOL:
        case SWITCH_STATE_SYMBOL:
            // Switch back to alpha keyboard mode if user types one or more non-space/enter
            // 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 a quote character.
            if (isSpaceCharacter(code) || isLayoutSwitchBackCharacter(code)) {
            if (isSpaceCharacter(code) || isLayoutSwitchBackCharacter(code)) {
                setAlphabetKeyboard();
                toggleAlphabetAndSymbols();
            }
            }
            break;
            break;
        }
        }
+109 −1
Original line number Original line Diff line number Diff line
@@ -72,6 +72,57 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        // Release "ABC" key, switch back to symbols.
        // Release "ABC" key, switch back to symbols.
        releaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);
        releaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);

        // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols
        // -> alphabet.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Press/release shift key, enter alphabet shifted.
        pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press "ABC" key, enter into chording alphabet state.
        pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED);
        // Enter/release letter key.
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        // Release "ABC" key, switch back to symbols.
        releaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);

        // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols ->
        // alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press "ABC" key, enter into chording alphabet shift locked.
        pressKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED);
        // Enter/release letter key.
        chordingPressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
        // Release "ABC" key, switch back to symbols.
        releaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);

        // Alphabet shift locked -> symbols -> "=\<" key + letter -> symbols ->
        // alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press "=\<" key, enter into symbols shifted chording state.
        pressKey(CODE_SHIFT, SYMBOLS_SHIFTED);
        // Enter/release symbols shift letter key.
        chordingPressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Release "=\<" key, switch back to symbols.
        releaseKey(CODE_SHIFT, SYMBOLS_UNSHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
    }
    }


    // Chording input in symbol shifted.
    // Chording input in symbol shifted.
@@ -81,7 +132,7 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
        // Press/release "=\<" key, enter symbols shifted.
        // Press/release "=\<" key, enter symbols shifted.
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);


        // Press "=\<" key and hold, enter into chording symbols state.
        // Press "?123" key and hold, enter into chording symbols state.
        pressKey(CODE_SHIFT, SYMBOLS_UNSHIFTED);
        pressKey(CODE_SHIFT, SYMBOLS_UNSHIFTED);
        // Press/release symbol letter key.
        // Press/release symbol letter key.
        chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
@@ -94,6 +145,63 @@ public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase {
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        // Release "ABC" key, switch back to symbols.
        // Release "ABC" key, switch back to symbols.
        releaseKey(CODE_SYMBOL, SYMBOLS_SHIFTED);
        releaseKey(CODE_SYMBOL, SYMBOLS_SHIFTED);

        // Alphabet shifted -> symbols shifted -> "ABC" key + letter -> symbols shifted ->
        // alphabet.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Press/release shift key, enter alphabet shifted.
        pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press/release "=\<" key, enter symbols shifted.
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Press "ABC" key, enter into chording alphabet state.
        pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED);
        // Enter/release letter key.
        chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        // Release "ABC" key, switch back to symbols shifted.
        releaseKey(CODE_SYMBOL, SYMBOLS_SHIFTED);
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);

        // Alphabet shift locked -> symbols shifted -> "ABC" key + letter -> symbols shifted
        // -> alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press/release "=\<" key, enter symbols shifted.
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Press "ABC" key, enter into chording alphabet shift locked.
        pressKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED);
        // Enter/release letter key.
        chordingPressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
        // Release "ABC" key, switch back to symbols shifted.
        releaseKey(CODE_SYMBOL, SYMBOLS_SHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);

        // Alphabet shift locked -> symbols shifted -> "=\<" key + letter -> symbols shifted
        // -> alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press/release "=\<" key, enter symbols shifted.
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Press "=\<" key, enter into symbols chording state.
        pressKey(CODE_SHIFT, SYMBOLS_UNSHIFTED);
        // Enter/release symbols letter key.
        chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Release "=\<" key, switch back to symbols shifted.
        releaseKey(CODE_SHIFT, SYMBOLS_SHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
    }
    }


    // Chording input in automatic upper case.
    // Chording input in automatic upper case.
+40 −6
Original line number Original line Diff line number Diff line
@@ -398,7 +398,8 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        // Press/release "ABC" key, switch to alphabet.
        // Press/release "ABC" key, switch to alphabet.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);


        // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols -> alphabet.
        // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols ->
        // alphabet.
        // Load keyboard
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Press/release shift key, enter alphabet shifted.
        // Press/release shift key, enter alphabet shifted.
@@ -412,8 +413,8 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);


        // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols.
        // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols ->
        // -> alphabet shift locked.
        // alphabet shift locked.
        // Load keyboard
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        // Long press shift key, enter alphabet shift locked.
@@ -426,6 +427,21 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED);
        pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);

        // Alphabet shift locked -> symbols -> "=\<" key + letter -> symbols ->
        // alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press and slide from "=\<" key, enter symbols shifted.
        pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Enter/release symbols shift letter key, switch back to symbols.
        pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
    }
    }


    // Sliding input in symbols shifted.
    // Sliding input in symbols shifted.
@@ -448,7 +464,8 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        // Press/release "ABC" key, switch to alphabet.
        // Press/release "ABC" key, switch to alphabet.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);


        // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted -> alphabet.
        // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted ->
        // alphabet.
        // Load keyboard
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Press/release shift key, enter alphabet shifted.
        // Press/release shift key, enter alphabet shifted.
@@ -464,8 +481,8 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        // Press/release "ABC" key, switch to alphabet (not alphabet shifted).
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED);


        // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted
        // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted ->
        // -> alphabet shift locked.
        // alphabet shift locked.
        // Load keyboard
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        // Long press shift key, enter alphabet shift locked.
@@ -480,6 +497,23 @@ public class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase {
        pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED);
        pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);

        // Alphabet shift locked -> symbols shifted -> "?123" + letter -> symbols shifted ->
        // alphabet shift locked.
        // Load keyboard
        loadKeyboard(ALPHABET_UNSHIFTED);
        // Long press shift key, enter alphabet shift locked.
        longPressShiftKey(ALPHABET_MANUAL_SHIFTED, ALPHABET_SHIFT_LOCKED);
        // Press/release "?123" key, enter into symbols.
        pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Press/release "=\<" key, enter into symbols shifted.
        pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED);
        // Press and slide from "?123" key.
        pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED);
        // Enter/release symbol letter key, switch back to symbols shifted.
        pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED);
        // Press/release "ABC" key, switch to alphabet shift locked.
        pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED);
    }
    }


    // Change focus to new text field.
    // Change focus to new text field.