Merge "Make sure userSwitchComplete is dispatched after screen is unfrozen."

This commit is contained in:
Yasin Kilicdere
2022-11-01 11:37:10 +00:00
committed by Android (Google) Code Review

View File

@@ -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();
}
}
}