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

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

Cancel update batch input timer only when point is added

Bug: 7972004
Change-Id: Ie5db5910efba851976da2284cafc69be2910d354
parent 7132840b
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -920,8 +920,12 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
            final boolean isMajorEvent, final Key key) {
        final int gestureTime = (int)(eventTime - sGestureFirstDownTime);
        if (mIsDetectingGesture) {
            final int beforeLength = mGestureStrokeWithPreviewPoints.getLength();
            final boolean onValidArea = mGestureStrokeWithPreviewPoints.addPointOnKeyboard(
                    x, y, gestureTime, isMajorEvent);
            if (mGestureStrokeWithPreviewPoints.getLength() > beforeLength) {
                mTimerProxy.startUpdateBatchInputTimer(this);
            }
            // If the move event goes out from valid batch input area, cancel batch input.
            if (!onValidArea) {
                cancelBatchInput();
@@ -943,7 +947,6 @@ public final class PointerTracker implements PointerTrackerQueue.Element {
        if (DEBUG_MOVE_EVENT) {
            printTouchEvent("onMoveEvent:", x, y, eventTime);
        }
        mTimerProxy.cancelUpdateBatchInputTimer(this);
        if (mIsTrackingCanceled) {
            return;
        }
+11 −7
Original line number Diff line number Diff line
@@ -163,6 +163,10 @@ public class GestureStroke {
        }
    }

    public int getLength() {
        return mEventTimes.getLength();
    }

    public void onDownEvent(final int x, final int y, final long downTime,
            final long gestureFirstDownTime, final long lastTypingTime) {
        reset();
@@ -202,7 +206,7 @@ public class GestureStroke {
        if (!hasDetectedFastMove()) {
            return false;
        }
        final int size = mEventTimes.getLength();
        final int size = getLength();
        if (size <= 0) {
            return false;
        }
@@ -229,7 +233,7 @@ public class GestureStroke {
    }

    public void duplicateLastPointWith(final int time) {
        final int lastIndex = mEventTimes.getLength() - 1;
        final int lastIndex = getLength() - 1;
        if (lastIndex >= 0) {
            final int x = mXCoordinates.get(lastIndex);
            final int y = mYCoordinates.get(lastIndex);
@@ -255,7 +259,7 @@ public class GestureStroke {
    }

    private void appendPoint(final int x, final int y, final int time) {
        final int lastIndex = mEventTimes.getLength() - 1;
        final int lastIndex = getLength() - 1;
        // The point that is created by {@link duplicateLastPointWith(int)} may have later event
        // time than the next {@link MotionEvent}. To maintain the monotonicity of the event time,
        // drop the successive point here.
@@ -281,7 +285,7 @@ public class GestureStroke {
    }

    private int detectFastMove(final int x, final int y, final int time) {
        final int size = mEventTimes.getLength();
        final int size = getLength();
        final int lastIndex = size - 1;
        final int lastX = mXCoordinates.get(lastIndex);
        final int lastY = mYCoordinates.get(lastIndex);
@@ -321,7 +325,7 @@ public class GestureStroke {
     */
    public boolean addPointOnKeyboard(final int x, final int y, final int time,
            final boolean isMajorEvent) {
        final int size = mEventTimes.getLength();
        final int size = getLength();
        if (size <= 0) {
            // Down event
            appendPoint(x, y, time);
@@ -348,7 +352,7 @@ public class GestureStroke {
        final int pixelsPerSec = pixels * MSEC_PER_SEC;
        // Equivalent to (pixels / msecs < mGestureRecognitionThreshold / MSEC_PER_SEC)
        if (pixelsPerSec < mGestureRecognitionSpeedThreshold * msecs) {
            mIncrementalRecognitionSize = mEventTimes.getLength();
            mIncrementalRecognitionSize = getLength();
        }
    }

@@ -358,7 +362,7 @@ public class GestureStroke {
    }

    public final void appendAllBatchPoints(final InputPointers out) {
        appendBatchPoints(out, mEventTimes.getLength());
        appendBatchPoints(out, getLength());
    }

    public final void appendIncrementalBatchPoints(final InputPointers out) {