Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -885,6 +885,7 @@ public abstract class WMShellModule { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, Optional<DesktopImmersiveController> desktopImmersiveController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, InteractionJankMonitor interactionJankMonitor, AppToWebGenericLinksParser genericLinksParser, Loading @@ -906,6 +907,7 @@ public abstract class WMShellModule { mainChoreographer, bgExecutor, shellInit, shellCommandHandler, windowManager, taskOrganizer, desktopRepository, displayController, shellController, displayInsetsController, syncQueue, transitions, desktopTasksController, desktopImmersiveController.get(), rootTaskDisplayAreaOrganizer, interactionJankMonitor, genericLinksParser, assistContentRequester, multiInstanceHelper, desktopTasksLimiter, appHandleEducationController, appToWebEducationController, Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ class DesktopImmersiveController( /** Starts a transition to enter full immersive state inside the desktop. */ fun moveTaskToImmersive(taskInfo: RunningTaskInfo) { check(taskInfo.isFreeform) { "Task must already be in freeform" } if (inProgress) { logV( "Cannot start entry because transition(s) already in progress: %s", Loading @@ -121,6 +122,7 @@ class DesktopImmersiveController( /** Starts a transition to move an immersive task out of immersive. */ fun moveTaskToNonImmersive(taskInfo: RunningTaskInfo, reason: ExitReason) { check(taskInfo.isFreeform) { "Task must already be in freeform" } if (inProgress) { logV( "Cannot start exit because transition(s) already in progress: %s", Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandler.kt +4 −2 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ class DesktopModeKeyGestureHandler( desktopModeWindowDecorViewModel.get().onSnapResize( it.taskId, true, DesktopModeEventLogger.Companion.InputMethod.KEYBOARD DesktopModeEventLogger.Companion.InputMethod.KEYBOARD, /* fromMenu= */ false ) } return true Loading @@ -83,7 +84,8 @@ class DesktopModeKeyGestureHandler( desktopModeWindowDecorViewModel.get().onSnapResize( it.taskId, false, DesktopModeEventLogger.Companion.InputMethod.KEYBOARD DesktopModeEventLogger.Companion.InputMethod.KEYBOARD, /* fromMenu= */ false ) } return true Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt +13 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,19 @@ class DesktopModeUiEventLogger( @UiEvent(doc = "Drag the window header to an edge to tile it to the left side") DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_LEFT(2006), @UiEvent(doc = "Drag the window header to an edge to tile it to the right side") DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_RIGHT(2007); DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_RIGHT(2007), @UiEvent(doc = "Hover or long press the maximize button to reveal the menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_REVEAL_MENU(2015), @UiEvent(doc = "Tap on the maximize option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_MAXIMIZE(2009), @UiEvent(doc = "Tap on the immersive option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_IMMERSIVE(2010), @UiEvent(doc = "Tap on the restore option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_RESTORE(2011), @UiEvent(doc = "Tap on the tile to left option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_TILE_TO_LEFT(2012), @UiEvent(doc = "Tap on the tile to right option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_TILE_TO_RIGHT(2013); override fun getId(): Int = mId } Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +1 −26 Original line number Diff line number Diff line Loading @@ -788,31 +788,6 @@ class DesktopTasksController( transitions.startTransition(TRANSIT_CHANGE, wct, null /* handler */) } /** Moves a task in/out of full immersive state within the desktop. */ fun toggleDesktopTaskFullImmersiveState(taskInfo: RunningTaskInfo) { if (taskRepository.isTaskInFullImmersiveState(taskInfo.taskId)) { exitDesktopTaskFromFullImmersive( taskInfo, DesktopImmersiveController.ExitReason.USER_INTERACTION, ) } else { moveDesktopTaskToFullImmersive(taskInfo) } } private fun moveDesktopTaskToFullImmersive(taskInfo: RunningTaskInfo) { check(taskInfo.isFreeform) { "Task must already be in freeform" } desktopImmersiveController.moveTaskToImmersive(taskInfo) } private fun exitDesktopTaskFromFullImmersive( taskInfo: RunningTaskInfo, reason: DesktopImmersiveController.ExitReason, ) { check(taskInfo.isFreeform) { "Task must already be in freeform" } desktopImmersiveController.moveTaskToNonImmersive(taskInfo, reason) } /** * Quick-resizes a desktop task, toggling between a fullscreen state (represented by the stable * bounds) and a free floating state (either the last saved bounds if available or the default Loading Loading @@ -2375,7 +2350,7 @@ class DesktopTasksController( if (inImmersive && !requestingImmersive && !RecentsTransitionStateListener.isRunning(recentsTransitionState)) { // Exit immersive if the app is no longer requesting it. exitDesktopTaskFromFullImmersive( desktopImmersiveController.moveTaskToNonImmersive( taskInfo, DesktopImmersiveController.ExitReason.APP_NOT_IMMERSIVE ) Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +2 −0 Original line number Diff line number Diff line Loading @@ -885,6 +885,7 @@ public abstract class WMShellModule { SyncTransactionQueue syncQueue, Transitions transitions, Optional<DesktopTasksController> desktopTasksController, Optional<DesktopImmersiveController> desktopImmersiveController, RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer, InteractionJankMonitor interactionJankMonitor, AppToWebGenericLinksParser genericLinksParser, Loading @@ -906,6 +907,7 @@ public abstract class WMShellModule { mainChoreographer, bgExecutor, shellInit, shellCommandHandler, windowManager, taskOrganizer, desktopRepository, displayController, shellController, displayInsetsController, syncQueue, transitions, desktopTasksController, desktopImmersiveController.get(), rootTaskDisplayAreaOrganizer, interactionJankMonitor, genericLinksParser, assistContentRequester, multiInstanceHelper, desktopTasksLimiter, appHandleEducationController, appToWebEducationController, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopImmersiveController.kt +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ class DesktopImmersiveController( /** Starts a transition to enter full immersive state inside the desktop. */ fun moveTaskToImmersive(taskInfo: RunningTaskInfo) { check(taskInfo.isFreeform) { "Task must already be in freeform" } if (inProgress) { logV( "Cannot start entry because transition(s) already in progress: %s", Loading @@ -121,6 +122,7 @@ class DesktopImmersiveController( /** Starts a transition to move an immersive task out of immersive. */ fun moveTaskToNonImmersive(taskInfo: RunningTaskInfo, reason: ExitReason) { check(taskInfo.isFreeform) { "Task must already be in freeform" } if (inProgress) { logV( "Cannot start exit because transition(s) already in progress: %s", Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeKeyGestureHandler.kt +4 −2 Original line number Diff line number Diff line Loading @@ -72,7 +72,8 @@ class DesktopModeKeyGestureHandler( desktopModeWindowDecorViewModel.get().onSnapResize( it.taskId, true, DesktopModeEventLogger.Companion.InputMethod.KEYBOARD DesktopModeEventLogger.Companion.InputMethod.KEYBOARD, /* fromMenu= */ false ) } return true Loading @@ -83,7 +84,8 @@ class DesktopModeKeyGestureHandler( desktopModeWindowDecorViewModel.get().onSnapResize( it.taskId, false, DesktopModeEventLogger.Companion.InputMethod.KEYBOARD DesktopModeEventLogger.Companion.InputMethod.KEYBOARD, /* fromMenu= */ false ) } return true Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt +13 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,19 @@ class DesktopModeUiEventLogger( @UiEvent(doc = "Drag the window header to an edge to tile it to the left side") DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_LEFT(2006), @UiEvent(doc = "Drag the window header to an edge to tile it to the right side") DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_RIGHT(2007); DESKTOP_WINDOW_APP_HEADER_DRAG_TO_TILE_TO_RIGHT(2007), @UiEvent(doc = "Hover or long press the maximize button to reveal the menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_REVEAL_MENU(2015), @UiEvent(doc = "Tap on the maximize option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_MAXIMIZE(2009), @UiEvent(doc = "Tap on the immersive option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_IMMERSIVE(2010), @UiEvent(doc = "Tap on the restore option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_RESTORE(2011), @UiEvent(doc = "Tap on the tile to left option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_TILE_TO_LEFT(2012), @UiEvent(doc = "Tap on the tile to right option in the maximize button menu") DESKTOP_WINDOW_MAXIMIZE_BUTTON_MENU_TAP_TO_TILE_TO_RIGHT(2013); override fun getId(): Int = mId } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +1 −26 Original line number Diff line number Diff line Loading @@ -788,31 +788,6 @@ class DesktopTasksController( transitions.startTransition(TRANSIT_CHANGE, wct, null /* handler */) } /** Moves a task in/out of full immersive state within the desktop. */ fun toggleDesktopTaskFullImmersiveState(taskInfo: RunningTaskInfo) { if (taskRepository.isTaskInFullImmersiveState(taskInfo.taskId)) { exitDesktopTaskFromFullImmersive( taskInfo, DesktopImmersiveController.ExitReason.USER_INTERACTION, ) } else { moveDesktopTaskToFullImmersive(taskInfo) } } private fun moveDesktopTaskToFullImmersive(taskInfo: RunningTaskInfo) { check(taskInfo.isFreeform) { "Task must already be in freeform" } desktopImmersiveController.moveTaskToImmersive(taskInfo) } private fun exitDesktopTaskFromFullImmersive( taskInfo: RunningTaskInfo, reason: DesktopImmersiveController.ExitReason, ) { check(taskInfo.isFreeform) { "Task must already be in freeform" } desktopImmersiveController.moveTaskToNonImmersive(taskInfo, reason) } /** * Quick-resizes a desktop task, toggling between a fullscreen state (represented by the stable * bounds) and a free floating state (either the last saved bounds if available or the default Loading Loading @@ -2375,7 +2350,7 @@ class DesktopTasksController( if (inImmersive && !requestingImmersive && !RecentsTransitionStateListener.isRunning(recentsTransitionState)) { // Exit immersive if the app is no longer requesting it. exitDesktopTaskFromFullImmersive( desktopImmersiveController.moveTaskToNonImmersive( taskInfo, DesktopImmersiveController.ExitReason.APP_NOT_IMMERSIVE ) Loading