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

Commit d095be44 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Desks: Unset desk as active in display when removed" into main

parents e5efc84a 11dd0a54
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1299,6 +1299,7 @@ class DesktopRepository(
            deskByDisplayId[displayId]?.let { sequenceOf(it) } ?: emptySequence()

        override fun remove(deskId: Int) {
            setDeskInactive(deskId)
            deskByDisplayId[deskId]?.clear()
        }

@@ -1398,6 +1399,7 @@ class DesktopRepository(
            desktopDisplays[displayId]?.orderedDesks?.asSequence() ?: emptySequence()

        override fun remove(deskId: Int) {
            setDeskInactive(deskId)
            desktopDisplays.forEach { _, display ->
                display.orderedDesks.removeIf { it.deskId == deskId }
            }
+24 −0
Original line number Diff line number Diff line
@@ -1278,6 +1278,18 @@ class DesktopRepositoryTest(flags: FlagsParameterization) : ShellTestCase() {
        assertThat(repo.getDeskIds(displayId = DEFAULT_DISPLAY)).doesNotContain(3)
    }

    @Test
    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
    fun removeDesk_multipleDesks_active_marksInactiveInDisplay() {
        repo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 2)
        repo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 3)
        repo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 3)

        repo.removeDesk(deskId = 3)

        assertThat(repo.getActiveDeskId(displayId = DEFAULT_DISPLAY)).isNull()
    }

    @Test
    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
    fun removeDesk_multipleDesks_inactive_removes() {
@@ -1291,6 +1303,18 @@ class DesktopRepositoryTest(flags: FlagsParameterization) : ShellTestCase() {
        assertThat(repo.getDeskIds(displayId = DEFAULT_DISPLAY)).doesNotContain(2)
    }

    @Test
    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND)
    fun removeDesk_multipleDesks_inactive_keepsOtherDeskActiveInDisplay() {
        repo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 2)
        repo.addDesk(displayId = DEFAULT_DISPLAY, deskId = 3)
        repo.setActiveDesk(displayId = DEFAULT_DISPLAY, deskId = 3)

        repo.removeDesk(deskId = 2)

        assertThat(repo.getActiveDeskId(displayId = DEFAULT_DISPLAY)).isEqualTo(3)
    }

    @Test
    @EnableFlags(FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND, FLAG_ENABLE_DESKTOP_WINDOWING_PERSISTENCE)
    fun removeDesk_removesFromPersistence() =