mVibratePattern[i] = tmpArray[i]; } } private void handleModeChange() { final Keyboard current = mKeyboardView.getKeyboard(); Keyboard next = null; if (current == mQwertyKeyboard || current == mQwertyKeyboardShifted) { next = mSymbolsKeyboard; } else if (current == mSymbolsKeyboard || current == mSymbolsKeyboardShifted) { next = mQwertyKeyboard; } if (next != null) { mKeyboardView.setKeyboard(next); mKeyboardState = KEYBOARD_STATE_NORMAL; } } public void handleBackspace() { sendDownUpKeyEvents(KeyEvent.KEYCODE_DEL); performHapticFeedback(); } private void handleShift() { if (mKeyboardView == null) { return; } Keyboard current = mKeyboardView.getKeyboard(); PasswordEntryKeyboard next = null; final boolean isAlphaMode = current == mQwertyKeyboard || current == mQwertyKeyboardShifted; if (mKeyboardState == KEYBOARD_STATE_NORMAL) { mKeyboardState = isAlphaMode ? KEYBOARD_STATE_SHIFTED : KEYBOARD_STATE_CAPSLOCK; next = isAlphaMode ? mQwertyKeyboardShifted : mSymbolsKeyboardShifted; } else if (mKeyboardState == KEYBOARD_STATE_SHIFTED) { mKeyboardState = KEYBOARD_STATE_CAPSLOCK; next = isAlphaMode ? mQwertyKeyboardShifted : mSymbolsKeyboardShifted; } else if (mKeyboardState == KEYBOARD_STATE_CAPSLOCK) { mKeyboardState = KEYBOARD_STATE_NORMAL; next = isAlphaMode ? mQwertyKeyboard : mSymbolsKeyboard; } if (next != null) { if (next != current) { mKeyboardView.setKeyboard(next); } next.setShiftLocked(mKeyboardState == KEYBOARD_STATE_CAPSLOCK); mKeyboardView.setShifted(mKeyboardState != KEYBOARD_STATE_NORMAL); } } private void handleCharacter(int primaryCode, int[] keyCodes) { // Maybe turn off shift if not in capslock mode. if (mKeyboardView.isShifted() && primaryCode != ' ' && primaryCode != '\n') { primaryCode = Character.toUpperCase(primaryCode); } sendKeyEventsToTarget(primaryCode); }