diff --git a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java index fdef39f2eb..ba6f1651ed 100644 --- a/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/LauncherTaskbarUIController.java @@ -197,6 +197,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController { return mTaskbarLauncherStateController.applyState(fromInit ? 0 : duration, startAnimation); } + public void refreshResumedState() { + onLauncherResumedOrPaused(mLauncher.hasBeenResumed()); + } + /** * Create Taskbar animation when going from an app to Launcher as part of recents transition. * @param toState If known, the state we will end up in when reaching Launcher. diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java index 84fb077ab1..dfbd5bbfd1 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarLauncherStateController.java @@ -207,10 +207,6 @@ public class TaskbarLauncherStateController { com.android.launcher3.taskbar.Utilities.setOverviewDragState( mControllers, finalState.disallowTaskbarGlobalDrag(), disallowLongClick, finalState.allowTaskbarInitialSplitSelection()); - // LauncherTaskbarUIController depends on the state when checking whether - // to handle resume, so it should also be poked if current state changes - mLauncher.getTaskbarUIController().onLauncherResumedOrPaused( - mLauncher.hasBeenResumed()); } }; diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java index f3e2ee2e9d..f3513fdb97 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarUIController.java @@ -318,4 +318,9 @@ public class TaskbarUIController { } return null; } + + /** + * Refreshes the resumed state of this ui controller. + */ + public void refreshResumedState() {} } diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index 134ef6cce3..d57070847b 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -849,6 +849,13 @@ public class TaskView extends FrameLayout implements Reusable { // QuickstepTransitionManager.createWallpaperOpenAnimations when launcher // shows again getRecentsView().startHome(false /* animated */); + RecentsView rv = getRecentsView(); + if (rv != null && rv.mSizeStrategy.getTaskbarController() != null) { + // LauncherTaskbarUIController depends on the launcher state when checking + // whether to handle resume, but that can come in before startHome() changes + // the state, so force-refresh here to ensure the taskbar is updated + rv.mSizeStrategy.getTaskbarController().refreshResumedState(); + } }); } // Indicate success once the system has indicated that the transition has started