diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index e8852e20bd..b5e271d07f 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -196,13 +196,12 @@ public class TaskbarManager { private class RecreationListener implements DisplayController.DisplayInfoChangeListener { @Override public void onDisplayInfoChanged(Context context, DisplayController.Info info, int flags) { + int displayId = context.getDisplayId(); if ((flags & CHANGE_DENSITY) != 0) { - debugTaskbarManager("onDisplayInfoChanged: Display density changed", - context.getDisplayId()); + debugTaskbarManager("onDisplayInfoChanged: Display density changed", displayId); } if ((flags & CHANGE_NAVIGATION_MODE) != 0) { - debugTaskbarManager("onDisplayInfoChanged: Navigation mode changed", - context.getDisplayId()); + debugTaskbarManager("onDisplayInfoChanged: Navigation mode changed", displayId); } if ((flags & CHANGE_DESKTOP_MODE) != 0) { debugTaskbarManager("onDisplayInfoChanged: Desktop mode changed", @@ -210,16 +209,16 @@ public class TaskbarManager { handleDisplayUpdatesForPerceptibleTasks(); } if ((flags & CHANGE_TASKBAR_PINNING) != 0) { - debugTaskbarManager("onDisplayInfoChanged: Taskbar pinning changed", - context.getDisplayId()); + debugTaskbarManager("onDisplayInfoChanged: Taskbar pinning changed", displayId); } if ((flags & (CHANGE_DENSITY | CHANGE_NAVIGATION_MODE | CHANGE_DESKTOP_MODE | CHANGE_TASKBAR_PINNING | CHANGE_SHOW_LOCKED_TASKBAR)) != 0) { - debugTaskbarManager("onDisplayInfoChanged: Recreating Taskbar!", - context.getDisplayId()); + TaskbarActivityContext taskbarActivityContext = getCurrentActivityContext(); if ((flags & CHANGE_SHOW_LOCKED_TASKBAR) != 0) { + debugTaskbarManager("onDisplayInfoChanged: show locked taskbar changed!", + displayId); recreateTaskbars(); } else if ((flags & CHANGE_DESKTOP_MODE) != 0) { if (mShouldIgnoreNextDesktopModeChangeFromDisplayController) { @@ -314,6 +313,11 @@ public class TaskbarManager { public void onExitDesktopMode(int duration) { for (int taskbarIndex = 0; taskbarIndex < mTaskbars.size(); taskbarIndex++) { int displayId = mTaskbars.keyAt(taskbarIndex); + if (DesktopExperienceFlags.ENABLE_TASKBAR_CONNECTED_DISPLAYS.isTrue() + && !isDefaultDisplay(displayId)) { + continue; + } + TaskbarActivityContext taskbarActivityContext = getTaskbarForDisplay( displayId); if (taskbarActivityContext != null @@ -333,6 +337,11 @@ public class TaskbarManager { public void onEnterDesktopMode(int duration) { for (int taskbarIndex = 0; taskbarIndex < mTaskbars.size(); taskbarIndex++) { int displayId = mTaskbars.keyAt(taskbarIndex); + if (DesktopExperienceFlags.ENABLE_TASKBAR_CONNECTED_DISPLAYS.isTrue() + && !isDefaultDisplay(displayId)) { + continue; + } + TaskbarActivityContext taskbarActivityContext = getTaskbarForDisplay( displayId); if (taskbarActivityContext != null) {