summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yasin Kilicdere <tyk@google.com> 2022-11-01 11:37:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-11-01 11:37:10 +0000
commitf0cd18e13453fdac8bdcd409c1aaa88aaeb42dc3 (patch)
tree74420749f0253b1b192bcfb8258105c357b6b2a3
parentd3b6cc2dd1cd45a023d8b0f9ce47cafab3f68f6f (diff)
parent7fb0d1dcb013899a7a30799e2df6c6b6cebf317e (diff)
Merge "Make sure userSwitchComplete is dispatched after screen is unfrozen."
-rw-r--r--services/core/java/com/android/server/am/UserController.java20
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();
}
}
}