1e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka/* 2e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * Copyright (C) 2012 The Android Open Source Project 3e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * 4e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * use this file except in compliance with the License. You may obtain a copy of 6e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * the License at 7e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * 8e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 9e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * 10e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software 11e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * License for the specific language governing permissions and limitations under 14e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka * the License. 15e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka */ 16e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 17e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaokapackage com.android.inputmethod.keyboard.internal; 18e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 1960c4594ee6415b266b3418e46d09e6a5b3ed23e1Tadashi G. Takaokapublic class KeyboardStateSingleTouchTests extends KeyboardStateTestsBase { 20373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Shift key in alphabet. 21373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testShiftAlphabet() { 22373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter into alphabet shifted. 2364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 24373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 25373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, back to alphabet. 2664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 27e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 28373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter into alphabet shifted. 2964e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 30373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release letter key, switch back to alphabet. 3164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 32e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 33e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 34373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Shift key in symbols. 35373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testShiftSymbols() { 36373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 37373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 38e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 39373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 40373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 41373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 42373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, back to symbols. 43373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 44373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 45373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 46373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 47373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release symbol letter key, remain in symbols shifted. 48373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 49e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 50e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 51e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Switching between alphabet and symbols. 52e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka public void testAlphabetAndSymbols() { 5364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 5464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 55373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, back to alphabet. 5664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 5764e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 5864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 59e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 60373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 61373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 62373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, back to alphabet. 63373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 64747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "?123" key, back to symbols (not symbols shifted). 65747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 6687e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka } 6787e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka 68373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Switching between alphabet shifted and symbols. 69373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testAlphabetShiftedAndSymbols() { 70373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter into alphabet shifted. 71373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 72e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 7364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 7464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 75373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, back to alphabet (not alphabet shifted). 76373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 7764e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 78373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter into alphabet shifted. 79373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 8064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 81373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 82373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\< key, enter into symbols shifted. 83373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 84373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, back to alphabet (not alphabet shifted). 85373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 8687e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka } 8787e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka 88373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Switching between alphabet shift locked and symbols. 89373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testAlphabetShiftLockedAndSymbols() { 90373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 912959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 920d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 93373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 9464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 9564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 96747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "ABC" key, back to alphabet shift locked. 97373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 9864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 9964e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 10064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 10164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 10264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 103747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "ABC" key, back to alphabet shift locked. 104747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 105747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "?123" key, back to symbols (not symbols shifted). 106747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 107e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 108e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 109373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Automatic switch back to alphabet by space key. 11006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka public void testSwitchBackBySpace() { 11164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 11264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 113373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol letter. 11464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 11506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Enter space, switch back to alphabet. 11664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 117373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 118373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 119373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 120373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 121373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 122373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol shift letter. 123373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 124373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter space, switch back to alphabet. 125373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_UNSHIFTED); 1264ba22162193ca8587ebee43fff8d60251b76a415Tadashi G. Takaoka // Press/release "?123" key, enter into symbols (not symbols shifted). 1274ba22162193ca8587ebee43fff8d60251b76a415Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 128e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 129e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 130373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Automatic switch back to alphabet shift locked test by space key. 131373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testSwitchBackBySpaceShiftLocked() { 13206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 1332959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 1340d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 13506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 13606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Press/release "?123" key, enter into symbols. 13706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 138373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol letter. 13906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 140747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter space, switch back to alphabet shift locked. 14106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 14206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 143373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 144373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 145373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 146373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 147373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol shift letter. 148373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 149747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter space, switch back to alphabet shift locked. 150373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_SHIFT_LOCKED); 151373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka } 15287e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka 153373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Automatic switch back to alphabet by registered letters. 15406bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka public void testSwitchBackChar() { 15506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Set switch back chars. 15606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka final String switchBackSymbols = "'"; 15706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka final int switchBackCode = switchBackSymbols.codePointAt(0); 15806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka setLayoutSwitchBackSymbols(switchBackSymbols); 15906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 160e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 16164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 16264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 163373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol letter. 16464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 16506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Enter switch back letter, switch back to alphabet. 16606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(switchBackCode, SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 167e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 168373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 169373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 170373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 171373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 172373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol shift letter. 173373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 174373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter switch abck letter, switch back to alphabet. 175373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(switchBackCode, SYMBOLS_SHIFTED, ALPHABET_UNSHIFTED); 176e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 177e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 178373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Automatic switch back to alphabet shift locked by registered letters. 179373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testSwitchBackCharShiftLocked() { 180373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Set switch back chars. 181373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka final String switchBackSymbols = "'"; 182373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka final int switchBackCode = switchBackSymbols.codePointAt(0); 183373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka setLayoutSwitchBackSymbols(switchBackSymbols); 184373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 185373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 1862959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 1870d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 18864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 189373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 190373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 191373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol letter. 192373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 193747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter switch back letter, switch back to alphabet shift locked. 194373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(switchBackCode, SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 19564e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 196373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 197373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 198373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 199373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 200373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter symbol shift letter. 201373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 202747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter switch back letter, switch back to alphabet shift locked. 203373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(switchBackCode, SYMBOLS_SHIFTED, ALPHABET_SHIFT_LOCKED); 20487e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka } 20587e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka 206373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Automatic upper case test 207373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testAutomaticUpperCase() { 208553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 209553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 210373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard, should be in automatic shifted. 211373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 21264e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 213373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release letter key, switch to alphabet. 214373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('A', ALPHABET_AUTOMATIC_SHIFTED, ALPHABET_UNSHIFTED); 215373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release auto caps trigger letter, should be in automatic shifted. 216373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 21787e025da11703af65e7bb85670adac5b54e2a367Tadashi G. Takaoka 218373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, back to alphabet. 219373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 220373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release letter key, remain in alphabet. 221373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('a', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 222373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release auto caps trigger letter, should be in automatic shifted. 223373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 224e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 225373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 226373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 227373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release symbol letter key, remain in symbols. 228373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 229747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release space, switch back to automatic shifted. 230373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 231373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 232373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 233373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 234373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 235373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 236373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release symbol shift letter key, remain in symbols shifted. 237373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 238747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release space, switch back to automatic shifted. 239373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, SYMBOLS_SHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 240e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 241e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 242e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Long press shift key. 243e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka public void testLongPressShift() { 244a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Set auto caps mode off. 245553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_OFF); 246a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Load keyboard, should be in alphabet. 247a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 24864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 2492959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 2500d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 251a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Press/release shift key, back to alphabet. 252a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 25364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 254a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 2552959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 2560d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 25764e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release letter key, remain in shift locked. 25864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 25964e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Press/release word separator, remain in shift locked. 26064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SPACE, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 261373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, back to alphabet. 262757f8d96eea3dfb5951243d2ebb4b763db868471Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 263e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 26464e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 2652959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 2660d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 267373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, back to alphabet. 2682959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED, 2690d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_UNSHIFTED); 270a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka 271a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 272a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 273a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 2742959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 2750d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 276a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Press/release shift key, back to alphabet. 277a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 278a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka 279553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 280553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 281a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Load keyboard, should be in automatic shifted. 282a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 283a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 2842959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 2850d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 286a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka // Press/release shift key, back to alphabet. 287a5c96f376ad57e78a88942bb618e067054ed818aTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 288e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 289e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 290e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Double tap shift key. 291e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka public void testDoubleTapShift() { 292e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // First shift key tap. 29364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 294e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Second shift key tap. 2950ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 296e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 297e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // First shift key tap. 298757f8d96eea3dfb5951243d2ebb4b763db868471Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 299e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Second shift key tap. 3000ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 3010ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 3020ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Press/release shift key, enter alphabet manual shifted. 3030ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 3040ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 3050ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // First shift key tap. 3060ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 3070ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Second shift key tap. 3080ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 3090ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 3100ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // First shift key tap. 3110ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 3120ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Second shift key tap. 3130ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 3140ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 315553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 316553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 3170ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Load keyboard, should be in automatic shifted. 3180ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 3190ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 3200ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // First shift key tap. 3210ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 3220ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Second shift key tap. 3230ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 3240ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka 3250ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // First shift key tap. 3260ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 3270ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka // Second shift key tap. 3280ed2d3a4491cb0f6142975a15b653be6079b6a4eTadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 329e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 330e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 331e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka // Update shift state. 332e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka public void testUpdateShiftState() { 333373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Set auto caps mode off. 334553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_OFF); 335373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard, should be in alphabet. 336373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 337373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in alphabet. 338373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(ALPHABET_UNSHIFTED); 339373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 340373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 341373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 342373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, back to alphabet. 343373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(ALPHABET_UNSHIFTED); 344373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 345373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 3462959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 3470d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 348373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in alphabet shift locked. 349373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(ALPHABET_SHIFT_LOCKED); 350373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, back to alphabet. 3512959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED, 3520d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_UNSHIFTED); 353373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 354373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 355373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 356373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in symbols. 357373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(SYMBOLS_UNSHIFTED); 358373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 359373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter symbols shifted. 360373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 361373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in symbols shifted. 362373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(SYMBOLS_SHIFTED); 363373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 364553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 365553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 366373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard, should be in automatic shifted. 367373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 368373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in automatic shifted. 369373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 37064e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 371373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet. 372373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 373373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 374373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 375373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, enter to automatic shifted (not alphabet shifted). 37664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka updateShiftState(ALPHABET_AUTOMATIC_SHIFTED); 37764e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 378373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 3792959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 3800d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 381373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in alphabet shift locked (not automatic shifted). 382373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(ALPHABET_SHIFT_LOCKED); 383373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, back to alphabet. 3842959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCK_SHIFTED, 3850d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_UNSHIFTED); 38664e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 387373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard, should be in automatic shifted. 388373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 389373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 390373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 391373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in symbols. 392373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(SYMBOLS_UNSHIFTED); 39364e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 394373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter symbols shifted. 395373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 396373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Update shift state, remained in symbols shifted. 397373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka updateShiftState(SYMBOLS_SHIFTED); 398e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 399e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 400373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Sliding input in alphabet. 401373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testSlidingAlphabet() { 402373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet -> shift key + letter -> alphabet. 403373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from shift key, enter alphabet shifted. 404373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 405373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to alphabet. 406373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 407373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 408373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet -> "?123" key + letter -> alphabet. 409373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "123?" key, enter symbols. 410373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 411373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release into symbol letter key, switch back to alphabet. 412373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 413373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 414373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet shifted -> shift key + letter -> alphabet. 415373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 416373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 417373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from shift key, remain alphabet shifted. 418373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 419373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to alphabet (not alphabet shifted). 420373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('Z', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 421373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 422373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet shifted -> "?123" key + letter -> alphabet. 423373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 424373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 425373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "123?" key, enter symbols. 426373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 427373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release into symbol letter key, switch back to alphabet (not alphabet shifted). 428373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_UNSHIFTED); 42964e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 430373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet shift locked -> shift key + letter -> alphabet shift locked. 43164e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 4322959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 4330d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 434373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "123?" key, enter symbols. 435373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 436747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter/release into symbol letter key, switch back to alphabet shift locked. 437373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('!', SYMBOLS_UNSHIFTED, ALPHABET_SHIFT_LOCKED); 43864e01baadeb624781d9d056b62679b25ea0fe5c0Tadashi G. Takaoka 439373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Alphabet shift locked -> "?123" key + letter -> alphabet shift locked. 440373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from shift key, enter alphabet shifted. 441757f8d96eea3dfb5951243d2ebb4b763db868471Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_SHIFT_LOCKED); 442747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Enter/release letter key, switch back to shift locked. 44383d81f2e34b28e56bb0f8505d2315ae53c8f9eefTadashi G. Takaoka pressAndReleaseKey('Z', ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 444373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka } 445373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 446373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Sliding input in symbols. 447373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testSlidingSymbols() { 448373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Symbols -> "=\<" key + letter -> symbols. 449373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 450373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 451373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from shift key, enter symols shifted. 452373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 453373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release symbol shifted letter key, switch back to symbols. 454373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 455373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 456373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Symbols -> "ABC" key + letter -> Symbols. 457373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "ABC" key, enter alphabet. 458373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 459373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols. 460373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 461373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet. 462373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 463373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 464f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shifted -> symbols -> "ABC" key + letter -> symbols -> 465f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet. 466373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard 467373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 468373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 469373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 470373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 471373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 472373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "ABC" key. 473373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 474373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols. 475373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_UNSHIFTED); 476373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 477373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 478373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 479f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shift locked -> symbols -> "ABC" key + letter -> symbols -> 480f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet shift locked. 481373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard 482373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 483373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 4842959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 4850d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 486373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 487373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 488747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press and slide from "ABC" key, enter alphabet shift locked. 489373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 490373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols. 491373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_UNSHIFTED); 492747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "ABC" key, switch to alphabet shift locked. 493373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 494f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka 495f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shift locked -> symbols -> "=\<" key + letter -> symbols -> 496f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet shift locked. 497f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Load keyboard 498f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 499f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 5002959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 5010d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 502f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 503f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 504f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press and slide from "=\<" key, enter symbols shifted. 505f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 506f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Enter/release symbols shift letter key, switch back to symbols. 507f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey('~', SYMBOLS_SHIFTED, SYMBOLS_UNSHIFTED); 508f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet shift locked. 509f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 510373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka } 511373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 512373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Sliding input in symbols shifted. 513373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka public void testSlidingSymbolsShifted() { 514373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Symbols shifted -> "?123" + letter -> symbols shifted. 515373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 516373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 517373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 518373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 519373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from shift key, enter symbols. 520373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 521373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release symbol letter key, switch back to symbols shifted. 522373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 523373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 524373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Symbols shifted -> "ABC" key + letter -> symbols shifted. 525373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "ABC" key, enter alphabet. 526373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 527373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols shifted. 528373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 529373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet. 530373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 531373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 532f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shifted -> symbols shifted -> "ABC" + letter -> symbols shifted -> 533f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet. 534373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard 535373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 536373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 537373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 538373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 539373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 540373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 541373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 542373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "ABC" key. 543373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 544373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols shifted. 545373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('a', ALPHABET_UNSHIFTED, SYMBOLS_SHIFTED); 546373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet (not alphabet shifted). 547373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 548373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka 549f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shift locked -> symbols shifted -> "ABC" + letter -> symbols shifted -> 550f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet shift locked. 551373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Load keyboard 552373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 553373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 5542959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 5550d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 556373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 557373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 558373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 559373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 560373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press and slide from "ABC" key. 561373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndSlideFromKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 562373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Enter/release letter key, switch back to symbols shifted. 563373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey('A', ALPHABET_SHIFT_LOCKED, SYMBOLS_SHIFTED); 564747ed9e99a6a83e54d97d96aa3cbb1abd11eaf0fTadashi G. Takaoka // Press/release "ABC" key, switch to alphabet shift locked. 565373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 566f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka 567f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Alphabet shift locked -> symbols shifted -> "?123" + letter -> symbols shifted -> 568f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // alphabet shift locked. 569f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Load keyboard 570f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 571f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 5722959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 5730d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 574f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press/release "?123" key, enter into symbols. 575f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 576f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press/release "=\<" key, enter into symbols shifted. 577f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 578f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press and slide from "?123" key. 579f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndSlideFromKey(CODE_SHIFT, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 580f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Enter/release symbol letter key, switch back to symbols shifted. 581f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey('1', SYMBOLS_UNSHIFTED, SYMBOLS_SHIFTED); 582f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka // Press/release "ABC" key, switch to alphabet shift locked. 583f057b25cddb3e5e18bc56e8ddaab541044c6ba58Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 584e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka } 585e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka 58606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 58706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka public void testChangeFocus() { 58806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Press/release shift key. 58906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 59006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 59106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 59206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 59306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 5942959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 5950d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 59606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 59706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 59806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 599373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key. 60006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 60106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 60206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 60306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 604373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key. 60506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 606373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key. 60706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 60806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 60906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 61006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka } 61106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 61206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to auto caps text field. 61306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka public void testChangeFocusAutoCaps() { 614553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 615553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 61606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 61706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 61806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 61906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Press/release shift key, enter alphabet. 62006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 62106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 62206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 62306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 62406bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 6252959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 6260d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 62706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 62806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 62906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 630373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key. 63106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 63206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 63306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 63406bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 635373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "?123" key. 63606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 637373f452584f5a6881d496eec9beb262fccf4a2a4Tadashi G. Takaoka // Press/release "=\<" key. 63806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 63906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change focus to new text field. 64006bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka loadKeyboard(ALPHABET_AUTOMATIC_SHIFTED); 64106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka } 64206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 64306bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Change orientation. 64406bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka public void testChangeOrientation() { 64549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet -> rotate -> alphabet. 64649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka updateShiftState(ALPHABET_UNSHIFTED); 64749bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in alphabet. 64849bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka rotateDevice(ALPHABET_UNSHIFTED); 64949bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka 65049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shifted -> rotate -> alphabet shifted. 65149bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release shift key, enter alphabet shifted. 65206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 65349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in alphabet shifted. 65406bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka rotateDevice(ALPHABET_MANUAL_SHIFTED); 65506bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 65649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked -> rotate -> alphabet shift locked. 65706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka // Long press shift key, enter alphabet shift locked. 6582959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 6590d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 66049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in alphabet shift locked. 66106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka rotateDevice(ALPHABET_SHIFT_LOCKED); 66206bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 66349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked -> symbols -> rotate -> symbols -> 66449bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked. 66549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols. 66606bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 66749bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in symbols, 66806bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka rotateDevice(SYMBOLS_UNSHIFTED); 66949bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "ABC" key, alphabet shift locked state should be maintained. 67049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 67106bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka 67249bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked -> symbols shifted -> rotate -> symbols shifted -> 67349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked. 67449bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols. 67549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 67649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "=\<" key, enter symbols shifted. 67706bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 67849bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in symbols shifted. 67906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka rotateDevice(SYMBOLS_SHIFTED); 68049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "ABC" key, alphabet shift locked state should be maintained. 68149bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 68249bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka 68349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked -> symbols shifted -> alphabet shift locked -> rotate -> 68449bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet shift locked -> symbols. 68549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols. 68649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 68749bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "=\<" key, enter symbols shifted. 68849bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 68949bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "ABC" key, enter alphabet shift locked. 69049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_SHIFT_LOCKED, ALPHABET_SHIFT_LOCKED); 69149bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in alphabet shift locked. 69249bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka rotateDevice(ALPHABET_SHIFT_LOCKED); 69349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols (not symbols shifted). 69449bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 69549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka 69649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet -> symbols shifted -> alphabet -> rotate -> 69749bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Alphabet -> symbols. 69849bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka loadKeyboard(ALPHABET_UNSHIFTED); 69949bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols. 70049bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 70149bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "=\<" key, enter symbols shifted. 70249bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, SYMBOLS_SHIFTED, SYMBOLS_SHIFTED); 70349bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "ABC" key, enter alphabet. 70449bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 70549bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Rotate device, remain in alphabet shift locked. 70649bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka rotateDevice(ALPHABET_UNSHIFTED); 70749bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka // Press/release "?123" key, enter symbols (not symbols shifted). 70849bd49c8fbc394d277e89e8d105450d3e2818f50Tadashi G. Takaoka pressAndReleaseKey(CODE_SYMBOL, SYMBOLS_UNSHIFTED, SYMBOLS_UNSHIFTED); 70906bc1db017b14614353137fde035d2eed666a74fTadashi G. Takaoka } 710beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka 711beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly type shift key. 712beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka public void testRapidShiftTyping() { 713beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release shift key 714beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 715beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 716beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 717beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 718beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 719beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 720beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 721beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 722beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 723beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 724beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 725beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka 726beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release shift key to enter alphabet manual shifted. 727beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 728beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release shift key 729beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 730beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 731beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('j', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 732beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 733beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 734beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 735beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 736beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 737beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 738beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 739beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 740beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka 741beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Long press shift key to enter alphabet shift locked. 7422959fc0f13ec29e05eda2c4a1e9a728350a80557Tadashi G. Takaoka longPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED, 7430d6d4c20ce2e6ff75901d29aa9b2ad11b8dd1118Tadashi G. Takaoka ALPHABET_SHIFT_LOCKED); 744beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release shift key 745beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_SHIFT_LOCK_SHIFTED, ALPHABET_UNSHIFTED); 746beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 747beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('j', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 748beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 749beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 750beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 751beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 752beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 753beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 754beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 755beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 756beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka 757553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka // Set capitalize the first character of all words mode. 758553e2f19c1607080ff874cb642237f947809cdb3Tadashi G. Takaoka setAutoCapsMode(CAP_MODE_WORDS); 759beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release auto caps trigger letter to enter alphabet automatic shifted. 760beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_AUTO_CAPS_TRIGGER, ALPHABET_UNSHIFTED, ALPHABET_AUTOMATIC_SHIFTED); 761beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Press/release shift key 762beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka pressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 763beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 764beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('j', ALPHABET_UNSHIFTED, ALPHABET_UNSHIFTED); 765beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 766beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 767beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 768beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 769beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release shift key. 770beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey(CODE_SHIFT, ALPHABET_MANUAL_SHIFTED, ALPHABET_MANUAL_SHIFTED); 771beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka // Rapidly press/release letter key. 772beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka secondPressAndReleaseKey('J', ALPHABET_MANUAL_SHIFTED, ALPHABET_UNSHIFTED); 773beb08b398fa73a26f2d42d6feec87e34a96ca2d9Tadashi G. Takaoka } 774e47bd3f4fbf38ae20c5b61fac563a3f6152037a3Tadashi G. Takaoka} 775