diff options
| author | 2025-03-13 04:24:26 -0700 | |
|---|---|---|
| committer | 2025-03-13 04:24:26 -0700 | |
| commit | 4a2e7e3a7fd57db0f02070d9e30ed834a432b3ec (patch) | |
| tree | 89e77924384dafcb378a5cdc834901bd3dc38727 | |
| parent | fff1037bcf79551ad49115e293c9cbc1cfe8ee1d (diff) | |
| parent | 644b41a9610730930b3fb2d3666bbfcc2d3d89ff (diff) | |
Merge "Update the current user again after registering UserChangeListener" into main
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopTasksController.kt | 10 |
1 files changed, 9 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 487c7d15fa38..0920f274f51d 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 @@ -306,6 +306,8 @@ class DesktopTasksController( this, ) shellController.addUserChangeListener(this) + // Update the current user id again because it might be updated between init and onInit(). + updateCurrentUser(ActivityManager.getCurrentUser()) transitions.addHandler(this) dragToDesktopTransitionHandler.dragToDesktopStateListener = dragToDesktopStateListener recentsTransitionHandler.addTransitionStateListener( @@ -3547,9 +3549,15 @@ class DesktopTasksController( // TODO(b/366397912): Support full multi-user mode in Windowing. override fun onUserChanged(newUserId: Int, userContext: Context) { logV("onUserChanged previousUserId=%d, newUserId=%d", userId, newUserId) + updateCurrentUser(newUserId) + } + + private fun updateCurrentUser(newUserId: Int) { userId = newUserId taskRepository = userRepositories.getProfile(userId) - snapEventHandler.onUserChange() + if (this::snapEventHandler.isInitialized) { + snapEventHandler.onUserChange() + } } /** Called when a task's info changes. */ |