diff options
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt | 227 |
1 files changed, 205 insertions, 22 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt index cdfa14bbc4e2..9b9988457808 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt @@ -16,6 +16,7 @@ package com.android.wm.shell.desktopmode +import com.android.window.flags.Flags import com.android.wm.shell.shared.desktopmode.DesktopModeTransitionSource.UNKNOWN import com.android.wm.shell.sysui.ShellCommandHandler import java.io.PrintWriter @@ -26,35 +27,28 @@ class DesktopModeShellCommandHandler(private val controller: DesktopTasksControl override fun onShellCommand(args: Array<String>, pw: PrintWriter): Boolean = when (args[0]) { - "moveToDesktop" -> { - if (!runMoveToDesktop(args, pw)) { - pw.println("Task not found. Please enter a valid taskId.") - false - } else { - true - } - } - "moveToNextDisplay" -> { - if (!runMoveToNextDisplay(args, pw)) { - pw.println("Task not found. Please enter a valid taskId.") - false - } else { - true - } - } + "moveTaskToDesk" -> runMoveTaskToDesk(args, pw) + "moveToNextDisplay" -> runMoveToNextDisplay(args, pw) + "createDesk" -> runCreateDesk(args, pw) + "activateDesk" -> runActivateDesk(args, pw) + "removeDesk" -> runRemoveDesk(args, pw) + "removeAllDesks" -> runRemoveAllDesks(args, pw) + "moveTaskToFront" -> runMoveTaskToFront(args, pw) + "moveTaskOutOfDesk" -> runMoveTaskOutOfDesk(args, pw) + "canCreateDesk" -> runCanCreateDesk(args, pw) + "getActiveDeskId" -> runGetActiveDeskId(args, pw) else -> { pw.println("Invalid command: ${args[0]}") false } } - private fun runMoveToDesktop(args: Array<String>, pw: PrintWriter): Boolean { + private fun runMoveTaskToDesk(args: Array<String>, pw: PrintWriter): Boolean { if (args.size < 2) { // First argument is the action name. pw.println("Error: task id should be provided as arguments") return false } - val taskId = try { args[1].toInt() @@ -62,7 +56,22 @@ class DesktopModeShellCommandHandler(private val controller: DesktopTasksControl pw.println("Error: task id should be an integer") return false } - return controller.moveTaskToDesktop(taskId, transitionSource = UNKNOWN) + if (!Flags.enableMultipleDesktopsBackend()) { + return controller.moveTaskToDesktop(taskId, transitionSource = UNKNOWN) + } + if (args.size < 3) { + pw.println("Error: desk id should be provided as arguments") + return false + } + val deskId = + try { + args[2].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: desk id should be an integer") + return false + } + pw.println("Not implemented.") + return false } private fun runMoveToNextDisplay(args: Array<String>, pw: PrintWriter): Boolean { @@ -84,10 +93,184 @@ class DesktopModeShellCommandHandler(private val controller: DesktopTasksControl return true } + private fun runCreateDesk(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: desk id should be provided as arguments") + return false + } + val displayId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: display id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runActivateDesk(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: desk id should be provided as arguments") + return false + } + val deskId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: desk id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runRemoveDesk(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: desk id should be provided as arguments") + return false + } + val deskId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: desk id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runRemoveAllDesks(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runMoveTaskToFront(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: task id should be provided as arguments") + return false + } + val taskId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: task id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runMoveTaskOutOfDesk(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: task id should be provided as arguments") + return false + } + val taskId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: task id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runCanCreateDesk(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + val displayId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: display id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + + private fun runGetActiveDeskId(args: Array<String>, pw: PrintWriter): Boolean { + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("Not supported.") + return false + } + if (args.size < 2) { + // First argument is the action name. + pw.println("Error: task id should be provided as arguments") + return false + } + val displayId = + try { + args[1].toInt() + } catch (e: NumberFormatException) { + pw.println("Error: display id should be an integer") + return false + } + pw.println("Not implemented.") + return false + } + override fun printShellCommandHelp(pw: PrintWriter, prefix: String) { - pw.println("$prefix moveToDesktop <taskId> ") - pw.println("$prefix Move a task with given id to desktop mode.") - pw.println("$prefix moveToNextDisplay <taskId> ") + if (!Flags.enableMultipleDesktopsBackend()) { + pw.println("$prefix moveTaskToDesk <taskId> ") + pw.println("$prefix Move a task with given id to desktop mode.") + pw.println("$prefix moveToNextDisplay <taskId> ") + pw.println("$prefix Move a task with given id to next display.") + return + } + pw.println("$prefix moveTaskToDesk <taskId> <deskId>") + pw.println("$prefix Move a task with given id to the given desk and activate it.") + pw.println("$prefix moveToNextDisplay <taskId>") pw.println("$prefix Move a task with given id to next display.") + pw.println("$prefix createDesk <displayId>") + pw.println("$prefix Creates a desk on the given display.") + pw.println("$prefix activateDesk <deskId>") + pw.println("$prefix Activates the given desk.") + pw.println("$prefix removeDesk <deskId> ") + pw.println("$prefix Removes the given desk and all of its windows.") + pw.println("$prefix removeAllDesks") + pw.println("$prefix Removes all the desks and their windows across all displays") + pw.println("$prefix moveTaskToFront <taskId>") + pw.println("$prefix Moves a task in front of its siblings.") + pw.println("$prefix moveTaskOutOfDesk <taskId>") + pw.println("$prefix Moves the given desktop task out of the desk into fullscreen mode.") + pw.println("$prefix canCreateDesk <displayId>") + pw.println("$prefix Whether creating a new desk in the given display is allowed.") + pw.println("$prefix getActivateDeskId <displayId>") + pw.println("$prefix Print the id of the active desk in the given display.") } } |