Fix spring not springing when unstashing.

The spring animation was getting cancelled by the reset
animation.

Added a check to avoid creating a new reset animation if we
are already animating to the final value.

Bug: 273961611
Change-Id: I3afb62b89b5f6fbe920906499db2497ef8e94069
Flag: ENABLE_TRANSIENT_TASKBAR
Test: stash transient taskbar
This commit is contained in:
Jon Miranda
2023-03-22 11:13:08 -07:00
parent 0a6356a5ea
commit 5945226515
3 changed files with 33 additions and 5 deletions

View File

@@ -553,12 +553,16 @@ public class TaskbarLauncherStateController {
animatorSet.play(stashAnimator);
}
if (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL) {
// Translate back to 0 at a shorter or same duration as the icon alignment animation.
// This ensures there is no jump after switching to hotseat, e.g. when swiping up from
// overview to home. Currently we do duration / 2 just to make it feel snappier.
// Translate back to 0 at a shorter or same duration as the icon alignment animation.
// This ensures there is no jump after switching to hotseat, e.g. when swiping up from
// overview to home. When not in app, we do duration / 2 just to make it feel snappier.
long resetDuration = mControllers.taskbarStashController.isInApp()
? duration
: duration / 2;
if (!mControllers.taskbarTranslationController.willAnimateToZeroBefore(resetDuration)
&& (isAnimatingToLauncher() || mLauncherState == LauncherState.NORMAL)) {
animatorSet.play(mControllers.taskbarTranslationController
.createAnimToResetTranslation(duration / 2));
.createAnimToResetTranslation(resetDuration));
}
}