Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt +205 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading @@ -62,8 +56,23 @@ class DesktopModeShellCommandHandler(private val controller: DesktopTasksControl pw.println("Error: task id should be an integer") return false } 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 { if (args.size < 2) { Loading @@ -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> ") 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.") } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeShellCommandHandler.kt +205 −22 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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() Loading @@ -62,8 +56,23 @@ class DesktopModeShellCommandHandler(private val controller: DesktopTasksControl pw.println("Error: task id should be an integer") return false } 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 { if (args.size < 2) { Loading @@ -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> ") 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.") } }