From 58a1a99defb0f520dcef8672e5eedc622efb5b33 Mon Sep 17 00:00:00 2001 From: Peter Kalauskas Date: Fri, 23 Jul 2021 15:07:11 -0700 Subject: [PATCH] Move guest creation to background thread Fix bug where phone could not unlock if guest user was being created in the background. This bug only affected devices with config_guestUserAutoCreated=true. Test: In scheduleGuestCreation, replace createGuest() with Thread.sleep(20000). Ensure device can be unlocked within a few seconds after killing sysui process. Bug: 194531015 Change-Id: Idc86a7afdb58a64baa3725d8aa56d7c93a409662 --- .../statusbar/policy/UserSwitcherController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index ae73f7327defb..8f1a5782e7793 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -65,8 +65,8 @@ import com.android.systemui.R; import com.android.systemui.SystemUISecondaryUserService; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.SysUISingleton; +import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; -import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.FalsingManager; import com.android.systemui.plugins.qs.DetailAdapter; @@ -138,7 +138,7 @@ public class UserSwitcherController implements Dumpable { private SparseBooleanArray mForcePictureLoadForUserId = new SparseBooleanArray(2); private final UiEventLogger mUiEventLogger; public final DetailAdapter mUserDetailAdapter; - private final Executor mUiBgExecutor; + private final Executor mBgExecutor; private final boolean mGuestUserAutoCreated; private final AtomicBoolean mGuestIsResetting; private final AtomicBoolean mGuestCreationScheduled; @@ -158,7 +158,7 @@ public class UserSwitcherController implements Dumpable { IActivityTaskManager activityTaskManager, UserDetailAdapter userDetailAdapter, SecureSettings secureSettings, - @UiBackground Executor uiBgExecutor) { + @Background Executor bgExecutor) { mContext = context; mUserTracker = userTracker; mBroadcastDispatcher = broadcastDispatcher; @@ -169,7 +169,7 @@ public class UserSwitcherController implements Dumpable { mGuestResumeSessionReceiver = new GuestResumeSessionReceiver( this, mUserTracker, mUiEventLogger, secureSettings); mUserDetailAdapter = userDetailAdapter; - mUiBgExecutor = uiBgExecutor; + mBgExecutor = bgExecutor; if (!UserManager.isGuestUserEphemeral()) { mGuestResumeSessionReceiver.register(mBroadcastDispatcher); } @@ -718,7 +718,7 @@ public class UserSwitcherController implements Dumpable { return; } - mUiBgExecutor.execute(() -> { + mBgExecutor.execute(() -> { int newGuestId = createGuest(); mGuestCreationScheduled.set(false); mGuestIsResetting.set(false);