diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index 9078742f65..f44cae927d 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -521,11 +521,22 @@ public class TaskbarLauncherStateController { stashController.updateStateForFlag(FLAG_IN_OVERVIEW, mLauncherState == LauncherState.OVERVIEW); + // Update taskbar stash flag here since we are skipping the playStateTransitionAnim below + if (isPinnedTaskbar) { + stashController.updateStateForFlag(FLAG_IN_STASHED_LAUNCHER_STATE, + mLauncherState.isTaskbarStashed(mLauncher)); + } + AnimatorSet animatorSet = new AnimatorSet(); if (hasAnyFlag(changedFlags, FLAG_LAUNCHER_IN_STATE_TRANSITION)) { boolean launcherTransitionCompleted = !hasAnyFlag(FLAG_LAUNCHER_IN_STATE_TRANSITION); - playStateTransitionAnim(animatorSet, duration, launcherTransitionCompleted); + + // We are skipping the taskbar stash animation for pinned taskbar, as we handle that now + // in setupPinnedTaskbarAnimation. + if (!isPinnedTaskbar) { + playStateTransitionAnim(animatorSet, duration, launcherTransitionCompleted); + } if (launcherTransitionCompleted && mLauncherState == LauncherState.QUICK_SWITCH_FROM_HOME) { @@ -613,7 +624,7 @@ public class TaskbarLauncherStateController { AnimatedFloat taskbarBgOffset = mControllers.taskbarDragLayerController.getTaskbarBackgroundOffset(); boolean showTaskbar = shouldShowTaskbar(mControllers.taskbarActivityContext, isInLauncher, - isInOverview); + isInOverview) && !mControllers.taskbarStashController.isInStashedLauncherState(); float taskbarBgOffsetEnd = showTaskbar ? 0f : 1f; float taskbarBgOffsetStart = showTaskbar ? 1f : 0f; @@ -762,6 +773,7 @@ public class TaskbarLauncherStateController { return !isInLauncher || isInOverview; } + // Used to stash/unstash pinned taskbar between home, overview, in app states. private void setupPinnedTaskbarAnimation(AnimatorSet animatorSet, boolean showTaskbar, AnimatedFloat taskbarBgOffset, float taskbarBgOffsetStart, float taskbarBgOffsetEnd, long duration, Animator taskbarBackgroundAlpha) {