diff options
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt | 21 | ||||
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl | 13 |
2 files changed, 30 insertions, 4 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..ba459b19e8b1 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 @@ -2943,6 +2943,11 @@ class DesktopTasksController( removeDesk(displayId = displayId, deskId = deskId) } + /** Removes all the available desks on all displays. */ + fun removeAllDesks() { + taskRepository.getAllDeskIds().forEach { deskId -> removeDesk(deskId) } + } + private fun removeDesk(displayId: Int, deskId: Int) { if (!DesktopModeFlags.ENABLE_DESKTOP_WINDOWING_BACK_NAVIGATION.isTrue()) return logV("removeDesk deskId=%d from displayId=%d", deskId, displayId) @@ -3709,6 +3714,18 @@ class DesktopTasksController( } } + override fun removeDesk(deskId: Int) { + executeRemoteCallWithTaskPermission(controller, "removeDesk") { c -> + c.removeDesk(deskId) + } + } + + override fun removeAllDesks() { + executeRemoteCallWithTaskPermission(controller, "removeAllDesks") { c -> + c.removeAllDesks() + } + } + override fun activateDesk(deskId: Int, remoteTransition: RemoteTransition?) { executeRemoteCallWithTaskPermission(controller, "activateDesk") { c -> c.activateDesk(deskId, remoteTransition) @@ -3772,8 +3789,8 @@ class DesktopTasksController( } } - override fun removeDesktop(displayId: Int) { - executeRemoteCallWithTaskPermission(controller, "removeDesktop") { c -> + override fun removeDefaultDeskInDisplay(displayId: Int) { + executeRemoteCallWithTaskPermission(controller, "removeDefaultDeskInDisplay") { c -> c.removeDefaultDeskInDisplay(displayId) } } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl index 44f7e16e98c3..5f7fbd9843d4 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/IDesktopMode.aidl @@ -35,6 +35,12 @@ interface IDesktopMode { /** Activates the desk whose ID is `deskId` on whatever display it currently exists on. */ oneway void activateDesk(int deskId, in RemoteTransition remoteTransition); + /** Removes the desk with the given `deskId`. */ + oneway void removeDesk(int deskId); + + /** Removes all the available desks on all displays. */ + oneway void removeAllDesks(); + /** Show apps on the desktop on the given display */ void showDesktopApps(int displayId, in RemoteTransition remoteTransition); @@ -64,8 +70,11 @@ interface IDesktopMode { in @nullable RemoteTransition remoteTransition, in @nullable IMoveToDesktopCallback callback); - /** Remove desktop on the given display */ - oneway void removeDesktop(int displayId); + /** + * Removes the default desktop on the given display. + * @deprecated with multi-desks, we should use `removeDesk()`. + */ + oneway void removeDefaultDeskInDisplay(int displayId); /** Move a task with given `taskId` to external display */ void moveToExternalDisplay(int taskId); |