diff --git a/quickstep/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsController.kt b/quickstep/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsController.kt index 81899135b6..3649c4ebc5 100644 --- a/quickstep/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsController.kt +++ b/quickstep/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsController.kt @@ -40,12 +40,17 @@ import kotlin.collections.filterNotNull */ class DesktopTaskbarRunningAppsController( private val recentsModel: RecentsModel, - private val desktopVisibilityController: DesktopVisibilityController?, + // Pass a provider here instead of the actual DesktopVisibilityController instance since that + // instance might not be available when this constructor is called. + private val desktopVisibilityControllerProvider: () -> DesktopVisibilityController?, ) : TaskbarRecentAppsController() { private var apps: Array? = null private var allRunningDesktopAppInfos: List? = null + private val desktopVisibilityController: DesktopVisibilityController? + get() = desktopVisibilityControllerProvider() + private val isInDesktopMode: Boolean get() = desktopVisibilityController?.areDesktopTasksVisible() ?: false diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index ff76e21faf..1d772b5479 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -312,7 +312,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext { if (enableDesktopWindowingMode() && enableDesktopWindowingTaskbarRunningApps()) { return new DesktopTaskbarRunningAppsController( RecentsModel.INSTANCE.get(this), - LauncherActivityInterface.INSTANCE.getDesktopVisibilityController()); + LauncherActivityInterface.INSTANCE::getDesktopVisibilityController); } return TaskbarRecentAppsController.DEFAULT; } diff --git a/quickstep/tests/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsControllerTest.kt b/quickstep/tests/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsControllerTest.kt index daed861b09..4fafde8e80 100644 --- a/quickstep/tests/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsControllerTest.kt +++ b/quickstep/tests/src/com/android/launcher3/taskbar/DesktopTaskbarRunningAppsControllerTest.kt @@ -54,7 +54,9 @@ class DesktopTaskbarRunningAppsControllerTest : TaskbarBaseTestCase() { super.setup() userHandle = Process.myUserHandle() taskbarRunningAppsController = - DesktopTaskbarRunningAppsController(mockRecentsModel, mockDesktopVisibilityController) + DesktopTaskbarRunningAppsController(mockRecentsModel) { + mockDesktopVisibilityController + } taskbarRunningAppsController.init(taskbarControllers) taskbarRunningAppsController.setApps( ALL_APP_PACKAGES.map { createTestAppInfo(packageName = it) }.toTypedArray()