Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt +2 −0 Original line number Diff line number Diff line Loading @@ -1299,6 +1299,7 @@ class DesktopRepository( deskByDisplayId[displayId]?.let { sequenceOf(it) } ?: emptySequence() override fun remove(deskId: Int) { setDeskInactive(deskId) deskByDisplayId[deskId]?.clear() } Loading Loading @@ -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 } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt +24 −0 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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() = Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopRepository.kt +2 −0 Original line number Diff line number Diff line Loading @@ -1299,6 +1299,7 @@ class DesktopRepository( deskByDisplayId[displayId]?.let { sequenceOf(it) } ?: emptySequence() override fun remove(deskId: Int) { setDeskInactive(deskId) deskByDisplayId[deskId]?.clear() } Loading Loading @@ -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 } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopRepositoryTest.kt +24 −0 Original line number Diff line number Diff line Loading @@ -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() { Loading @@ -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() = Loading