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

Commit 1b2c2e69 authored by Schneider Victor-tulias's avatar Schneider Victor-tulias
Browse files

Handle onFlingFinished onRecentsAnimationStart

If the onRecentsAnimationStart callback runs after the user lifts their finger and onFlingFinished runs, then onFlingFinished never has another chance to run, leaving the user trapped in a state where the launcher is not started and the AllSetActivity is still present but invisible. Reverted to allow onFlingFinished to run onRecentsAnimationStart to handle this edge case.

Flag: not needed
Fixes: 285194839
Test: Ran AllSetActivty with a delay in onRecentsAnimationStart
Change-Id: I33ce5c1d4955b34d4b77d3b740dc599621bd4ed1
Merged-In: I33ce5c1d4955b34d4b77d3b740dc599621bd4ed1
parent 0da5208b
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -103,7 +103,8 @@ public class ProgressDelegateInputConsumer implements InputConsumer,
        mStateCallback = new MultiStateCallback(STATE_NAMES);
        mStateCallback = new MultiStateCallback(STATE_NAMES);
        mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_HANDLER_INVALIDATED,
        mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_HANDLER_INVALIDATED,
                this::endRemoteAnimation);
                this::endRemoteAnimation);
        mStateCallback.runOnceAtState(STATE_FLING_FINISHED, this::onFlingFinished);
        mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_FLING_FINISHED,
                this::onFlingFinished);


        mSwipeDetector = new SingleAxisSwipeDetector(mContext, this, VERTICAL);
        mSwipeDetector = new SingleAxisSwipeDetector(mContext, this, VERTICAL);
        mSwipeDetector.setDetectableScrollConditions(DIRECTION_POSITIVE, false);
        mSwipeDetector.setDetectableScrollConditions(DIRECTION_POSITIVE, false);
+5 −5
Original line number Original line Diff line number Diff line
@@ -254,6 +254,9 @@ public class AllSetActivity extends Activity {
        mBinder.setSwipeUpProxy(isResumed() ? this::createSwipeUpProxy : null);
        mBinder.setSwipeUpProxy(isResumed() ? this::createSwipeUpProxy : null);
        mBinder.setOverviewTargetChangeListener(mBinder::preloadOverviewForSUWAllSet);
        mBinder.setOverviewTargetChangeListener(mBinder::preloadOverviewForSUWAllSet);
        mBinder.preloadOverviewForSUWAllSet();
        mBinder.preloadOverviewForSUWAllSet();
        if (mTaskbarManager != null) {
            mLauncherStartAnim = mTaskbarManager.createLauncherStartFromSuwAnim(MAX_SWIPE_DURATION);
        }
    }
    }


    @Override
    @Override
@@ -328,12 +331,9 @@ public class AllSetActivity extends Activity {
        mRootView.setAlpha(alpha);
        mRootView.setAlpha(alpha);
        mRootView.setTranslationY((alpha - 1) * mSwipeUpShift);
        mRootView.setTranslationY((alpha - 1) * mSwipeUpShift);


        if (mLauncherStartAnim == null && mTaskbarManager != null) {
            mLauncherStartAnim = mTaskbarManager.createLauncherStartFromSuwAnim(MAX_SWIPE_DURATION);
        }
        if (mLauncherStartAnim != null) {
        if (mLauncherStartAnim != null) {
            mLauncherStartAnim.setPlayFraction(Utilities.mapBoundToRange(
            mLauncherStartAnim.setPlayFraction(
                    mSwipeProgress.value, 0, 1, 0, 1, FAST_OUT_SLOW_IN));
                    FAST_OUT_SLOW_IN.getInterpolation(mSwipeProgress.value));
        }
        }
        maybeResumeOrPauseBackgroundAnimation();
        maybeResumeOrPauseBackgroundAnimation();
    }
    }