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

Commit dcb5ee59 authored by Orhan Uysal's avatar Orhan Uysal
Browse files

Launch freeform activities in desktop mode

Freeform activities used to be launched in fullscreen if launched
outside of desktop. This change makes it so that when a freeform
activity is launched it will move it to desktop.

Bug: 340432515
Test: atest DesktopTasksControllerTest
Change-Id: Ibc697a4b0dff6a0b1583018d802b5caa66814220
parent c913a319
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -929,7 +929,8 @@ class DesktopTasksController(
                    task.taskId
                    task.taskId
            )
            )
            return WindowContainerTransaction().also { wct ->
            return WindowContainerTransaction().also { wct ->
                addMoveToFullscreenChanges(wct, task)
                bringDesktopAppsToFrontBeforeShowingNewTask(task.displayId, wct, task.taskId)
                wct.reorder(task.token, true)
            }
            }
        }
        }
        // Desktop Mode is showing and we're launching a new Task - we might need to minimize
        // Desktop Mode is showing and we're launching a new Task - we might need to minimize
+12 −10
Original line number Original line Diff line number Diff line
@@ -946,7 +946,7 @@ class DesktopTasksControllerTest : ShellTestCase() {
    }
    }


    @Test
    @Test
    fun handleRequest_freeformTask_freeformNotVisible_returnSwitchToFullscreenWCT() {
    fun handleRequest_freeformTask_freeformNotVisible_reorderedToTop() {
        assumeTrue(ENABLE_SHELL_TRANSITIONS)
        assumeTrue(ENABLE_SHELL_TRANSITIONS)


        val freeformTask1 = setUpFreeformTask()
        val freeformTask1 = setUpFreeformTask()
@@ -958,30 +958,32 @@ class DesktopTasksControllerTest : ShellTestCase() {
                Binder(),
                Binder(),
                createTransition(freeformTask2, type = TRANSIT_TO_FRONT)
                createTransition(freeformTask2, type = TRANSIT_TO_FRONT)
            )
            )
        assertThat(result?.changes?.get(freeformTask2.token.asBinder())?.windowingMode)

            .isEqualTo(WINDOWING_MODE_UNDEFINED) // inherited FULLSCREEN
        assertThat(result?.hierarchyOps?.size).isEqualTo(2)
        result!!.assertReorderAt(1, freeformTask2, toTop = true)
    }
    }


    @Test
    @Test
    fun handleRequest_freeformTask_noOtherTasks_returnSwitchToFullscreenWCT() {
    fun handleRequest_freeformTask_noOtherTasks_reorderedToTop() {
        assumeTrue(ENABLE_SHELL_TRANSITIONS)
        assumeTrue(ENABLE_SHELL_TRANSITIONS)


        val task = createFreeformTask()
        val task = createFreeformTask()
        val result = controller.handleRequest(Binder(), createTransition(task))
        val result = controller.handleRequest(Binder(), createTransition(task))
        assertThat(result?.changes?.get(task.token.asBinder())?.windowingMode)

            .isEqualTo(WINDOWING_MODE_UNDEFINED) // inherited FULLSCREEN
        assertThat(result?.hierarchyOps?.size).isEqualTo(1)
        result!!.assertReorderAt(0, task, toTop = true)
    }
    }


    @Test
    @Test
    fun handleRequest_freeformTask_freeformOnOtherDisplayOnly_returnSwitchToFullscreenWCT() {
    fun handleRequest_freeformTask_freeformOnOtherDisplayOnly_reorderedToTop() {
        assumeTrue(ENABLE_SHELL_TRANSITIONS)
        assumeTrue(ENABLE_SHELL_TRANSITIONS)


        val taskDefaultDisplay = createFreeformTask(displayId = DEFAULT_DISPLAY)
        val taskDefaultDisplay = createFreeformTask(displayId = DEFAULT_DISPLAY)
        createFreeformTask(displayId = SECOND_DISPLAY)
        val taskSecondDisplay = createFreeformTask(displayId = SECOND_DISPLAY)


        val result = controller.handleRequest(Binder(), createTransition(taskDefaultDisplay))
        val result = controller.handleRequest(Binder(), createTransition(taskDefaultDisplay))
        assertThat(result?.changes?.get(taskDefaultDisplay.token.asBinder())?.windowingMode)
        assertThat(result?.hierarchyOps?.size).isEqualTo(1)
            .isEqualTo(WINDOWING_MODE_UNDEFINED) // inherited FULLSCREEN
        result!!.assertReorderAt(0, taskDefaultDisplay, toTop = true)
    }
    }


    @Test
    @Test