diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index 59bf8d53cb..4d144ca311 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -163,6 +163,11 @@ public class LauncherTaskbarUIController extends TaskbarUIController { mTaskbarLauncherStateController.stashHotseat(stash); } + @Override + public void unStashHotseatInstantly() { + mTaskbarLauncherStateController.unStashHotseatInstantly(); + } + /** * Adds the Launcher resume animator to the given animator set. * diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index 84c834b69b..6bf1ee6802 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -16,9 +16,9 @@ package com.android.launcher3.taskbar; import static com.android.app.animation.Interpolators.EMPHASIZED; -import static com.android.launcher3.LauncherState.HOTSEAT_ICONS; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_ALIGNMENT; import static com.android.launcher3.Hotseat.ALPHA_CHANNEL_TASKBAR_STASH; +import static com.android.launcher3.LauncherState.HOTSEAT_ICONS; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_APP; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_OVERVIEW; import static com.android.launcher3.taskbar.TaskbarStashController.FLAG_IN_STASHED_LAUNCHER_STATE; @@ -763,6 +763,14 @@ public class TaskbarLauncherStateController { } } + protected void unStashHotseatInstantly() { + TaskbarStashController stashController = mControllers.taskbarStashController; + stashController.updateStateForFlag(FLAG_STASHED_FOR_BUBBLES, false); + stashController.applyState(/* duration = */ 0); + updateIconAlphaForHome(/* taskbarAlpha = */ 0, + ALPHA_CHANNEL_TASKBAR_STASH, /* updateTaskbarAlpha = */ false); + } + /** * Resets and updates the icon alignment. */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 1f7b44fbd7..9b7d3bfa6e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -402,6 +402,11 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba mControllers.uiController.stashHotseat(stash); } + /** Instantly un-stashes the hotseat. */ + public void unStashHotseatInstantly() { + mControllers.uiController.unStashHotseatInstantly(); + } + /** * Returns whether the taskbar should be stashed in apps (e.g. user long pressed to stash). */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index c04721663d..9163246981 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -432,4 +432,8 @@ public class TaskbarUIController { /** Sets whether the hotseat is stashed */ public void stashHotseat(boolean stash) { } + + /** Un-stash the hotseat instantly */ + public void unStashHotseatInstantly() { + } } diff --git a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java index 41762929f9..025c03860c 100644 --- a/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/bubbles/BubbleBarViewController.java @@ -748,7 +748,8 @@ public class BubbleBarViewController { /** * Hides the persistent taskbar if it is going to intersect with the expanded bubble bar if in - * app or overview. Set the hotseat stashed state if on launcher home screen. + * app or overview. Set the hotseat stashed state if on launcher home screen. If not on launcher + * home screen and hotseat is stashed immediately un-stashes the hotseat. */ private void adjustTaskbarAndHotseatToBubbleBarState(boolean isBubbleBarExpanded) { if (mBubbleStashController.isBubblesShowingOnHome()) { @@ -760,6 +761,10 @@ public class BubbleBarViewController { .animateToValue(hideTaskbar ? 0 : 1) .start(); } + if (!mBubbleStashController.isBubblesShowingOnHome() + && mTaskbarStashController.isHiddenForBubbles()) { + mTaskbarStashController.unStashHotseatInstantly(); + } } /** Return {@code true} if expanded bubble bar would intersect the taskbar. */