Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8dc98766 authored by Peter Kalauskas's avatar Peter Kalauskas
Browse files

Fix bug that caused task to show behind keyguard

Move guest recreation into the user switch BroadcastReceiver to avoid
lock contention that caused UI bugs in keyguard.

Test: With config_guestUserAutoCreated=true, switch to guest, then
      select reset guest. Ensure that keyguard renders correctly for the
      owner.
Fixes: 193933686
Change-Id: I95ed36dbd2c361312c044dec63a06f1711419131
parent b8a20acc
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -539,6 +539,13 @@ public class UserSwitcherController implements Dumpable {
                    mSecondaryUser = userInfo.id;
                }
                unpauseRefreshUsers = true;
                if (mGuestUserAutoCreated) {
                    // Guest user must be scheduled for creation AFTER switching to the target user.
                    // This avoids lock contention which will produce UX bugs on the keyguard
                    // (b/193933686).
                    // TODO(b/191067027): Move guest user recreation to system_server
                    guaranteeGuestPresent();
                }
            } else if (Intent.ACTION_USER_INFO_CHANGED.equals(intent.getAction())) {
                forcePictureLoadForId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
                        UserHandle.USER_NULL);
@@ -670,10 +677,6 @@ public class UserSwitcherController implements Dumpable {
                switchToUserId(newGuestId);
                mUserManager.removeUser(currentUser.id);
            } else {
                if (mGuestUserAutoCreated) {
                    // TODO(b/191067027): Move guest recreation to system_server
                    scheduleGuestCreation();
                }
                switchToUserId(targetUserId);
                mUserManager.removeUser(currentUser.id);
            }