Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +16 −9 Original line number Diff line number Diff line Loading @@ -3234,6 +3234,12 @@ class DesktopTasksController( task = task, ) } // TODO(b/416014060): Check if task is really receiving a back gesture if ( !(DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue && DesktopExperienceFlags.ENABLE_EMPTY_DESK_ON_MINIMIZE.isTrue) ) { val deactivationRunnable = performDesktopExitCleanupIfNeeded( taskId = task.taskId, Loading @@ -3243,6 +3249,7 @@ class DesktopTasksController( forceToFullscreen = false, ) deactivationRunnable?.invoke(transition) } if (!DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue()) { taskRepository.addClosingTask( Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +269 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ import junit.framework.Assert.assertTrue import kotlin.test.assertIs import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.cancel import kotlinx.coroutines.runBlocking Loading Loading @@ -203,6 +204,7 @@ import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.atLeastOnce import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.verifyNoInteractions import org.mockito.kotlin.whenever import org.mockito.quality.Strictness import platform.test.runner.parameterized.ParameterizedAndroidJunit4 Loading Loading @@ -5757,6 +5759,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5770,6 +5773,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_notInDesktop_doesNotHandle() { Loading @@ -5787,6 +5806,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5800,6 +5820,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskNoToken_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_singleTaskWithToken_noWallpaper_doesNotHandle() { Loading @@ -5816,6 +5852,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskWithToken_removesWallpaper() { val task = setUpFreeformTask() Loading @@ -5827,6 +5864,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskWithToken_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_multipleTasks_noWallpaper_doesNotHandle() { Loading Loading @@ -5857,6 +5910,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_multipleTasksSingleNonClosing_removesWallpaperAndTask() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -5874,11 +5928,35 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_multipleTasksSingleNonClosing_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.addClosingTask( displayId = DEFAULT_DISPLAY, deskId = 0, taskId = task2.taskId, ) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_multipleTasksSingleNonMinimized_removesWallpaperAndTask() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -5892,6 +5970,24 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_multipleTasksSingleNonMinimized_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.minimizeTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_nonMinimizadTask_withWallpaper_removesWallpaper() { Loading Loading @@ -5923,6 +6019,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5936,6 +6033,23 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskNoToken_noChanges() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading @@ -5944,6 +6058,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskNoToken_secondaryDisplay_launchesHome() { taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) Loading @@ -5960,6 +6075,29 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, SECOND_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, ) fun handleRequest_closeTransition_singleTaskNoToken_secondaryDisplay_noChanges() { taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) taskRepository.setActiveDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) val task = setUpFreeformTask(displayId = SECOND_DISPLAY) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_closeTransition_singleTaskWithToken_noWallpaper_doesNotHandle() { Loading @@ -5976,6 +6114,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_singleTaskWithToken_withWallpaper_removesWallpaper() { val task = setUpFreeformTask() Loading @@ -5987,12 +6126,29 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskWithToken_withWallpaper_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_onlyDesktopTask_deactivatesDesk() { val task = setUpFreeformTask() Loading @@ -6001,12 +6157,28 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0), skipReorder = eq(false)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_onlyDesktopTask_dontDeactivateDesk() { val task = setUpFreeformTask() controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) verifyNoInteractions(desksOrganizer) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_onlyDesktopTask_addsDeactivatesDeskTransition() { val transition = Binder() val task = setUpFreeformTask() Loading @@ -6017,6 +6189,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .addPendingTransition(DeskTransition.DeactivateDesk(token = transition, deskId = 0)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_onlyDesktopTask_dontAddDeactivatesDeskTransition() { val transition = Binder() val task = setUpFreeformTask() controller.handleRequest(transition, createTransition(task, type = TRANSIT_CLOSE)) verifyNoInteractions(desksTransitionsObserver) } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_closeTransition_multipleTasks_noWallpaper_doesNotHandle() { Loading Loading @@ -6046,6 +6234,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_multipleTasksSingleNonClosing_removesWallpaper() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -6067,7 +6256,30 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_multipleTasksSingleNonClosing_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.addClosingTask( displayId = DEFAULT_DISPLAY, deskId = 0, taskId = task2.taskId, ) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_multipleTasksSingleNonMinimized_removesWallpaper() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -6081,6 +6293,24 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_multipleTasksSingleNonMinimized_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.minimizeTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading @@ -6103,6 +6333,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_toBackTransition_minimizesTask() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) Loading @@ -6119,7 +6350,26 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_toBackTransition_minimizesTask_noChanges() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_toBackTransition_lastTask_deactivatesDesk() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) Loading @@ -6134,6 +6384,25 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .addPendingTransition(DeskTransition.DeactivateDesk(token = transition, deskId = 0)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_toBackTransition_lastTask_noChanges() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) val transition = Binder() val result = controller.handleRequest(transition, createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +16 −9 Original line number Diff line number Diff line Loading @@ -3234,6 +3234,12 @@ class DesktopTasksController( task = task, ) } // TODO(b/416014060): Check if task is really receiving a back gesture if ( !(DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue && DesktopExperienceFlags.ENABLE_EMPTY_DESK_ON_MINIMIZE.isTrue) ) { val deactivationRunnable = performDesktopExitCleanupIfNeeded( taskId = task.taskId, Loading @@ -3243,6 +3249,7 @@ class DesktopTasksController( forceToFullscreen = false, ) deactivationRunnable?.invoke(transition) } if (!DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue()) { taskRepository.addClosingTask( Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +269 −0 Original line number Diff line number Diff line Loading @@ -174,6 +174,7 @@ import junit.framework.Assert.assertTrue import kotlin.test.assertIs import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.cancel import kotlinx.coroutines.runBlocking Loading Loading @@ -203,6 +204,7 @@ import org.mockito.kotlin.argumentCaptor import org.mockito.kotlin.atLeastOnce import org.mockito.kotlin.eq import org.mockito.kotlin.mock import org.mockito.kotlin.verifyNoInteractions import org.mockito.kotlin.whenever import org.mockito.quality.Strictness import platform.test.runner.parameterized.ParameterizedAndroidJunit4 Loading Loading @@ -5757,6 +5759,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_launchesHome() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5770,6 +5773,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_singleTaskNoToken_withWallpaper_notInDesktop_doesNotHandle() { Loading @@ -5787,6 +5806,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskNoToken_launchesHomes() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5800,6 +5820,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskNoToken_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_singleTaskWithToken_noWallpaper_doesNotHandle() { Loading @@ -5816,6 +5852,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_singleTaskWithToken_removesWallpaper() { val task = setUpFreeformTask() Loading @@ -5827,6 +5864,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_singleTaskWithToken_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_multipleTasks_noWallpaper_doesNotHandle() { Loading Loading @@ -5857,6 +5910,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_multipleTasksSingleNonClosing_removesWallpaperAndTask() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -5874,11 +5928,35 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_multipleTasksSingleNonClosing_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.addClosingTask( displayId = DEFAULT_DISPLAY, deskId = 0, taskId = task2.taskId, ) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_backTransition_multipleTasksSingleNonMinimized_removesWallpaperAndTask() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -5892,6 +5970,24 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_backTransition_multipleTasksSingleNonMinimized_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.minimizeTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_backTransition_nonMinimizadTask_withWallpaper_removesWallpaper() { Loading Loading @@ -5923,6 +6019,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_singleTaskNoToken_launchesHome() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) Loading @@ -5936,6 +6033,23 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, DEFAULT_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskNoToken_noChanges() { val task = setUpFreeformTask() whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading @@ -5944,6 +6058,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskNoToken_secondaryDisplay_launchesHome() { taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) Loading @@ -5960,6 +6075,29 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() result!!.assertPendingIntentActivityOptionsLaunchDisplayIdAt(0, SECOND_DISPLAY) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) @DisableFlags( Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PERMISSION, Flags.FLAG_ENABLE_MODALS_FULLSCREEN_WITH_PLATFORM_SIGNATURE, ) fun handleRequest_closeTransition_singleTaskNoToken_secondaryDisplay_noChanges() { taskRepository.addDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) taskRepository.setActiveDesk(displayId = SECOND_DISPLAY, deskId = SECOND_DISPLAY) val task = setUpFreeformTask(displayId = SECOND_DISPLAY) whenever(desktopWallpaperActivityTokenProvider.getToken()).thenReturn(null) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_closeTransition_singleTaskWithToken_noWallpaper_doesNotHandle() { Loading @@ -5976,6 +6114,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_singleTaskWithToken_withWallpaper_removesWallpaper() { val task = setUpFreeformTask() Loading @@ -5987,12 +6126,29 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_singleTaskWithToken_withWallpaper_noChanges() { val task = setUpFreeformTask() val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_onlyDesktopTask_deactivatesDesk() { val task = setUpFreeformTask() Loading @@ -6001,12 +6157,28 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0), skipReorder = eq(false)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_onlyDesktopTask_dontDeactivateDesk() { val task = setUpFreeformTask() controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) verifyNoInteractions(desksOrganizer) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_onlyDesktopTask_addsDeactivatesDeskTransition() { val transition = Binder() val task = setUpFreeformTask() Loading @@ -6017,6 +6189,22 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .addPendingTransition(DeskTransition.DeactivateDesk(token = transition, deskId = 0)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_onlyDesktopTask_dontAddDeactivatesDeskTransition() { val transition = Binder() val task = setUpFreeformTask() controller.handleRequest(transition, createTransition(task, type = TRANSIT_CLOSE)) verifyNoInteractions(desksTransitionsObserver) } @Test @DisableFlags(Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY) fun handleRequest_closeTransition_multipleTasks_noWallpaper_doesNotHandle() { Loading Loading @@ -6046,6 +6234,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_multipleTasksSingleNonClosing_removesWallpaper() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -6067,7 +6256,30 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_multipleTasksSingleNonClosing_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.addClosingTask( displayId = DEFAULT_DISPLAY, deskId = 0, taskId = task2.taskId, ) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_closeTransition_multipleTasksSingleNonMinimized_removesWallpaper() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) Loading @@ -6081,6 +6293,24 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .assertReorderAt(index = 0, wallpaperToken, toTop = false) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_closeTransition_multipleTasksSingleNonMinimized_noChanges() { val task1 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) val task2 = setUpFreeformTask(displayId = DEFAULT_DISPLAY) taskRepository.minimizeTask(displayId = DEFAULT_DISPLAY, taskId = task2.taskId) val result = controller.handleRequest(Binder(), createTransition(task1, type = TRANSIT_CLOSE)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading @@ -6103,6 +6333,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_toBackTransition_minimizesTask() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) Loading @@ -6119,7 +6350,26 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_toBackTransition_minimizesTask_noChanges() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) val result = controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, ) @DisableFlags(Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE) fun handleRequest_toBackTransition_lastTask_deactivatesDesk() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) Loading @@ -6134,6 +6384,25 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() .addPendingTransition(DeskTransition.DeactivateDesk(token = transition, deskId = 0)) } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, Flags.FLAG_ENABLE_PER_DISPLAY_DESKTOP_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_EMPTY_DESK_ON_MINIMIZE, ) fun handleRequest_toBackTransition_lastTask_noChanges() { taskRepository.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 0) val task = setUpFreeformTask(displayId = DEFAULT_DISPLAY, deskId = 0) val transition = Binder() val result = controller.handleRequest(transition, createTransition(task, type = TRANSIT_TO_BACK)) // Should not have any change result?.run { assertTrue(changes.isEmpty(), "Should not have changes") } } @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Loading