Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 922531c1 authored by Thales Lima's avatar Thales Lima Committed by Android (Google) Code Review
Browse files

Merge "Don't close Multi Desktop when navigating back" into main

parents 68a2606d 500e4e6f
Loading
Loading
Loading
Loading
+16 −9
Original line number Diff line number Diff line
@@ -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,
@@ -3243,6 +3249,7 @@ class DesktopTasksController(
                    forceToFullscreen = false,
                )
            deactivationRunnable?.invoke(transition)
        }

        if (!DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue()) {
            taskRepository.addClosingTask(
+269 −0
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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)
@@ -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() {
@@ -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)
@@ -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() {
@@ -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()

@@ -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() {
@@ -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)
@@ -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)
@@ -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() {
@@ -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)
@@ -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,
@@ -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)
@@ -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() {
@@ -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()

@@ -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()

@@ -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()
@@ -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() {
@@ -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)
@@ -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)
@@ -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,
@@ -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)
@@ -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)
@@ -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,