Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +8 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,9 @@ class DesktopTasksController( ) dragAndDropController.addListener(this) shellController.addKeyguardChangeListener(this) desksOrganizer.addOnDesktopTaskInfoChangedListener { taskInfo -> onTaskInfoChanged(taskInfo) } } @VisibleForTesting Loading Loading @@ -5894,6 +5897,11 @@ class DesktopTasksController( !requestingImmersive && !RecentsTransitionStateListener.isRunning(recentsTransitionState) ) { logV( "onTaskInfoChanged taskId=%d stopped requesting immersive," + " breaking out of desktop-immersive mode", taskInfo.taskId, ) // Exit immersive if the app is no longer requesting it. desktopImmersiveController.moveTaskToNonImmersive( taskInfo, Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ interface DesksOrganizer { fun isDeskActiveAtEnd(change: TransitionInfo.Change, deskId: Int): Boolean /** Allows for other classes to respond to task changes this organizer receives. */ fun setOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit) fun addOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit) /** Move a desk to the given display area. */ fun moveDeskToDisplay( Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt +7 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ class RootTaskDesksOrganizer( val deskMinimizationRootsByDeskId: MutableMap<Int, DeskMinimizationRoot> = mutableMapOf() private val removeDeskRootRequests = mutableSetOf<Int>() @VisibleForTesting val childLeashes = SparseArray<SurfaceControl>() private var onTaskInfoChangedListener: ((RunningTaskInfo) -> Unit)? = null private val onTaskInfoChangedListeners = mutableListOf<(RunningTaskInfo) -> Unit>() init { if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) { Loading Loading @@ -443,8 +443,9 @@ class RootTaskDesksOrganizer( change.taskInfo?.isVisibleRequested == true && change.mode == TRANSIT_TO_FRONT override fun setOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) { onTaskInfoChangedListener = listener override fun addOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) { if (listener in onTaskInfoChangedListeners) return onTaskInfoChangedListeners += listener } override fun onTaskAppeared(taskInfo: RunningTaskInfo, leash: SurfaceControl) { Loading @@ -458,7 +459,9 @@ class RootTaskDesksOrganizer( taskInfo.taskId !in deskRootsByDeskId && deskMinimizationRootsByDeskId.values.none { it.rootId == taskInfo.taskId } ) { onTaskInfoChangedListener?.invoke(taskInfo) onTaskInfoChangedListeners.forEach { onTaskInfoChangedListener -> onTaskInfoChangedListener(taskInfo) } } updateLaunchAdjacentController() } Loading libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskListener.java +3 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,9 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener, ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG, "Freeform Task Info Changed: #%d", taskInfo.taskId); if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue()) { mDesktopTasksController.ifPresent(c -> c.onTaskInfoChanged(taskInfo)); } mWindowDecorationViewModel.onTaskInfoChanged(taskInfo); state.mTaskInfo = taskInfo; if (mDesktopState.canEnterDesktopMode()) { Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +1 −1 Original line number Diff line number Diff line Loading @@ -561,7 +561,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, }); } mFocusTransitionObserver.setLocalFocusTransitionListener(this, mMainExecutor); mDesksOrganizer.setOnDesktopTaskInfoChangedListener((taskInfo) -> { mDesksOrganizer.addOnDesktopTaskInfoChangedListener((taskInfo) -> { onTaskInfoChanged(taskInfo); return Unit.INSTANCE; }); Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +8 −0 Original line number Diff line number Diff line Loading @@ -357,6 +357,9 @@ class DesktopTasksController( ) dragAndDropController.addListener(this) shellController.addKeyguardChangeListener(this) desksOrganizer.addOnDesktopTaskInfoChangedListener { taskInfo -> onTaskInfoChanged(taskInfo) } } @VisibleForTesting Loading Loading @@ -5894,6 +5897,11 @@ class DesktopTasksController( !requestingImmersive && !RecentsTransitionStateListener.isRunning(recentsTransitionState) ) { logV( "onTaskInfoChanged taskId=%d stopped requesting immersive," + " breaking out of desktop-immersive mode", taskInfo.taskId, ) // Exit immersive if the app is no longer requesting it. desktopImmersiveController.moveTaskToNonImmersive( taskInfo, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ interface DesksOrganizer { fun isDeskActiveAtEnd(change: TransitionInfo.Change, deskId: Int): Boolean /** Allows for other classes to respond to task changes this organizer receives. */ fun setOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit) fun addOnDesktopTaskInfoChangedListener(listener: (ActivityManager.RunningTaskInfo) -> Unit) /** Move a desk to the given display area. */ fun moveDeskToDisplay( Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt +7 −4 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ class RootTaskDesksOrganizer( val deskMinimizationRootsByDeskId: MutableMap<Int, DeskMinimizationRoot> = mutableMapOf() private val removeDeskRootRequests = mutableSetOf<Int>() @VisibleForTesting val childLeashes = SparseArray<SurfaceControl>() private var onTaskInfoChangedListener: ((RunningTaskInfo) -> Unit)? = null private val onTaskInfoChangedListeners = mutableListOf<(RunningTaskInfo) -> Unit>() init { if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) { Loading Loading @@ -443,8 +443,9 @@ class RootTaskDesksOrganizer( change.taskInfo?.isVisibleRequested == true && change.mode == TRANSIT_TO_FRONT override fun setOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) { onTaskInfoChangedListener = listener override fun addOnDesktopTaskInfoChangedListener(listener: (RunningTaskInfo) -> Unit) { if (listener in onTaskInfoChangedListeners) return onTaskInfoChangedListeners += listener } override fun onTaskAppeared(taskInfo: RunningTaskInfo, leash: SurfaceControl) { Loading @@ -458,7 +459,9 @@ class RootTaskDesksOrganizer( taskInfo.taskId !in deskRootsByDeskId && deskMinimizationRootsByDeskId.values.none { it.rootId == taskInfo.taskId } ) { onTaskInfoChangedListener?.invoke(taskInfo) onTaskInfoChangedListeners.forEach { onTaskInfoChangedListener -> onTaskInfoChangedListener(taskInfo) } } updateLaunchAdjacentController() } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskListener.java +3 −1 Original line number Diff line number Diff line Loading @@ -156,7 +156,9 @@ public class FreeformTaskListener implements ShellTaskOrganizer.TaskListener, ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TASK_ORG, "Freeform Task Info Changed: #%d", taskInfo.taskId); if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue()) { mDesktopTasksController.ifPresent(c -> c.onTaskInfoChanged(taskInfo)); } mWindowDecorationViewModel.onTaskInfoChanged(taskInfo); state.mTaskInfo = taskInfo; if (mDesktopState.canEnterDesktopMode()) { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecorViewModel.java +1 −1 Original line number Diff line number Diff line Loading @@ -561,7 +561,7 @@ public class DesktopModeWindowDecorViewModel implements WindowDecorViewModel, }); } mFocusTransitionObserver.setLocalFocusTransitionListener(this, mMainExecutor); mDesksOrganizer.setOnDesktopTaskInfoChangedListener((taskInfo) -> { mDesksOrganizer.addOnDesktopTaskInfoChangedListener((taskInfo) -> { onTaskInfoChanged(taskInfo); return Unit.INSTANCE; }); Loading