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

Commit 2d2b2311 authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 3561 into donut

* changes:
  Fix multiple strokes support when fade is disabled. Multiple strokes would always be accepted after the first one.
parents 7fe416e9 73d2589d
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ public class GestureOverlayView extends FrameLayout {
    private boolean mPreviousWasGesturing = false;
    private boolean mInterceptEvents = true;
    private boolean mIsListeningForGestures;
    private boolean mResetGesture;

    // current gesture
    private Gesture mCurrentGesture;
@@ -372,7 +373,9 @@ public class GestureOverlayView extends FrameLayout {
    private void clear(boolean animated, boolean fireActionPerformed) {
        setPaintAlpha(255);
        removeCallbacks(mFadingOut);
        mResetGesture = false;
        mFadingOut.fireActionPerformed = fireActionPerformed;
        mFadingOut.resetMultipleStrokes = false;

        if (animated && mCurrentGesture != null) {
            mFadingAlpha = 1.0f;
@@ -387,11 +390,14 @@ public class GestureOverlayView extends FrameLayout {
            mFadingHasStarted = false;

            if (fireActionPerformed) {
                post(mFadingOut);
            } else {
                postDelayed(mFadingOut, mFadeOffset);
            } else if (mHandleGestureActions) {
                mCurrentGesture = null;
                mPath.rewind();
                invalidate();
            } else if (mGestureStrokeType == GESTURE_STROKE_TYPE_MULTIPLE) {
                mFadingOut.resetMultipleStrokes = true;
                postDelayed(mFadingOut, mFadeOffset);
            }
        }
    }
@@ -507,8 +513,9 @@ public class GestureOverlayView extends FrameLayout {
        mTotalLength = 0;
        mIsGesturing = false;

        if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE) {
        if (mGestureStrokeType == GESTURE_STROKE_TYPE_SINGLE || mResetGesture) {
            if (mHandleGestureActions) setCurrentColor(mUncertainGestureColor);
            mResetGesture = false;
            mCurrentGesture = null;
            mPath.rewind();
        } else if (mCurrentGesture == null || mCurrentGesture.getStrokesCount() == 0) {
@@ -640,9 +647,7 @@ public class GestureOverlayView extends FrameLayout {
                    listeners.get(i).onGestureEnded(this, event);
                }

                if (mHandleGestureActions) {
                    clear(mFadeEnabled, mIsGesturing);
                }
                clear(mHandleGestureActions && mFadeEnabled, mHandleGestureActions && mIsGesturing);
            } else {
                cancelGesture(event);

@@ -683,6 +688,7 @@ public class GestureOverlayView extends FrameLayout {

    private class FadeOutRunnable implements Runnable {
        boolean fireActionPerformed;
        boolean resetMultipleStrokes;

        public void run() {
            if (mIsFadingOut) {
@@ -708,6 +714,8 @@ public class GestureOverlayView extends FrameLayout {
                    setPaintAlpha((int) (255 * mFadingAlpha));
                    postDelayed(this, FADE_ANIMATION_RATE);
                }
            } else if (resetMultipleStrokes) {
                mResetGesture = true;
            } else {
                fireOnGesturePerformed();