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
This commit is contained in:
+2
-1
@@ -103,7 +103,8 @@ public class ProgressDelegateInputConsumer implements InputConsumer,
|
||||
mStateCallback = new MultiStateCallback(STATE_NAMES);
|
||||
mStateCallback.runOnceAtState(STATE_TARGET_RECEIVED | STATE_HANDLER_INVALIDATED,
|
||||
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.setDetectableScrollConditions(DIRECTION_POSITIVE, false);
|
||||
|
||||
@@ -252,6 +252,10 @@ public class AllSetActivity extends Activity {
|
||||
binder.setSwipeUpProxy(isResumed() ? this::createSwipeUpProxy : null);
|
||||
binder.setOverviewTargetChangeListener(binder::preloadOverviewForSUWAllSet);
|
||||
binder.preloadOverviewForSUWAllSet();
|
||||
TaskbarManager taskbarManager = binder.getTaskbarManager();
|
||||
if (taskbarManager != null) {
|
||||
mLauncherStartAnim = taskbarManager.createLauncherStartFromSuwAnim(MAX_SWIPE_DURATION);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -327,13 +331,9 @@ public class AllSetActivity extends Activity {
|
||||
mRootView.setAlpha(alpha);
|
||||
mRootView.setTranslationY((alpha - 1) * mSwipeUpShift);
|
||||
|
||||
TaskbarManager taskbarManager = mTISBindHelper.getTaskbarManager();
|
||||
if (mLauncherStartAnim == null && taskbarManager != null) {
|
||||
mLauncherStartAnim = taskbarManager.createLauncherStartFromSuwAnim(MAX_SWIPE_DURATION);
|
||||
}
|
||||
if (mLauncherStartAnim != null) {
|
||||
mLauncherStartAnim.setPlayFraction(Utilities.mapBoundToRange(
|
||||
mSwipeProgress.value, 0, 1, 0, 1, FAST_OUT_SLOW_IN));
|
||||
mLauncherStartAnim.setPlayFraction(
|
||||
FAST_OUT_SLOW_IN.getInterpolation(mSwipeProgress.value));
|
||||
}
|
||||
maybeResumeOrPauseBackgroundAnimation();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user