| /* |
| * Copyright (C) 2012 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.inputmethod.keyboard.internal; |
| |
| import android.test.suitebuilder.annotation.SmallTest; |
| |
| @SmallTest |
| public class KeyboardStateMultiTouchTests extends KeyboardStateTestsBase { |
| // Chording input in alphabet. |
| public void testChordingAlphabet() { |
| // Press shift key and hold, enter into choring shift state. |
| pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, switch back to alphabet. |
| releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| |
| // Press "?123" key and hold, enter into choring symbols state. |
| pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| // Release "ABC" key, switch back to alphabet. |
| releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); |
| } |
| |
| // Chording input in shifted. |
| public void testChordingShifted() { |
| // Press shift key, enter alphabet shifted. |
| pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| |
| // Press shift key and hold, enter into choring shift state. |
| pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, switch back to alphabet shifted. |
| releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| |
| // Press "?123" key and hold, enter into choring symbols state. |
| pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| // Release "123?" key, switch back to alphabet unshifted. |
| releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); |
| } |
| |
| // Chording input in shift locked. |
| public void testChordingShiftLocked() { |
| // Long press shift key, enter alphabet shift locked. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, |
| ALPHABET_SHIFT_LOCKED); |
| |
| // Press shift key and hold, enter into choring shift state. |
| pressKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('Z', ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED); |
| // Release shift key, switch back to alphabet shift locked. |
| releaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED); |
| |
| // Press "?123" key and hold, enter into choring symbols state. |
| pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| // Release "123?" key, switch back to alphabet shift locked. |
| releaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED); |
| } |
| |
| // Chording input in symbols. |
| public void testChordingSymbols() { |
| // Press/release "?123" key, enter symbols. |
| pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| |
| // Press "=\<" key and hold, enter into choring symbols shifted state. |
| pressKey(CODE_SHIFT, SYMBOLS_SHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); |
| // Release "=\<" key, switch back to symbols. |
| releaseKey(CODE_SHIFT, SYMBOLS_UNSHIFTED); |
| |
| // Press "ABC" key and hold, enter into choring alphabet state. |
| pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); |
| // Release "ABC" key, switch back to symbols. |
| 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. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, 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. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, 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. |
| public void testChordingSymbolsShifted() { |
| // 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 "?123" key and hold, enter into chording symbols state. |
| pressKey(CODE_SHIFT, SYMBOLS_UNSHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| // Release "=\<" key, switch back to symbols shifted state. |
| releaseKey(CODE_SHIFT, SYMBOLS_SHIFTED); |
| |
| // Press "ABC" key and hold, enter into choring alphabet state. |
| pressKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); |
| // Release "ABC" key, switch back to symbols. |
| 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. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, 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. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, 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. |
| public void testChordingAutomaticUpperCase() { |
| // Set capitalize the first character of all words mode. |
| setAutoCapsMode(CAP_MODE_WORDS); |
| |
| // Update shift state with auto caps enabled. |
| pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); |
| // Press shift key and hold, enter into chording shift state. |
| pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key. |
| chordingPressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, switch back to alphabet. |
| releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| |
| // Update shift state with auto caps enabled. |
| pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); |
| // Press "123?" key and hold, enter into chording symbols state. |
| pressKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED); |
| // Press/release symbol letter key. |
| chordingPressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); |
| // Release "123?" key, switch back to alphabet. |
| releaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED); |
| } |
| |
| // Chording letter key with shift key. |
| public void testChordingLetterAndShiftKey() { |
| // Press letter key and hold. |
| pressKey('z', ALPHABET_UNSHIFTED); |
| // Press shift key, {@link PointerTracker} will fire a phantom release letter key. |
| chordingReleaseKey('z', ALPHABET_UNSHIFTED); |
| chordingPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // Press another letter key and hold. |
| chordingPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key |
| releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| } |
| |
| // Multi touch input in manual shifted. |
| public void testMultiTouchManualShifted() { |
| // Press/release shift key, enter into alphabet shifted. |
| pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| |
| // Press 'X' key and hold |
| pressKey('X', ALPHABET_MANUAL_SHIFTED); |
| // Press 'z' key and hold, switch back to alphabet unshifted. |
| chordingPressKey('z', ALPHABET_UNSHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_UNSHIFTED); |
| // Release 'z' key |
| releaseKey('z', ALPHABET_UNSHIFTED); |
| } |
| |
| // Multi touch input in automatic upper case. |
| public void testMultiTouchAutomaticUpperCase() { |
| // Set auto word caps mode on. |
| setAutoCapsMode(CAP_MODE_WORDS); |
| // Update shift state with auto caps enabled. |
| pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); |
| |
| // Press 'X' key and hold |
| pressKey('X', ALPHABET_AUTOMATIC_SHIFTED); |
| // Press 'z' key and hold, switch back to alphabet unshifted. |
| chordingPressKey('z', ALPHABET_UNSHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_UNSHIFTED); |
| // Release 'z' key |
| releaseKey('z', ALPHABET_UNSHIFTED); |
| } |
| |
| // Multi touch input in capitalize character mode. |
| public void testMultiTouchCapModeCharacter() { |
| // Set auto character caps mode on. |
| setAutoCapsMode(CAP_MODE_CHARACTERS); |
| // Update shift state with auto caps enabled. |
| pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); |
| |
| // Press 'X' key and hold |
| pressKey('X', ALPHABET_AUTOMATIC_SHIFTED); |
| // Press 'Z' key and hold, stay in automatic shifted mode. |
| chordingPressKey('Z', ALPHABET_AUTOMATIC_SHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_AUTOMATIC_SHIFTED); |
| // Release 'Z' key |
| releaseKey('Z', ALPHABET_AUTOMATIC_SHIFTED); |
| } |
| |
| // Multi touch shift chording input in manual shifted. |
| public void testMultiTouchShiftChordingManualShifted() { |
| // Press/release shift key, enter into alphabet shifted. |
| pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| |
| // Press shift key and hold, stays in alphabet shifted. |
| pressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // Press 'X' key and hold |
| chordingPressKey('X', ALPHABET_MANUAL_SHIFTED); |
| // Press 'Z' key and hold, stays in alphabet shifted. |
| chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_MANUAL_SHIFTED); |
| // Release 'Z' key |
| releaseKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, switch back to alphabet shifted. |
| releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| } |
| |
| // Multi touch shift chording input in automatic upper case. |
| public void testMultiTouchShiftChordingAutomaticUpperCase() { |
| // Set auto word caps mode on. |
| setAutoCapsMode(CAP_MODE_WORDS); |
| // 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); |
| // Press 'Z' key and hold, stays in alphabet shifted. |
| chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_MANUAL_SHIFTED); |
| // Release 'Z' key |
| releaseKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // 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. |
| public void testMultiTouchShiftChordingCapModeCharacter() { |
| // Set auto character caps mode on. |
| setAutoCapsMode(CAP_MODE_CHARACTERS); |
| // 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); |
| // Press 'Z' key and hold, stay in automatic shifted mode. |
| chordingPressKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // Release 'X' key |
| releaseKey('X', ALPHABET_MANUAL_SHIFTED); |
| // Release 'Z' key |
| releaseKey('Z', ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, updated to alphabet automatic shifted. |
| releaseKey(CODE_SHIFT, ALPHABET_AUTOMATIC_SHIFTED); |
| } |
| |
| public void testLongPressShiftAndChording() { |
| // Long press shift key, enter maybe shift locked. |
| longPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key, remain in manual shifted. |
| chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, back to alphabet (not shift locked). |
| releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| |
| // Long press shift key, enter alphabet shift locked. |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, |
| ALPHABET_SHIFT_LOCKED); |
| // Long press shift key, enter maybe alphabet. |
| longPressKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED); |
| // Press/release letter key, remain in manual shifted. |
| chordingPressAndReleaseKey('A', ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED); |
| // Release shift key, back to shift locked (not alphabet). |
| releaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED); |
| // Long press shift key, enter alphabet |
| longPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED, |
| ALPHABET_UNSHIFTED); |
| |
| // Press/release shift key, enter alphabet shifted. |
| pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Long press shift key, enter maybe alphabet. |
| longPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key, remain in manual shifted. |
| chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, back to alphabet shifted (not alphabet). |
| releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| |
| // Set capitalize the first character of all words mode. |
| setAutoCapsMode(CAP_MODE_WORDS); |
| // Load keyboard, should be in automatic shifted. |
| loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); |
| // Long press shift key, enter maybe shift locked. |
| longPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Press/release letter key, remain in manual shifted. |
| chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // Release shift key, back to alphabet (not shift locked). |
| releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| } |
| |
| public void testDoubleTapShiftAndChording() { |
| // TODO: The following tests fail due to bug. Temporarily commented. |
| // // First shift key tap. |
| // pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // // Second shift key tap, maybe shift locked. |
| // secondPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // // Press/release letter key, remain in manual shifted. |
| // chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // // Release shift key, back to alphabet shifted (not shift locked). |
| // releaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // |
| // // Long press shift key, enter alphabet shift locked. |
| // longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, |
| // ALPHABET_SHIFT_LOCKED); |
| // // First shift key tap. |
| // pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); |
| // // Second shift key tap, maybe shift unlocked. |
| // secondPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // // Press/release letter key, remain in manual shifted. |
| // chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // // Release shift key, back to alphabet (not shift locked). |
| // releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| // |
| // // Set capitalize the first character of all words mode. |
| // setAutoCapsMode(CAP_MODE_WORDS); |
| // // Load keyboard, should be in automatic shifted. |
| // loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); |
| // // First shift key tap. |
| // pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); |
| // // Second shift key tap, maybe shift locked. |
| // secondPressKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED); |
| // // Press/release letter key, remain in manual shifted. |
| // chordingPressAndReleaseKey('A', ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); |
| // // Release shift key, back to alphabet (not shift locked). |
| // releaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED); |
| } |
| } |