diff options
| author | 2022-11-01 11:37:10 +0000 | |
|---|---|---|
| committer | 2022-11-01 11:37:10 +0000 | |
| commit | f0cd18e13453fdac8bdcd409c1aaa88aaeb42dc3 (patch) | |
| tree | 74420749f0253b1b192bcfb8258105c357b6b2a3 | |
| parent | d3b6cc2dd1cd45a023d8b0f9ce47cafab3f68f6f (diff) | |
| parent | 7fb0d1dcb013899a7a30799e2df6c6b6cebf317e (diff) | |
Merge "Make sure userSwitchComplete is dispatched after screen is unfrozen."
| -rw-r--r-- | services/core/java/com/android/server/am/UserController.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 82d239f59f1e..d296a8e26c5b 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -2185,8 +2185,6 @@ class UserController implements Handler.Callback { mHandler.sendMessage(mHandler.obtainMessage(COMPLETE_USER_SWITCH_MSG, newUserId, 0)); uss.switching = false; - mHandler.removeMessages(REPORT_USER_SWITCH_COMPLETE_MSG); - mHandler.sendMessage(mHandler.obtainMessage(REPORT_USER_SWITCH_COMPLETE_MSG, newUserId, 0)); stopGuestOrEphemeralUserIfBackground(oldUserId); stopUserOnSwitchIfEnforced(oldUserId); if (oldUserId == UserHandle.USER_SYSTEM) { @@ -2200,20 +2198,20 @@ class UserController implements Handler.Callback { @VisibleForTesting void completeUserSwitch(int newUserId) { + final Runnable runnable = () -> { + unfreezeScreen(); + mHandler.removeMessages(REPORT_USER_SWITCH_COMPLETE_MSG); + mHandler.sendMessage(mHandler.obtainMessage( + REPORT_USER_SWITCH_COMPLETE_MSG, newUserId, 0)); + }; + if (isUserSwitchUiEnabled()) { // If there is no challenge set, dismiss the keyguard right away if (!mInjector.getKeyguardManager().isDeviceSecure(newUserId)) { // Wait until the keyguard is dismissed to unfreeze - mInjector.dismissKeyguard( - new Runnable() { - public void run() { - unfreezeScreen(); - } - }, - "User Switch"); - return; + mInjector.dismissKeyguard(runnable, "User Switch"); } else { - unfreezeScreen(); + runnable.run(); } } } |