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

Commit c3bb65a0 authored by Jon Miranda's avatar Jon Miranda
Browse files

Fix bug where taskbar jumps when double swiping up.

Bug: 273948325
Change-Id: Ib3f19f4bf7348cd3545864351d48780dbc9acd65
Flag: ENABLE_TRANSIENT_TASKBAR
Test: swipe up to unstash taskbar, quickly swipe up again
parent 149246f0
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -76,12 +76,11 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
    /**
     * Called to cancel any existing animations.
     */
    public void cancelAnimationIfExists() {
    public void cancelSpringIfExists() {
        if (mSpringBounce != null) {
            mSpringBounce.cancel();
            mSpringBounce = null;
        }
        reset();
    }

    private void updateTranslationYForSwipe() {
@@ -138,13 +137,14 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
     * Returns an animation to reset the taskbar translation to {@code 0}.
     */
    public ObjectAnimator createAnimToResetTranslation(long duration) {
        ObjectAnimator animator = ObjectAnimator.ofFloat(mTranslationYForSwipe, VALUE, 0);
        ObjectAnimator animator = mTranslationYForSwipe.animateToValue(0);
        animator.setInterpolator(Interpolators.LINEAR);
        animator.setDuration(duration);
        animator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationStart(Animator animation) {
                cancelAnimationIfExists();
                cancelSpringIfExists();
                reset();
                mAnimationToHomeRunning = true;
            }

@@ -162,6 +162,18 @@ public class TaskbarTranslationController implements TaskbarControllers.Loggable
     */
    public class TransitionCallback {

        /**
         * Clears any existing animations so that user
         * can take control over the movement of the taskbaer.
         */
        public void onActionDown() {
            if (mAnimationToHomeRunning) {
                mTranslationYForSwipe.cancelAnimation();
            }
            mAnimationToHomeRunning = false;
            cancelSpringIfExists();
            reset();
        }
        /**
         * Called when there is movement to move the taskbar.
         */
+4 −0
Original line number Diff line number Diff line
@@ -126,6 +126,10 @@ public class TaskbarStashInputConsumer extends DelegateInputConsumer {
                                mCanceledUnstashHint = false;
                            }
                        }

                        if (mTransitionCallback != null && !mIsTaskbarAllAppsOpen) {
                            mTransitionCallback.onActionDown();
                        }
                        break;
                    case MotionEvent.ACTION_POINTER_UP:
                        int ptrIdx = ev.getActionIndex();