From e424570af14de473bbd577339cabb7f742c75701 Mon Sep 17 00:00:00 2001 From: Jagrut Desai Date: Tue, 27 Feb 2024 14:13:29 -0800 Subject: [PATCH] Fixing taskbar unstashing after unfolding Test: Manual, Bug: 312723553 Flag: ACONFIG com.android.launcher3.enable_taskbar_pinning TRUNKFOOD Change-Id: Iddd10df6e40ee2de4ef08eb18df88d48b7468035 --- .../launcher3/taskbar/TaskbarStashController.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 8db343fa3f..fac8cc4f17 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -310,8 +310,16 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba boolean isTransientTaskbar = DisplayController.isTransientTaskbar(mActivity); boolean isInSetup = !mActivity.isUserSetupComplete() || setupUIVisible; - boolean isStashedInAppAuto = - isTransientTaskbar && !mTaskbarSharedState.getTaskbarWasPinned(); + boolean taskbarWasPinned = mTaskbarSharedState.getTaskbarWasPinned(); + boolean isStashedInAppAuto = isTransientTaskbar && !taskbarWasPinned; + + // now that we know we need to keep transient taskbar unstashed after unpinning animation + // we need to reset the shared state, so everytime user recreates taskbar we don't unstash + // transient taskbar by default. + if (mTaskbarSharedState.getTaskbarWasPinned()) { + mTaskbarSharedState.setTaskbarWasPinned(false); + } + if (ENABLE_TASKBAR_NAVBAR_UNIFICATION) { isStashedInAppAuto = isStashedInAppAuto && mTaskbarSharedState.taskbarWasStashedAuto; } @@ -324,8 +332,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba // us that we're paused until a bit later. This avoids flickering upon recreating taskbar. updateStateForFlag(FLAG_IN_APP, true); applyState(/* duration = */ 0); - if (mTaskbarSharedState.getTaskbarWasPinned() - || !mTaskbarSharedState.taskbarWasStashedAuto) { + if (taskbarWasPinned || !mTaskbarSharedState.taskbarWasStashedAuto) { tryStartTaskbarTimeout(); } notifyStashChange(/* visible */ false, /* stashed */ isStashedInApp());