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

Commit 6c13b1a6 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Disable gesture detector on mini-keyboard (DO NOT MERGE)

This is cherry-pick I548501f7 from Honeycomb.

Gesture detector, for closing keyboard by swiping down, must be
disabled not only when mini-keyboard is on the screen, but also in the
mini-keyboard itself.

Bug: 3105595
Change-Id: Ic4603637208794a1bf6cfeb0d22dadd9a1e49e81
parent f9ac1272
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
    protected KeyDetector mKeyDetector = new ProximityKeyDetector();

    // Swipe gesture detector
    private final GestureDetector mGestureDetector;
    private GestureDetector mGestureDetector;
    private final SwipeTracker mSwipeTracker = new SwipeTracker();
    private final int mSwipeThreshold;
    private final boolean mDisambiguateSwipe;
@@ -1106,6 +1106,8 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
        });
        // Override default ProximityKeyDetector.
        miniKeyboard.mKeyDetector = new MiniKeyboardKeyDetector(mMiniKeyboardSlideAllowance);
        // Remove gesture detector on mini-keyboard
        miniKeyboard.mGestureDetector = null;

        Keyboard keyboard;
        if (popupKey.popupCharacters != null) {
@@ -1307,8 +1309,9 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
        // Track the last few movements to look for spurious swipes.
        mSwipeTracker.addMovement(me);

        // We must disable gesture detector while mini-keyboard is on the screen.
        if (mMiniKeyboard == null && mGestureDetector.onTouchEvent(me)) {
        // Gesture detector must be enabled only when mini-keyboard is not on the screen.
        if (mMiniKeyboard == null
                && mGestureDetector != null && mGestureDetector.onTouchEvent(me)) {
            dismissKeyPreview();
            mHandler.cancelKeyTimers();
            return true;