diff options
| author | 2024-10-01 14:02:35 +0000 | |
|---|---|---|
| committer | 2024-10-01 14:02:35 +0000 | |
| commit | 0fc279fb25bdd4e178137dbf4303ffaf69d3ac8b (patch) | |
| tree | 457ca89cec370cb4ef6f246fab7061f991055d91 | |
| parent | 650efbedaebdca2e06c3d2a2d68e5883ea49da6b (diff) | |
| parent | 9fcffe41632a4df8db34b3f67ac861d992d2b23d (diff) | |
Merge "Register UserChangeListener in DesktopTasksController" into main
2 files changed, 18 insertions, 1 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt index afa27f9f1309..acaad69e91b6 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt @@ -17,6 +17,7 @@ package com.android.wm.shell.desktopmode import android.app.ActivityManager.RunningTaskInfo +import android.app.ActivityManager import android.app.ActivityOptions import android.app.KeyguardManager import android.app.PendingIntent @@ -101,6 +102,7 @@ import com.android.wm.shell.splitscreen.SplitScreenController.EXIT_REASON_DESKTO import com.android.wm.shell.sysui.ShellCommandHandler import com.android.wm.shell.sysui.ShellController import com.android.wm.shell.sysui.ShellInit +import com.android.wm.shell.sysui.UserChangeListener import com.android.wm.shell.transition.OneShotRemoteHandler import com.android.wm.shell.transition.Transitions import com.android.wm.shell.windowdecor.DragPositioningCallbackUtility @@ -146,10 +148,12 @@ class DesktopTasksController( ) : RemoteCallable<DesktopTasksController>, Transitions.TransitionHandler, - DragAndDropController.DragAndDropListener { + DragAndDropController.DragAndDropListener, + UserChangeListener { private val desktopMode: DesktopModeImpl private var visualIndicator: DesktopModeVisualIndicator? = null + private var userId: Int private val desktopModeShellCommandHandler: DesktopModeShellCommandHandler = DesktopModeShellCommandHandler(this) private val mOnAnimationFinishedCallback = @@ -193,6 +197,7 @@ class DesktopTasksController( if (DesktopModeStatus.canEnterDesktopMode(context)) { shellInit.addInitCallback({ onInit() }, this) } + userId = ActivityManager.getCurrentUser() } private fun onInit() { @@ -204,6 +209,7 @@ class DesktopTasksController( { createExternalInterface() }, this ) + shellController.addUserChangeListener(this); transitions.addHandler(this) dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener recentsTransitionHandler.addTransitionStateListener( @@ -1779,6 +1785,11 @@ class DesktopTasksController( return true } + // TODO(b/366397912): Support full multi-user mode in Windowing. + override fun onUserChanged(newUserId: Int, userContext: Context) { + userId = newUserId + } + private fun dump(pw: PrintWriter, prefix: String) { val innerPrefix = "$prefix " pw.println("${prefix}DesktopTasksController") diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt index 94e361659090..8870846efed4 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt @@ -144,6 +144,7 @@ import org.mockito.Mockito.clearInvocations import org.mockito.Mockito.mock import org.mockito.Mockito.spy import org.mockito.Mockito.verify +import org.mockito.Mockito.times import org.mockito.kotlin.any import org.mockito.kotlin.anyOrNull import org.mockito.kotlin.atLeastOnce @@ -3201,6 +3202,11 @@ class DesktopTasksControllerTest : ShellTestCase() { Rect()) } + @Test + fun shellController_registersUserChangeListener() { + verify(shellController, times(1)).addUserChangeListener(any()) + } + /** * Assert that an unhandled drag event launches a PendingIntent with the * windowing mode and bounds we are expecting. |