Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,10 @@ class DesktopTasksController( ) return@moveToNextDisplay false } val focusedNonDesktopTasks = getFocusedNonDesktopTasks(displayId, userId) val focusedNonDesktopTasks = getFocusedNonDesktopTasks(displayId, userId).filter { !DesktopWallpaperActivity.isWallpaperTask(it) } if (!focusedNonDesktopTasks.isEmpty()) { logD( "moveToNextDesktopDisplay: Skip displayId=$displayId as it has focused " + Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +31 −0 Original line number Diff line number Diff line Loading @@ -4554,6 +4554,37 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() ) } @Test fun moveToNextDesktopDisplay_moveIfDestinationFocusesDesktopWallpaper() { // Set up displays whenever(rootTaskDisplayAreaOrganizer.displayIds) .thenReturn(intArrayOf(DEFAULT_DISPLAY, SECOND_DISPLAY)) taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = 2) desktopState.overrideDesktopModeSupportPerDisplay[SECOND_DISPLAY] = true // Set up a focused fullscreen task on the secondary display val fullscreenTask = setUpFullscreenTask(displayId = SECOND_DISPLAY) fullscreenTask.isFocused = true fullscreenTask.baseIntent = Intent().apply { component = DesktopWallpaperActivity.wallpaperActivityComponent } // Set up a task on the default display val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY) controller.moveToNextDesktopDisplay( taskId = task.taskId, userId = taskRepository.userId, enterReason = EnterReason.UNKNOWN_ENTER, ) verify(transitions) .startTransition( eq(TRANSIT_CHANGE), any<WindowContainerTransaction>(), isA(DesktopModeMoveToDisplayTransitionHandler::class.java), ) } @Test fun getTaskWindowingMode() { val fullscreenTask = setUpFullscreenTask() Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +4 −1 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,10 @@ class DesktopTasksController( ) return@moveToNextDisplay false } val focusedNonDesktopTasks = getFocusedNonDesktopTasks(displayId, userId) val focusedNonDesktopTasks = getFocusedNonDesktopTasks(displayId, userId).filter { !DesktopWallpaperActivity.isWallpaperTask(it) } if (!focusedNonDesktopTasks.isEmpty()) { logD( "moveToNextDesktopDisplay: Skip displayId=$displayId as it has focused " + Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +31 −0 Original line number Diff line number Diff line Loading @@ -4554,6 +4554,37 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() ) } @Test fun moveToNextDesktopDisplay_moveIfDestinationFocusesDesktopWallpaper() { // Set up displays whenever(rootTaskDisplayAreaOrganizer.displayIds) .thenReturn(intArrayOf(DEFAULT_DISPLAY, SECOND_DISPLAY)) taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = 2) desktopState.overrideDesktopModeSupportPerDisplay[SECOND_DISPLAY] = true // Set up a focused fullscreen task on the secondary display val fullscreenTask = setUpFullscreenTask(displayId = SECOND_DISPLAY) fullscreenTask.isFocused = true fullscreenTask.baseIntent = Intent().apply { component = DesktopWallpaperActivity.wallpaperActivityComponent } // Set up a task on the default display val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY) controller.moveToNextDesktopDisplay( taskId = task.taskId, userId = taskRepository.userId, enterReason = EnterReason.UNKNOWN_ENTER, ) verify(transitions) .startTransition( eq(TRANSIT_CHANGE), any<WindowContainerTransaction>(), isA(DesktopModeMoveToDisplayTransitionHandler::class.java), ) } @Test fun getTaskWindowingMode() { val fullscreenTask = setUpFullscreenTask() Loading