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

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

Fix bug where double swipe gets us stuck in Hint state while in Overview.

With the second swipe, we never complete the swipe to Overview

NoButtonNavbarToOverviewTouchController#maybeSwipeInteractionToOverviewComplete
- mReachedOverview = true
- mDetector.isSettlingState = false

And then the second swipe starts the state transition to Hint but then
it never gets completed because:
1. The animation starts
2. Gets cancelled
3. Starts again
4. Finishes, but is not marked as success since the cancel in #2 was never
   set back to false

Bug: 160759508
Change-Id: I8c3972e6209c3d5a4a0bdd9f9b7683de18105d57
parent dbca5a41
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1090,6 +1090,7 @@ public abstract class BaseSwipeUpHandlerV2<T extends StatefulActivity<?>, Q exte
        anim.addAnimatorListener(new AnimationSuccessListener() {
            @Override
            public void onAnimationStart(Animator animation) {
                super.onAnimationStart(animation);
                if (mActivity != null) {
                    removeLiveTileOverlay();
                }
+1 −0
Original line number Diff line number Diff line
@@ -287,6 +287,7 @@ public abstract class SwipeUpAnimationLogic {

        @Override
        public void onAnimationStart(Animator animation) {
            super.onAnimationStart(animation);
            mHomeAnim.dispatchOnStart();
        }

+1 −0
Original line number Diff line number Diff line
@@ -282,6 +282,7 @@ public class TaskMenuView extends AbstractFloatingView {
        mOpenCloseAnimator.addListener(new AnimationSuccessListener() {
            @Override
            public void onAnimationStart(Animator animation) {
                super.onAnimationStart(animation);
                setVisibility(VISIBLE);
            }

+2 −1
Original line number Diff line number Diff line
@@ -46,7 +46,8 @@ public class AlphaUpdateListener extends AnimationSuccessListener
    }

    @Override
    public void onAnimationStart(Animator arg0) {
    public void onAnimationStart(Animator animation) {
        super.onAnimationStart(animation);
        // We want the views to be visible for animation, so fade-in/out is visible
        mView.setVisibility(View.VISIBLE);
    }
+8 −0
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@ package com.android.launcher3.anim;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;

import androidx.annotation.CallSuper;

/**
 * Extension of {@link AnimatorListenerAdapter} for listening for non-cancelled animations
 */
@@ -26,6 +28,12 @@ public abstract class AnimationSuccessListener extends AnimatorListenerAdapter {

    protected boolean mCancelled = false;

    @Override
    @CallSuper
    public void onAnimationStart(Animator animation) {
        mCancelled = false;
    }

    @Override
    public void onAnimationCancel(Animator animation) {
        mCancelled = true;
Loading