Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -2068,6 +2068,11 @@ class DesktopTasksController( } } private fun prepareForDeskActivation(displayId: Int, wct: WindowContainerTransaction) { private fun prepareForDeskActivation(displayId: Int, wct: WindowContainerTransaction) { logD( "prepareForDeskActivation displayId=%d shouldShowHomeBehindDesktop=%b", displayId, desktopState.shouldShowHomeBehindDesktop, ) // Move home to front, ensures that we go back home when all desktop windows are closed // Move home to front, ensures that we go back home when all desktop windows are closed val useParamDisplayId = val useParamDisplayId = DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue || DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue || Loading Loading @@ -2131,6 +2136,7 @@ class DesktopTasksController( } } private fun moveHomeTask(displayId: Int, wct: WindowContainerTransaction) { private fun moveHomeTask(displayId: Int, wct: WindowContainerTransaction) { logV("moveHomeTask in displayId=%d", displayId) shellTaskOrganizer shellTaskOrganizer .getRunningTasks(displayId) .getRunningTasks(displayId) .firstOrNull { task -> task.activityType == ACTIVITY_TYPE_HOME } .firstOrNull { task -> task.activityType == ACTIVITY_TYPE_HOME } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +25 −8 Original line number Original line Diff line number Diff line Loading @@ -1547,10 +1547,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING) @EnableFlags( fun launchIntent_taskInDesktopMode_onSecondaryDisplay_transitionStarted() { Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun launchIntent_taskInDesktopMode_onSecondaryDisplayNotInDesktopMode_transitionStarted() { setUpLandscapeDisplay() setUpLandscapeDisplay() taskRepository.addDesk(SECOND_DISPLAY, deskId = 2) taskRepository.addDesk(SECOND_DISPLAY, deskId = 2) // Inactive desk. val intent = Intent().setComponent(homeComponentName) val intent = Intent().setComponent(homeComponentName) whenever( whenever( desktopMixedTransitionHandler.startLaunchTransition( desktopMixedTransitionHandler.startLaunchTransition( Loading @@ -1566,7 +1569,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.startLaunchIntentTransition(intent, Bundle.EMPTY, SECOND_DISPLAY) controller.startLaunchIntentTransition(intent, Bundle.EMPTY, SECOND_DISPLAY) val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN) val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN) // We expect two actions: open the app and start the desk // We expect two actions: open the app and open the wallpaper. assertThat(wct.hierarchyOps).hasSize(2) assertThat(wct.hierarchyOps).hasSize(2) val hOps0 = wct.hierarchyOps[0] val hOps0 = wct.hierarchyOps[0] val hOps1 = wct.hierarchyOps[1] val hOps1 = wct.hierarchyOps[1] Loading Loading @@ -1943,6 +1946,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY) fun moveBackgroundTaskToDesktop_invalidDisplay_validFocusedDisplay_reordersHomeAndWallpaperInFocusedDisplay() = fun moveBackgroundTaskToDesktop_invalidDisplay_validFocusedDisplay_reordersHomeAndWallpaperInFocusedDisplay() = testScope.runTest { testScope.runTest { val task = createRecentTaskInfo(1, INVALID_DISPLAY) val task = createRecentTaskInfo(1, INVALID_DISPLAY) Loading Loading @@ -3693,6 +3697,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY) fun onDesktopWindowClose_singleActiveTask_noWallpaperActivityToken_launchesHome() { fun onDesktopWindowClose_singleActiveTask_noWallpaperActivityToken_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() val wct = WindowContainerTransaction() val wct = WindowContainerTransaction() Loading Loading @@ -5460,7 +5465,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5487,7 +5495,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading Loading @@ -5620,7 +5631,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5635,7 +5649,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags( @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -2068,6 +2068,11 @@ class DesktopTasksController( } } private fun prepareForDeskActivation(displayId: Int, wct: WindowContainerTransaction) { private fun prepareForDeskActivation(displayId: Int, wct: WindowContainerTransaction) { logD( "prepareForDeskActivation displayId=%d shouldShowHomeBehindDesktop=%b", displayId, desktopState.shouldShowHomeBehindDesktop, ) // Move home to front, ensures that we go back home when all desktop windows are closed // Move home to front, ensures that we go back home when all desktop windows are closed val useParamDisplayId = val useParamDisplayId = DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue || DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue || Loading Loading @@ -2131,6 +2136,7 @@ class DesktopTasksController( } } private fun moveHomeTask(displayId: Int, wct: WindowContainerTransaction) { private fun moveHomeTask(displayId: Int, wct: WindowContainerTransaction) { logV("moveHomeTask in displayId=%d", displayId) shellTaskOrganizer shellTaskOrganizer .getRunningTasks(displayId) .getRunningTasks(displayId) .firstOrNull { task -> task.activityType == ACTIVITY_TYPE_HOME } .firstOrNull { task -> task.activityType == ACTIVITY_TYPE_HOME } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +25 −8 Original line number Original line Diff line number Diff line Loading @@ -1547,10 +1547,13 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING) @EnableFlags( fun launchIntent_taskInDesktopMode_onSecondaryDisplay_transitionStarted() { Flags.FLAG_ENABLE_DISPLAY_WINDOWING_MODE_SWITCHING, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun launchIntent_taskInDesktopMode_onSecondaryDisplayNotInDesktopMode_transitionStarted() { setUpLandscapeDisplay() setUpLandscapeDisplay() taskRepository.addDesk(SECOND_DISPLAY, deskId = 2) taskRepository.addDesk(SECOND_DISPLAY, deskId = 2) // Inactive desk. val intent = Intent().setComponent(homeComponentName) val intent = Intent().setComponent(homeComponentName) whenever( whenever( desktopMixedTransitionHandler.startLaunchTransition( desktopMixedTransitionHandler.startLaunchTransition( Loading @@ -1566,7 +1569,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.startLaunchIntentTransition(intent, Bundle.EMPTY, SECOND_DISPLAY) controller.startLaunchIntentTransition(intent, Bundle.EMPTY, SECOND_DISPLAY) val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN) val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_OPEN) // We expect two actions: open the app and start the desk // We expect two actions: open the app and open the wallpaper. assertThat(wct.hierarchyOps).hasSize(2) assertThat(wct.hierarchyOps).hasSize(2) val hOps0 = wct.hierarchyOps[0] val hOps0 = wct.hierarchyOps[0] val hOps1 = wct.hierarchyOps[1] val hOps1 = wct.hierarchyOps[1] Loading Loading @@ -1943,6 +1946,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY) fun moveBackgroundTaskToDesktop_invalidDisplay_validFocusedDisplay_reordersHomeAndWallpaperInFocusedDisplay() = fun moveBackgroundTaskToDesktop_invalidDisplay_validFocusedDisplay_reordersHomeAndWallpaperInFocusedDisplay() = testScope.runTest { testScope.runTest { val task = createRecentTaskInfo(1, INVALID_DISPLAY) val task = createRecentTaskInfo(1, INVALID_DISPLAY) Loading Loading @@ -3693,6 +3697,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY) fun onDesktopWindowClose_singleActiveTask_noWallpaperActivityToken_launchesHome() { fun onDesktopWindowClose_singleActiveTask_noWallpaperActivityToken_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() val wct = WindowContainerTransaction() val wct = WindowContainerTransaction() Loading Loading @@ -5460,7 +5465,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5487,7 +5495,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading Loading @@ -5620,7 +5631,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { val task = setUpFreeformTask() val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5635,7 +5649,10 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } } @Test @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags( @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Loading