diff options
| author | 2025-03-08 09:29:49 +0000 | |
|---|---|---|
| committer | 2025-03-08 09:29:49 +0000 | |
| commit | df6b13386cf2101c40570fac7bcb2d07174b7fe5 (patch) | |
| tree | d12a81f15f3cef1edffb1e445adf424d68b9adcf | |
| parent | 7d9d76cf4d6a455bf8b7b41809db99d2de7e7433 (diff) | |
Do not create desks in invalid displays
Prevents creation of desks when the request is for an INVALID_DISPLAY.
Flag: com.android.window.flags.enable_multiple_desktops_backend
Bug: 362720497
Test: atest WMShellUnitTests
Change-Id: Id5cda975a5f4d1ca9a20c57e2dd5f26fdbc3b029
2 files changed, 14 insertions, 0 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index d0356d55035d..8d6f4312b4c4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -45,6 +45,7 @@ import android.os.IBinder import android.os.SystemProperties import android.os.UserHandle import android.util.Slog +import android.view.Display import android.view.Display.DEFAULT_DISPLAY import android.view.DragEvent import android.view.MotionEvent @@ -464,6 +465,10 @@ class DesktopTasksController( /** Creates a new desk in the given display. */ fun createDesk(displayId: Int) { + if (displayId == Display.INVALID_DISPLAY) { + logW("createDesk attempt with invalid displayId", displayId) + return + } if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) { desksOrganizer.createDesk(displayId) { deskId -> taskRepository.addDesk(displayId = displayId, deskId = deskId) diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index 34c5ebd6d94d..8854f9acb141 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -57,6 +57,7 @@ import android.platform.test.flag.junit.FlagsParameterization import android.testing.TestableContext import android.view.Display import android.view.Display.DEFAULT_DISPLAY +import android.view.Display.INVALID_DISPLAY import android.view.DragEvent import android.view.Gravity import android.view.MotionEvent @@ -7319,6 +7320,14 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() } @Test + @EnableFlags(Flags.FLAG_ENABLE_MULTIPLE_DESKTOPS_BACKEND) + fun testCreateDesk_invalidDisplay_dropsRequest() { + controller.createDesk(INVALID_DISPLAY) + + verify(desksOrganizer, never()).createDesk(any(), any()) + } + + @Test @EnableFlags( Flags.FLAG_ENABLE_DESKTOP_WINDOWING_WALLPAPER_ACTIVITY, Flags.FLAG_ENABLE_DESKTOP_WALLPAPER_ACTIVITY_FOR_SYSTEM_USER, |