From 51be868783da7df4955b9d22255ca15268e23f20 Mon Sep 17 00:00:00 2001 From: Jagrut Desai Date: Tue, 8 Apr 2025 10:18:48 -0700 Subject: [PATCH] Fix pinned Taksbar in Overview Modal Launcher state. Test: Manual Bug: 406681846 Flag: EXEMPT bugfix Change-Id: Icaf4fefdc6e1085b865a438817f5c62d473c6edd --- .../taskbar/TaskbarLauncherStateController.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) 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) {