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

Commit 1e974dea authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Disable gesture input while fast typing" into jb-mr1-dev

parents 5274a4a6 9f09c6fb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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>
+1 −0
Original line number Diff line number Diff line
@@ -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>
+1 −0
Original line number Diff line number Diff line
@@ -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>
+15 −0
Original line number Diff line number Diff line
@@ -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) {
@@ -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
@@ -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;
            }
        }

@@ -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),
+17 −0
Original line number Diff line number Diff line
@@ -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 {
        /**
@@ -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);
@@ -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) {}
@@ -225,6 +229,7 @@ public class PointerTracker implements PointerTrackerQueue.Element {

    private static void updateGestureHandlingMode() {
        sShouldHandleGesture = sMainDictionaryAvailable
                && !sGestureOffWhileFastTyping
                && sGestureHandlingEnabledByInputField
                && sGestureHandlingEnabledByUser
                && !AccessibilityUtils.getInstance().isTouchExplorationEnabled();
@@ -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;

@@ -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