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

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

Fix gesture detection when sliding key input is disabled

Bug: 6867837
Change-Id: Icbfa69928c436343db545860a7d63171f52266b6
parent 941f222c
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -794,13 +794,16 @@ public class PointerTracker {
                    final int dx = x - lastX;
                    final int dy = y - lastY;
                    final int lastMoveSquared = dx * dx + dy * dy;
                    // TODO: Should find a way to balance gesture detection and this hack.
                    if (sNeedsPhantomSuddenMoveEventHack
                            && lastMoveSquared >= mKeyQuarterWidthSquared) {
                            && lastMoveSquared >= mKeyQuarterWidthSquared
                            && !mIsPossibleGesture) {
                        if (DEBUG_MODE) {
                            Log.w(TAG, String.format("onMoveEvent:"
                                    + " phantom sudden move event is translated to "
                                    + "up[%d,%d]/down[%d,%d] events", lastX, lastY, x, y));
                        }
                        // TODO: This should be moved to outside of this nested if-clause?
                        if (ProductionFlag.IS_EXPERIMENTAL) {
                            ResearchLogger.pointerTracker_onMoveEvent(x, y, lastX, lastY);
                        }
@@ -816,7 +819,9 @@ public class PointerTracker {
                                && !sPointerTrackerQueue.hasModifierKeyOlderThan(this)) {
                            onUpEventInternal(x, y, eventTime);
                        }
                        if (!mIsPossibleGesture) {
                            mKeyAlreadyProcessed = true;
                        }
                        setReleasedKeyGraphics(oldKey);
                    }
                }
@@ -832,11 +837,13 @@ public class PointerTracker {
                if (mIsAllowedSlidingKeyInput) {
                    onMoveToNewKey(key, x, y);
                } else {
                    if (!mIsPossibleGesture) {
                        mKeyAlreadyProcessed = true;
                    }
                }
            }
        }
    }

    public void onUpEvent(int x, int y, long eventTime) {
        if (DEBUG_EVENT)
@@ -871,6 +878,7 @@ public class PointerTracker {
    private void onUpEventInternal(int x, int y, long eventTime) {
        mTimerProxy.cancelKeyTimers();
        mIsInSlidingKeyInput = false;
        mIsPossibleGesture = false;
        // Release the last pressed key.
        setReleasedKeyGraphics(mCurrentKey);
        if (mIsShowingMoreKeysPanel) {