diff options
| author | 2023-11-13 21:12:18 +0000 | |
|---|---|---|
| committer | 2023-11-13 21:12:18 +0000 | |
| commit | 58e26a57800a40de88b2574102abc2908a226243 (patch) | |
| tree | cc1bdddb09a3f8a164d7268f3372bae52d5f85e7 | |
| parent | 9f556ea7d0605a0e5f3c330ef63fe02a0eb47129 (diff) | |
| parent | 1e3d4f48ab24593ec401ccbc968efbc0a82fea40 (diff) | |
Merge "Refactored switchUSer to handle user switch back to the current user" into udc-qpr-dev
| -rw-r--r-- | services/core/java/com/android/server/am/UserController.java | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 99c2f8a5cc56..a73fdee2e050 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -1928,24 +1928,26 @@ class UserController implements Handler.Callback { EventLog.writeEvent(EventLogTags.UC_SWITCH_USER, targetUserId); int currentUserId = getCurrentUserId(); UserInfo targetUserInfo = getUserInfo(targetUserId); - if (targetUserId == currentUserId) { - Slogf.i(TAG, "user #" + targetUserId + " is already the current user"); - return true; - } - if (targetUserInfo == null) { - Slogf.w(TAG, "No user info for user #" + targetUserId); - return false; - } - if (!targetUserInfo.supportsSwitchTo()) { - Slogf.w(TAG, "Cannot switch to User #" + targetUserId + ": not supported"); - return false; - } - if (FactoryResetter.isFactoryResetting()) { - Slogf.w(TAG, "Cannot switch to User #" + targetUserId + ": factory reset in progress"); - return false; - } boolean userSwitchUiEnabled; synchronized (mLock) { + if (targetUserId == currentUserId && mTargetUserId == UserHandle.USER_NULL) { + Slogf.i(TAG, "user #" + targetUserId + " is already the current user"); + return true; + } + if (targetUserInfo == null) { + Slogf.w(TAG, "No user info for user #" + targetUserId); + return false; + } + if (!targetUserInfo.supportsSwitchTo()) { + Slogf.w(TAG, "Cannot switch to User #" + targetUserId + ": not supported"); + return false; + } + if (FactoryResetter.isFactoryResetting()) { + Slogf.w(TAG, "Cannot switch to User #" + targetUserId + + ": factory reset in progress"); + return false; + } + if (!mInitialized) { Slogf.e(TAG, "Cannot switch to User #" + targetUserId + ": UserController not ready yet"); |