Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +3 −1 Original line number Diff line number Diff line Loading @@ -1407,11 +1407,13 @@ public abstract class WMShellModule { static Optional<DesksTransitionObserver> provideDesksTransitionObserver( @DynamicOverride DesktopUserRepositories desktopUserRepositories, @NonNull DesksOrganizer desksOrganizer, @NonNull Transitions transitions, DesktopState desktopState ) { if (desktopState.canEnterDesktopModeOrShowAppHandle()) { return Optional.of( new DesksTransitionObserver(desktopUserRepositories, desksOrganizer)); new DesksTransitionObserver(desktopUserRepositories, desksOrganizer, transitions)); } return Optional.empty(); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt +2 −2 Original line number Diff line number Diff line Loading @@ -35,10 +35,10 @@ interface DesksOrganizer { fun createDeskImmediate(displayId: Int, userId: Int): Int? /** Activates the given desk, making it visible in its display. */ fun activateDesk(wct: WindowContainerTransaction, deskId: Int) fun activateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean = false) /** Deactivates the given desk, removing it as the default launch container for new tasks. */ fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int) fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean = false) /** Removes the given desk of the given user. */ fun removeDesk(wct: WindowContainerTransaction, deskId: Int, userId: Int) Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt +45 −0 Original line number Diff line number Diff line Loading @@ -17,12 +17,17 @@ package com.android.wm.shell.desktopmode.multidesks import android.os.IBinder import android.view.Display.INVALID_DISPLAY import android.view.WindowManager.TRANSIT_CHANGE import android.view.WindowManager.TRANSIT_CLOSE import android.view.WindowManager.TRANSIT_TO_BACK import android.view.WindowManager.TRANSIT_TO_FRONT import android.window.DesktopExperienceFlags import android.window.TransitionInfo import android.window.WindowContainerTransaction import com.android.internal.protolog.ProtoLog import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE import com.android.wm.shell.transition.Transitions /** * Observer of desk-related transitions, such as adding, removing or activating a whole desk. It Loading @@ -31,6 +36,7 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE class DesksTransitionObserver( private val desktopUserRepositories: DesktopUserRepositories, private val desksOrganizer: DesksOrganizer, private val transitions: Transitions, ) { private val deskTransitions = mutableMapOf<IBinder, MutableSet<DeskTransition>>() Loading @@ -51,6 +57,11 @@ class DesksTransitionObserver( if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) return val deskTransitions = deskTransitions.remove(transition) deskTransitions?.forEach { deskTransition -> handleDeskTransition(info, deskTransition) } if (deskTransitions == null || deskTransitions.isEmpty()) { // A desk transition could also occur without shell having started it or intercepting // it, check for that here in case launch roots need to be updated. handleIndependentDeskTransitionIfNeeded(info) } } /** Loading Loading @@ -215,6 +226,40 @@ class DesksTransitionObserver( } } private fun handleIndependentDeskTransitionIfNeeded(info: TransitionInfo) { val deskChanges = info.changes.filter { c -> desksOrganizer.isDeskChange(c) } if (deskChanges.isEmpty()) return logD( "handleIndependentDeskTransitionIfNeeded %d desk related changes found", deskChanges.size, ) val wct = WindowContainerTransaction() for (change in deskChanges.reversed()) { val deskId = desksOrganizer.getDeskIdFromChange(change) ?: continue when (change.mode) { TRANSIT_TO_BACK -> { logD("handleIndependentDeskTransitionIfNeeded desk=%d moved to back", deskId) desksOrganizer.deactivateDesk(wct, deskId, skipReorder = true) } TRANSIT_TO_FRONT -> { logD("handleIndependentDeskTransitionIfNeeded desk=%d moved to front", deskId) desksOrganizer.activateDesk(wct, deskId, skipReorder = true) } else -> { logW( "Unexpected change for desk=%d with mode=%", deskId, TransitionInfo.modeToString(change.mode), ) } } } if (wct.isEmpty) { return } transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null) } private fun logD(msg: String, vararg arguments: Any?) { ProtoLog.d(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments) } Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt +14 −5 Original line number Diff line number Diff line Loading @@ -202,22 +202,32 @@ class RootTaskDesksOrganizer( wct.setWindowingMode(minimizationRoot.token, WINDOWING_MODE_FREEFORM) } override fun activateDesk(wct: WindowContainerTransaction, deskId: Int) { override fun activateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean) { logV("activateDesk %d", deskId) val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } wct.reorder(root.token, /* onTop= */ true) if (!skipReorder) wct.reorder(root.token, /* onTop= */ true) updateLaunchRoot(wct, deskId, enabled = true) } override fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int) { override fun deactivateDesk( wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean, ) { logV("deactivateDesk %d", deskId) val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } if (!skipReorder) wct.reorder(root.taskInfo.token, /* onTop= */ false) updateLaunchRoot(wct, deskId, enabled = false) } private fun updateLaunchRoot(wct: WindowContainerTransaction, deskId: Int, enabled: Boolean) { val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } if (root.isLaunchRootRequested == enabled) { logD("updateLaunchRoot desk=%d launch root already set to enabled=%b", deskId, enabled) return } root.isLaunchRootRequested = enabled logD("updateLaunchRoot deskId=%d enabled=%b", deskId, enabled) logD("updateLaunchRoot changing desk=%d launch root to enabled=%b", deskId, enabled) if (enabled) { wct.setLaunchRoot( /* container= */ root.taskInfo.token, Loading @@ -230,7 +240,6 @@ class RootTaskDesksOrganizer( /* windowingModes= */ null, /* activityTypes= */ null, ) wct.reorder(root.taskInfo.token, /* onTop= */ false) } } Loading libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +22 −18 Original line number Diff line number Diff line Loading @@ -2965,7 +2965,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_TO_FRONT) assertNotNull(wct) verify(desksOrganizer, never()).activateDesk(eq(wct), any()) verify(desksOrganizer, never()).activateDesk(eq(wct), any(), any()) } @Test Loading Loading @@ -3731,7 +3731,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.moveToNextDisplay(task.taskId) verify(desksOrganizer).moveTaskToDesk(any(), eq(targetDeskId), eq(task), eq(false)) verify(desksOrganizer).activateDesk(any(), eq(targetDeskId)) verify(desksOrganizer).activateDesk(any(), eq(targetDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.ActivateDeskWithTask( Loading Loading @@ -3766,7 +3766,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() ) controller.moveToNextDisplay(task.taskId) verify(desksOrganizer).deactivateDesk(any(), eq(sourceDeskId)) verify(desksOrganizer).deactivateDesk(any(), eq(sourceDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.DeactivateDesk(token = transition, deskId = sourceDeskId) Loading Loading @@ -4163,7 +4163,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() minimizePipTask(task) verify(desksOrganizer).deactivateDesk(any(), eq(deskId)) verify(desksOrganizer).deactivateDesk(any(), eq(deskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition(DeskTransition.DeactivateDesk(transition, deskId)) } Loading Loading @@ -5944,7 +5944,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0)) verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0), skipReorder = eq(false)) } @Test Loading Loading @@ -6094,7 +6094,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() val transition = Binder() controller.handleRequest(transition, createTransition(task, type = TRANSIT_TO_BACK)) verify(desksOrganizer, never()).deactivateDesk(any(), deskId = eq(0)) verify(desksOrganizer, never()) .deactivateDesk(any(), deskId = eq(0), skipReorder = eq(false)) verify(desksTransitionsObserver, never()) .addPendingTransition( argThat { Loading Loading @@ -6543,7 +6544,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateDesk(activatingDeskId, RemoteTransition(TestRemoteTransition())) verify(desksOrganizer).deactivateDesk(any(), eq(previouslyActiveDeskId)) verify(desksOrganizer) .deactivateDesk(any(), eq(previouslyActiveDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading @@ -6566,7 +6568,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(1)) verify(desksOrganizer).activateDesk(any(), eq(1), skipReorder = eq(false)) } @Test Loading @@ -6581,7 +6583,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(2)) verify(desksOrganizer).activateDesk(any(), eq(2), skipReorder = eq(false)) } @Test Loading @@ -6594,7 +6596,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), skipReorder = any()) } @Test Loading @@ -6608,7 +6610,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), skipReorder = any()) } @Test Loading @@ -6621,7 +6623,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), any()) } @Test Loading @@ -6634,7 +6636,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), any()) } @Test Loading @@ -6654,7 +6656,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(INVALID_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(1)) verify(desksOrganizer).activateDesk(any(), eq(1), skipReorder = eq(false)) } @Test Loading @@ -6674,7 +6676,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(INVALID_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(4)) verify(desksOrganizer).activateDesk(any(), eq(4), skipReorder = eq(false)) } @Test Loading Loading @@ -9214,7 +9216,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() this.deskId == DISCONNECTED_DESK_ID } ) verify(desksOrganizer).deactivateDesk(any(), eq(DISCONNECTED_DESK_ID)) verify(desksOrganizer) .deactivateDesk(any(), eq(DISCONNECTED_DESK_ID), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading Loading @@ -9256,7 +9259,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() this.deskId == DISCONNECTED_DESK_ID } ) verify(desksOrganizer).activateDesk(any(), eq(DISCONNECTED_DESK_ID)) verify(desksOrganizer) .activateDesk(any(), eq(DISCONNECTED_DESK_ID), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading Loading @@ -9425,7 +9429,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() displayId = DEFAULT_DISPLAY, ) verify(desksOrganizer).activateDesk(any(), eq(inactiveDesk)) verify(desksOrganizer).activateDesk(any(), eq(inactiveDesk), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.ActivateDesk( Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +3 −1 Original line number Diff line number Diff line Loading @@ -1407,11 +1407,13 @@ public abstract class WMShellModule { static Optional<DesksTransitionObserver> provideDesksTransitionObserver( @DynamicOverride DesktopUserRepositories desktopUserRepositories, @NonNull DesksOrganizer desksOrganizer, @NonNull Transitions transitions, DesktopState desktopState ) { if (desktopState.canEnterDesktopModeOrShowAppHandle()) { return Optional.of( new DesksTransitionObserver(desktopUserRepositories, desksOrganizer)); new DesksTransitionObserver(desktopUserRepositories, desksOrganizer, transitions)); } return Optional.empty(); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksOrganizer.kt +2 −2 Original line number Diff line number Diff line Loading @@ -35,10 +35,10 @@ interface DesksOrganizer { fun createDeskImmediate(displayId: Int, userId: Int): Int? /** Activates the given desk, making it visible in its display. */ fun activateDesk(wct: WindowContainerTransaction, deskId: Int) fun activateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean = false) /** Deactivates the given desk, removing it as the default launch container for new tasks. */ fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int) fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean = false) /** Removes the given desk of the given user. */ fun removeDesk(wct: WindowContainerTransaction, deskId: Int, userId: Int) Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/DesksTransitionObserver.kt +45 −0 Original line number Diff line number Diff line Loading @@ -17,12 +17,17 @@ package com.android.wm.shell.desktopmode.multidesks import android.os.IBinder import android.view.Display.INVALID_DISPLAY import android.view.WindowManager.TRANSIT_CHANGE import android.view.WindowManager.TRANSIT_CLOSE import android.view.WindowManager.TRANSIT_TO_BACK import android.view.WindowManager.TRANSIT_TO_FRONT import android.window.DesktopExperienceFlags import android.window.TransitionInfo import android.window.WindowContainerTransaction import com.android.internal.protolog.ProtoLog import com.android.wm.shell.desktopmode.DesktopUserRepositories import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE import com.android.wm.shell.transition.Transitions /** * Observer of desk-related transitions, such as adding, removing or activating a whole desk. It Loading @@ -31,6 +36,7 @@ import com.android.wm.shell.protolog.ShellProtoLogGroup.WM_SHELL_DESKTOP_MODE class DesksTransitionObserver( private val desktopUserRepositories: DesktopUserRepositories, private val desksOrganizer: DesksOrganizer, private val transitions: Transitions, ) { private val deskTransitions = mutableMapOf<IBinder, MutableSet<DeskTransition>>() Loading @@ -51,6 +57,11 @@ class DesksTransitionObserver( if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) return val deskTransitions = deskTransitions.remove(transition) deskTransitions?.forEach { deskTransition -> handleDeskTransition(info, deskTransition) } if (deskTransitions == null || deskTransitions.isEmpty()) { // A desk transition could also occur without shell having started it or intercepting // it, check for that here in case launch roots need to be updated. handleIndependentDeskTransitionIfNeeded(info) } } /** Loading Loading @@ -215,6 +226,40 @@ class DesksTransitionObserver( } } private fun handleIndependentDeskTransitionIfNeeded(info: TransitionInfo) { val deskChanges = info.changes.filter { c -> desksOrganizer.isDeskChange(c) } if (deskChanges.isEmpty()) return logD( "handleIndependentDeskTransitionIfNeeded %d desk related changes found", deskChanges.size, ) val wct = WindowContainerTransaction() for (change in deskChanges.reversed()) { val deskId = desksOrganizer.getDeskIdFromChange(change) ?: continue when (change.mode) { TRANSIT_TO_BACK -> { logD("handleIndependentDeskTransitionIfNeeded desk=%d moved to back", deskId) desksOrganizer.deactivateDesk(wct, deskId, skipReorder = true) } TRANSIT_TO_FRONT -> { logD("handleIndependentDeskTransitionIfNeeded desk=%d moved to front", deskId) desksOrganizer.activateDesk(wct, deskId, skipReorder = true) } else -> { logW( "Unexpected change for desk=%d with mode=%", deskId, TransitionInfo.modeToString(change.mode), ) } } } if (wct.isEmpty) { return } transitions.startTransition(TRANSIT_CHANGE, wct, /* handler= */ null) } private fun logD(msg: String, vararg arguments: Any?) { ProtoLog.d(WM_SHELL_DESKTOP_MODE, "%s: $msg", TAG, *arguments) } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/multidesks/RootTaskDesksOrganizer.kt +14 −5 Original line number Diff line number Diff line Loading @@ -202,22 +202,32 @@ class RootTaskDesksOrganizer( wct.setWindowingMode(minimizationRoot.token, WINDOWING_MODE_FREEFORM) } override fun activateDesk(wct: WindowContainerTransaction, deskId: Int) { override fun activateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean) { logV("activateDesk %d", deskId) val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } wct.reorder(root.token, /* onTop= */ true) if (!skipReorder) wct.reorder(root.token, /* onTop= */ true) updateLaunchRoot(wct, deskId, enabled = true) } override fun deactivateDesk(wct: WindowContainerTransaction, deskId: Int) { override fun deactivateDesk( wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean, ) { logV("deactivateDesk %d", deskId) val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } if (!skipReorder) wct.reorder(root.taskInfo.token, /* onTop= */ false) updateLaunchRoot(wct, deskId, enabled = false) } private fun updateLaunchRoot(wct: WindowContainerTransaction, deskId: Int, enabled: Boolean) { val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" } if (root.isLaunchRootRequested == enabled) { logD("updateLaunchRoot desk=%d launch root already set to enabled=%b", deskId, enabled) return } root.isLaunchRootRequested = enabled logD("updateLaunchRoot deskId=%d enabled=%b", deskId, enabled) logD("updateLaunchRoot changing desk=%d launch root to enabled=%b", deskId, enabled) if (enabled) { wct.setLaunchRoot( /* container= */ root.taskInfo.token, Loading @@ -230,7 +240,6 @@ class RootTaskDesksOrganizer( /* windowingModes= */ null, /* activityTypes= */ null, ) wct.reorder(root.taskInfo.token, /* onTop= */ false) } } Loading
libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +22 −18 Original line number Diff line number Diff line Loading @@ -2965,7 +2965,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() val wct = getLatestDesktopMixedTaskWct(type = TRANSIT_TO_FRONT) assertNotNull(wct) verify(desksOrganizer, never()).activateDesk(eq(wct), any()) verify(desksOrganizer, never()).activateDesk(eq(wct), any(), any()) } @Test Loading Loading @@ -3731,7 +3731,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.moveToNextDisplay(task.taskId) verify(desksOrganizer).moveTaskToDesk(any(), eq(targetDeskId), eq(task), eq(false)) verify(desksOrganizer).activateDesk(any(), eq(targetDeskId)) verify(desksOrganizer).activateDesk(any(), eq(targetDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.ActivateDeskWithTask( Loading Loading @@ -3766,7 +3766,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() ) controller.moveToNextDisplay(task.taskId) verify(desksOrganizer).deactivateDesk(any(), eq(sourceDeskId)) verify(desksOrganizer).deactivateDesk(any(), eq(sourceDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.DeactivateDesk(token = transition, deskId = sourceDeskId) Loading Loading @@ -4163,7 +4163,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() minimizePipTask(task) verify(desksOrganizer).deactivateDesk(any(), eq(deskId)) verify(desksOrganizer).deactivateDesk(any(), eq(deskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition(DeskTransition.DeactivateDesk(transition, deskId)) } Loading Loading @@ -5944,7 +5944,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.handleRequest(Binder(), createTransition(task, type = TRANSIT_CLOSE)) verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0)) verify(desksOrganizer).deactivateDesk(any(), /* deskId= */ eq(0), skipReorder = eq(false)) } @Test Loading Loading @@ -6094,7 +6094,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() val transition = Binder() controller.handleRequest(transition, createTransition(task, type = TRANSIT_TO_BACK)) verify(desksOrganizer, never()).deactivateDesk(any(), deskId = eq(0)) verify(desksOrganizer, never()) .deactivateDesk(any(), deskId = eq(0), skipReorder = eq(false)) verify(desksTransitionsObserver, never()) .addPendingTransition( argThat { Loading Loading @@ -6543,7 +6544,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateDesk(activatingDeskId, RemoteTransition(TestRemoteTransition())) verify(desksOrganizer).deactivateDesk(any(), eq(previouslyActiveDeskId)) verify(desksOrganizer) .deactivateDesk(any(), eq(previouslyActiveDeskId), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading @@ -6566,7 +6568,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(1)) verify(desksOrganizer).activateDesk(any(), eq(1), skipReorder = eq(false)) } @Test Loading @@ -6581,7 +6583,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(2)) verify(desksOrganizer).activateDesk(any(), eq(2), skipReorder = eq(false)) } @Test Loading @@ -6594,7 +6596,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), skipReorder = any()) } @Test Loading @@ -6608,7 +6610,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), skipReorder = any()) } @Test Loading @@ -6621,7 +6623,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), any()) } @Test Loading @@ -6634,7 +6636,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(DEFAULT_DISPLAY) verify(desksOrganizer, never()).activateDesk(any(), any()) verify(desksOrganizer, never()).activateDesk(any(), any(), any()) } @Test Loading @@ -6654,7 +6656,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activatePreviousDesk(INVALID_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(1)) verify(desksOrganizer).activateDesk(any(), eq(1), skipReorder = eq(false)) } @Test Loading @@ -6674,7 +6676,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() controller.activateNextDesk(INVALID_DISPLAY) verify(desksOrganizer).activateDesk(any(), eq(4)) verify(desksOrganizer).activateDesk(any(), eq(4), skipReorder = eq(false)) } @Test Loading Loading @@ -9214,7 +9216,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() this.deskId == DISCONNECTED_DESK_ID } ) verify(desksOrganizer).deactivateDesk(any(), eq(DISCONNECTED_DESK_ID)) verify(desksOrganizer) .deactivateDesk(any(), eq(DISCONNECTED_DESK_ID), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading Loading @@ -9256,7 +9259,8 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() this.deskId == DISCONNECTED_DESK_ID } ) verify(desksOrganizer).activateDesk(any(), eq(DISCONNECTED_DESK_ID)) verify(desksOrganizer) .activateDesk(any(), eq(DISCONNECTED_DESK_ID), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( argThat { Loading Loading @@ -9425,7 +9429,7 @@ class DesktopTasksControllerTest(flags: FlagsParameterization) : ShellTestCase() displayId = DEFAULT_DISPLAY, ) verify(desksOrganizer).activateDesk(any(), eq(inactiveDesk)) verify(desksOrganizer).activateDesk(any(), eq(inactiveDesk), skipReorder = eq(false)) verify(desksTransitionsObserver) .addPendingTransition( DeskTransition.ActivateDesk( Loading