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

Commit 0475ce68 authored by Dan Shi's avatar Dan Shi Committed by Android (Google) Code Review
Browse files

Revert "Set user state to STATE_BOOTING before UC.startUserInternal returns."

This reverts commit 6790739d.

Reason for revert: b/395709071#comment24

Change-Id: I4801e990f249143654287ddaec4fa36ab95781f8
parent 6790739d
Loading
Loading
Loading
Loading
+47 −50
Original line number Diff line number Diff line
@@ -1907,6 +1907,27 @@ class UserController implements Handler.Callback {
                return false;
            }

            final Runnable continueStartUserInternal = () -> continueStartUserInternal(userInfo,
                    oldUserId, userStartMode, unlockListener, callingUid, callingPid);
            if (foreground) {
                mHandler.post(() -> dispatchOnBeforeUserSwitching(userId, () ->
                        mHandler.post(continueStartUserInternal)));
            } else {
                continueStartUserInternal.run();
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }

        return true;
    }

    private void continueStartUserInternal(UserInfo userInfo, int oldUserId, int userStartMode,
            IProgressListener unlockListener, int callingUid, int callingPid) {
        final TimingsTraceAndSlog t = new TimingsTraceAndSlog();
        final boolean foreground = userStartMode == USER_START_MODE_FOREGROUND;
        final int userId = userInfo.id;

        boolean needStart = false;
        boolean updateUmState = false;
        UserState uss;
@@ -1930,7 +1951,7 @@ class UserController implements Handler.Callback {
                mPendingUserStarts.add(new PendingUserStart(userId, userStartMode,
                        unlockListener));
                t.traceEnd(); // updateStartedUserArrayStarting
                    return true;
                return;
            }
        }

@@ -1952,30 +1973,6 @@ class UserController implements Handler.Callback {
            mInjector.getUserManagerInternal().setUserState(userId, uss.state);
            t.traceEnd();
        }

            UserState finalUss = uss;
            boolean finalNeedStart = needStart;
            final Runnable continueStartUserInternal = () -> continueStartUserInternal(userInfo,
                    oldUserId, userStartMode, finalUss, finalNeedStart, callingUid, callingPid);
            if (foreground) {
                mHandler.post(() -> dispatchOnBeforeUserSwitching(userId, () ->
                        mHandler.post(continueStartUserInternal)));
            } else {
                continueStartUserInternal.run();
            }
        } finally {
            Binder.restoreCallingIdentity(ident);
        }

        return true;
    }

    private void continueStartUserInternal(UserInfo userInfo, int oldUserId, int userStartMode,
            UserState uss, boolean needStart, int callingUid, int callingPid) {
        final TimingsTraceAndSlog t = new TimingsTraceAndSlog();
        final boolean foreground = userStartMode == USER_START_MODE_FOREGROUND;
        final int userId = userInfo.id;

        t.traceBegin("updateConfigurationAndProfileIds");
        if (foreground) {
            // Make sure the old user is no longer considering the display to be on.