summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Pragya Bajoria <pragyabajoria@google.com> 2024-10-01 14:02:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-10-01 14:02:35 +0000
commit0fc279fb25bdd4e178137dbf4303ffaf69d3ac8b (patch)
tree457ca89cec370cb4ef6f246fab7061f991055d91
parent650efbedaebdca2e06c3d2a2d68e5883ea49da6b (diff)
parent9fcffe41632a4df8db34b3f67ac861d992d2b23d (diff)
Merge "Register UserChangeListener in DesktopTasksController" into main
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt13
-rw-r--r--libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/desktopmode/DesktopTasksControllerTest.kt6
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.