Loading java/res/values/attrs.xml +2 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,8 @@ <attr name="longPressShiftKeyTimeout" format="integer" /> <!-- Ignore special key timeout while typing in millisecond. --> <attr name="ignoreAltCodeKeyTimeout" format="integer" /> <!-- Disable gesture input while fast typing timer in millisecond. --> <attr name="disableGestureWhileFastTypingTimeout" format="integer" /> <!-- More keys keyboard will shown at touched point. --> <attr name="showMoreKeysKeyboardAtTouchedPoint" format="boolean" /> </declare-styleable> Loading java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ <!-- Long pressing shift will invoke caps-lock if > 0, never invoke caps-lock if == 0 --> <integer name="config_long_press_shift_key_timeout">1200</integer> <integer name="config_ignore_alt_code_key_timeout">350</integer> <integer name="config_disable_gesture_while_fast_typing_timeout">350</integer> <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_more_keys_keyboard_at_touched_point">false</bool> Loading java/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ <item name="longPressKeyTimeout">@integer/config_long_press_key_timeout</item> <item name="longPressShiftKeyTimeout">@integer/config_long_press_shift_key_timeout</item> <item name="ignoreAltCodeKeyTimeout">@integer/config_ignore_alt_code_key_timeout</item> <item name="disableGestureWhileFastTypingTimeout">@integer/config_disable_gesture_while_fast_typing_timeout</item> <item name="showMoreKeysKeyboardAtTouchedPoint">@bool/config_show_more_keys_keyboard_at_touched_point</item> <item name="languageOnSpacebarFinalAlpha">@integer/config_language_on_spacebar_final_alpha</item> <item name="languageOnSpacebarFadeoutAnimator">@anim/language_on_spacebar_fadeout</item> Loading java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +15 −0 Original line number Diff line number Diff line Loading @@ -142,12 +142,14 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key private static final int MSG_REPEAT_KEY = 1; private static final int MSG_LONGPRESS_KEY = 2; private static final int MSG_DOUBLE_TAP = 3; private static final int MSG_DISABLE_GESTURE_EXPIRED = 4; private final int mKeyRepeatStartTimeout; private final int mKeyRepeatInterval; private final int mLongPressKeyTimeout; private final int mLongPressShiftKeyTimeout; private final int mIgnoreAltCodeKeyTimeout; private final int mDisableGestureWhileFastTypingTimeout; public KeyTimerHandler(final MainKeyboardView outerInstance, final TypedArray mainKeyboardViewAttr) { Loading @@ -163,6 +165,8 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key R.styleable.MainKeyboardView_longPressShiftKeyTimeout, 0); mIgnoreAltCodeKeyTimeout = mainKeyboardViewAttr.getInt( R.styleable.MainKeyboardView_ignoreAltCodeKeyTimeout, 0); mDisableGestureWhileFastTypingTimeout = mainKeyboardViewAttr.getInt( R.styleable.MainKeyboardView_disableGestureWhileFastTypingTimeout, 0); } @Override Loading @@ -187,6 +191,9 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key KeyboardSwitcher.getInstance().onLongPressTimeout(msg.arg1); } break; case MSG_DISABLE_GESTURE_EXPIRED: PointerTracker.clearGestureOffWhileFastTyping(); break; } } Loading Loading @@ -311,6 +318,14 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key return hasMessages(MSG_TYPING_STATE_EXPIRED); } @Override public void startGestureOffWhileFastTypingTimer() { removeMessages(MSG_DISABLE_GESTURE_EXPIRED); PointerTracker.setGestureOffWhileFastTyping(); sendMessageDelayed(obtainMessage(MSG_DISABLE_GESTURE_EXPIRED), mDisableGestureWhileFastTypingTimeout); } @Override public void startDoubleTapTimer() { sendMessageDelayed(obtainMessage(MSG_DOUBLE_TAP), Loading java/src/com/android/inputmethod/keyboard/PointerTracker.java +17 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { private static boolean sMainDictionaryAvailable = false; private static boolean sGestureHandlingEnabledByInputField = false; private static boolean sGestureHandlingEnabledByUser = false; private static boolean sGestureOffWhileFastTyping = false; public interface KeyEventHandler { /** Loading Loading @@ -84,6 +85,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { public interface TimerProxy { public void startTypingStateTimer(Key typedKey); public boolean isTypingState(); public void startGestureOffWhileFastTypingTimer(); public void startKeyRepeatTimer(PointerTracker tracker); public void startLongPressTimer(PointerTracker tracker); public void startLongPressTimer(int code); Loading @@ -99,6 +101,8 @@ public class PointerTracker implements PointerTrackerQueue.Element { @Override public boolean isTypingState() { return false; } @Override public void startGestureOffWhileFastTypingTimer() {} @Override public void startKeyRepeatTimer(PointerTracker tracker) {} @Override public void startLongPressTimer(PointerTracker tracker) {} Loading Loading @@ -225,6 +229,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { private static void updateGestureHandlingMode() { sShouldHandleGesture = sMainDictionaryAvailable && !sGestureOffWhileFastTyping && sGestureHandlingEnabledByInputField && sGestureHandlingEnabledByUser && !AccessibilityUtils.getInstance().isTouchExplorationEnabled(); Loading @@ -241,6 +246,16 @@ public class PointerTracker implements PointerTrackerQueue.Element { updateGestureHandlingMode(); } public static void setGestureOffWhileFastTyping() { sGestureOffWhileFastTyping = true; updateGestureHandlingMode(); } public static void clearGestureOffWhileFastTyping() { sGestureOffWhileFastTyping = false; updateGestureHandlingMode(); } public static PointerTracker getPointerTracker(final int id, final KeyEventHandler handler) { final ArrayList<PointerTracker> trackers = sTrackers; Loading Loading @@ -346,8 +361,10 @@ public class PointerTracker implements PointerTrackerQueue.Element { if (key.isEnabled() || altersCode) { if (code == Keyboard.CODE_OUTPUT_TEXT) { mListener.onTextInput(key.getOutputText()); mTimerProxy.startGestureOffWhileFastTypingTimer(); } else if (code != Keyboard.CODE_UNSPECIFIED) { mListener.onCodeInput(code, x, y); mTimerProxy.startGestureOffWhileFastTypingTimer(); } } } Loading Loading
java/res/values/attrs.xml +2 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,8 @@ <attr name="longPressShiftKeyTimeout" format="integer" /> <!-- Ignore special key timeout while typing in millisecond. --> <attr name="ignoreAltCodeKeyTimeout" format="integer" /> <!-- Disable gesture input while fast typing timer in millisecond. --> <attr name="disableGestureWhileFastTypingTimeout" format="integer" /> <!-- More keys keyboard will shown at touched point. --> <attr name="showMoreKeysKeyboardAtTouchedPoint" format="boolean" /> </declare-styleable> Loading
java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,7 @@ <!-- Long pressing shift will invoke caps-lock if > 0, never invoke caps-lock if == 0 --> <integer name="config_long_press_shift_key_timeout">1200</integer> <integer name="config_ignore_alt_code_key_timeout">350</integer> <integer name="config_disable_gesture_while_fast_typing_timeout">350</integer> <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if false --> <bool name="config_show_more_keys_keyboard_at_touched_point">false</bool> Loading
java/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ <item name="longPressKeyTimeout">@integer/config_long_press_key_timeout</item> <item name="longPressShiftKeyTimeout">@integer/config_long_press_shift_key_timeout</item> <item name="ignoreAltCodeKeyTimeout">@integer/config_ignore_alt_code_key_timeout</item> <item name="disableGestureWhileFastTypingTimeout">@integer/config_disable_gesture_while_fast_typing_timeout</item> <item name="showMoreKeysKeyboardAtTouchedPoint">@bool/config_show_more_keys_keyboard_at_touched_point</item> <item name="languageOnSpacebarFinalAlpha">@integer/config_language_on_spacebar_final_alpha</item> <item name="languageOnSpacebarFadeoutAnimator">@anim/language_on_spacebar_fadeout</item> Loading
java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +15 −0 Original line number Diff line number Diff line Loading @@ -142,12 +142,14 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key private static final int MSG_REPEAT_KEY = 1; private static final int MSG_LONGPRESS_KEY = 2; private static final int MSG_DOUBLE_TAP = 3; private static final int MSG_DISABLE_GESTURE_EXPIRED = 4; private final int mKeyRepeatStartTimeout; private final int mKeyRepeatInterval; private final int mLongPressKeyTimeout; private final int mLongPressShiftKeyTimeout; private final int mIgnoreAltCodeKeyTimeout; private final int mDisableGestureWhileFastTypingTimeout; public KeyTimerHandler(final MainKeyboardView outerInstance, final TypedArray mainKeyboardViewAttr) { Loading @@ -163,6 +165,8 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key R.styleable.MainKeyboardView_longPressShiftKeyTimeout, 0); mIgnoreAltCodeKeyTimeout = mainKeyboardViewAttr.getInt( R.styleable.MainKeyboardView_ignoreAltCodeKeyTimeout, 0); mDisableGestureWhileFastTypingTimeout = mainKeyboardViewAttr.getInt( R.styleable.MainKeyboardView_disableGestureWhileFastTypingTimeout, 0); } @Override Loading @@ -187,6 +191,9 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key KeyboardSwitcher.getInstance().onLongPressTimeout(msg.arg1); } break; case MSG_DISABLE_GESTURE_EXPIRED: PointerTracker.clearGestureOffWhileFastTyping(); break; } } Loading Loading @@ -311,6 +318,14 @@ public class MainKeyboardView extends KeyboardView implements PointerTracker.Key return hasMessages(MSG_TYPING_STATE_EXPIRED); } @Override public void startGestureOffWhileFastTypingTimer() { removeMessages(MSG_DISABLE_GESTURE_EXPIRED); PointerTracker.setGestureOffWhileFastTyping(); sendMessageDelayed(obtainMessage(MSG_DISABLE_GESTURE_EXPIRED), mDisableGestureWhileFastTypingTimeout); } @Override public void startDoubleTapTimer() { sendMessageDelayed(obtainMessage(MSG_DOUBLE_TAP), Loading
java/src/com/android/inputmethod/keyboard/PointerTracker.java +17 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { private static boolean sMainDictionaryAvailable = false; private static boolean sGestureHandlingEnabledByInputField = false; private static boolean sGestureHandlingEnabledByUser = false; private static boolean sGestureOffWhileFastTyping = false; public interface KeyEventHandler { /** Loading Loading @@ -84,6 +85,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { public interface TimerProxy { public void startTypingStateTimer(Key typedKey); public boolean isTypingState(); public void startGestureOffWhileFastTypingTimer(); public void startKeyRepeatTimer(PointerTracker tracker); public void startLongPressTimer(PointerTracker tracker); public void startLongPressTimer(int code); Loading @@ -99,6 +101,8 @@ public class PointerTracker implements PointerTrackerQueue.Element { @Override public boolean isTypingState() { return false; } @Override public void startGestureOffWhileFastTypingTimer() {} @Override public void startKeyRepeatTimer(PointerTracker tracker) {} @Override public void startLongPressTimer(PointerTracker tracker) {} Loading Loading @@ -225,6 +229,7 @@ public class PointerTracker implements PointerTrackerQueue.Element { private static void updateGestureHandlingMode() { sShouldHandleGesture = sMainDictionaryAvailable && !sGestureOffWhileFastTyping && sGestureHandlingEnabledByInputField && sGestureHandlingEnabledByUser && !AccessibilityUtils.getInstance().isTouchExplorationEnabled(); Loading @@ -241,6 +246,16 @@ public class PointerTracker implements PointerTrackerQueue.Element { updateGestureHandlingMode(); } public static void setGestureOffWhileFastTyping() { sGestureOffWhileFastTyping = true; updateGestureHandlingMode(); } public static void clearGestureOffWhileFastTyping() { sGestureOffWhileFastTyping = false; updateGestureHandlingMode(); } public static PointerTracker getPointerTracker(final int id, final KeyEventHandler handler) { final ArrayList<PointerTracker> trackers = sTrackers; Loading Loading @@ -346,8 +361,10 @@ public class PointerTracker implements PointerTrackerQueue.Element { if (key.isEnabled() || altersCode) { if (code == Keyboard.CODE_OUTPUT_TEXT) { mListener.onTextInput(key.getOutputText()); mTimerProxy.startGestureOffWhileFastTypingTimer(); } else if (code != Keyboard.CODE_UNSPECIFIED) { mListener.onCodeInput(code, x, y); mTimerProxy.startGestureOffWhileFastTypingTimer(); } } } Loading