diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index e3e84cf269..d9773d4081 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -258,8 +258,9 @@ import java.util.StringJoiner; } private Animator onStateChangeApplied(int changedFlags, long duration, boolean start) { - boolean goingToLauncher = isInLauncher(); + final boolean goingToLauncher = isInLauncher(); final float toAlignment = isIconAlignedWithHotseat() ? 1 : 0; + boolean handleOpenFloatingViews = false; if (DEBUG) { Log.d(TAG, "onStateChangeApplied - mState: " + getStateString(mState) + ", changedFlags: " + getStateString(changedFlags) @@ -280,6 +281,10 @@ import java.util.StringJoiner; updateStateForFlag(FLAG_RESUMED, false); applyState(0 /* duration */); } + if (mLauncherState == LauncherState.NORMAL) { + // We're changing state to home, should close open popups e.g. Taskbar AllApps + handleOpenFloatingViews = true; + } } if (hasAnyFlag(changedFlags, FLAGS_LAUNCHER)) { @@ -303,10 +308,11 @@ import java.util.StringJoiner; } }); - if (goingToLauncher) { - // Handle closing open popups when going home/overview - AbstractFloatingView.closeAllOpenViews(mControllers.taskbarActivityContext); - } + // Handle closing open popups when going home/overview + handleOpenFloatingViews = true; + } + if (handleOpenFloatingViews && goingToLauncher) { + AbstractFloatingView.closeAllOpenViews(mControllers.taskbarActivityContext); } float backgroundAlpha =