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

Commit 41b580bc authored by Jon Miranda's avatar Jon Miranda
Browse files

Allow user gesture to take priority over taskbar translation reset animnatiuon.

Bug: 273948325
Test: open overview
      tap to open main app
      quickly swipe up to show taskbar

Change-Id: I0bbb3a354baf9b56652f029a357d8a5803281da5
parent 08a13d6a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ public class TaskbarLauncherStateController {
        long resetDuration = mControllers.taskbarStashController.isInApp()
                ? duration
                : duration / 2;
        if (!mControllers.taskbarTranslationController.willAnimateToZeroBefore(resetDuration)
        if (mControllers.taskbarTranslationController.shouldResetBackToZero(resetDuration)
                && (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL)) {
            animatorSet.play(mControllers.taskbarTranslationController
                    .createAnimToResetTranslation(resetDuration));
+16 −5
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
    private boolean mHasSprungOnceThisGesture;
    private @Nullable ValueAnimator mSpringBounce;
    private boolean mGestureEnded;
    private boolean mGestureInProgress;
    private boolean mAnimationToHomeRunning;

    private final boolean mIsTransientTaskbar;
@@ -123,6 +124,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable

    private void reset() {
        mGestureEnded = false;
        mGestureInProgress = false;
        mHasSprungOnceThisGesture = false;
    }

@@ -134,18 +136,24 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
    }

    /**
     * Returns true if we will animate to zero before the input duration.
     * Returns {@code true} if we should reset the animation back to zero.
     *
     * Returns {@code false} if there is a gesture in progress, or if we are already animating
     * to 0 within the specified duration.
     */
    public boolean willAnimateToZeroBefore(long duration) {
    public boolean shouldResetBackToZero(long duration) {
        if (mGestureInProgress) {
            return false;
        }
        if (mSpringBounce != null && mSpringBounce.isRunning()) {
            long springDuration = mSpringBounce.getDuration();
            long current = mSpringBounce.getCurrentPlayTime();
            return (springDuration - current < duration);
            return (springDuration - current >= duration);
        }
        if (mTranslationYForSwipe.isAnimatingToValue(0)) {
            return mTranslationYForSwipe.getRemainingTime() < duration;
            return mTranslationYForSwipe.getRemainingTime() >= duration;
        }
        return false;
        return true;
    }

    /**
@@ -188,6 +196,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
            mAnimationToHomeRunning = false;
            cancelSpringIfExists();
            reset();
            mGestureInProgress = true;
        }
        /**
         * Called when there is movement to move the taskbar.
@@ -211,6 +220,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
                mGestureEnded = true;
                startSpring();
            }
            mGestureInProgress = false;
        }
    }

@@ -222,6 +232,7 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
        pw.println(prefix + "\tmHasSprungOnceThisGesture=" + mHasSprungOnceThisGesture);
        pw.println(prefix + "\tmAnimationToHomeRunning=" + mAnimationToHomeRunning);
        pw.println(prefix + "\tmGestureEnded=" + mGestureEnded);
        pw.println(prefix + "\tmGestureInProgress=" + mGestureInProgress);
        pw.println(prefix + "\tmSpringBounce is running=" + (mSpringBounce != null
                && mSpringBounce.isRunning()));
    }