Loading services/core/java/com/android/server/pm/UserManagerService.java +35 −22 Original line number Diff line number Diff line Loading @@ -1395,6 +1395,14 @@ public class UserManagerService extends IUserManager.Stub { .getBoolean(com.android.internal.R.bool.config_bootToHeadlessSystemUser)) { return UserHandle.USER_SYSTEM; } return getPreviousOrFirstSwitchableUser(); } // Not HSUM, return system user. return UserHandle.USER_SYSTEM; } private @UserIdInt int getPreviousOrFirstSwitchableUser() throws UserManager.CheckedUserOperationException { // Return the previous foreground user, if there is one. final int previousUser = getPreviousFullUserToEnterForeground(); if (previousUser != UserHandle.USER_NULL) { Loading @@ -1402,24 +1410,29 @@ public class UserManagerService extends IUserManager.Stub { return previousUser; } // No previous user. Return the first switchable user if there is one. final int firstSwitchableUser = getFirstSwitchableUser(); if (firstSwitchableUser != UserHandle.USER_NULL) { Slogf.i(LOG_TAG, "Boot user is first switchable user %d", firstSwitchableUser); return firstSwitchableUser; } // No switchable users found. Uh oh! throw new UserManager.CheckedUserOperationException( "No switchable users found", USER_OPERATION_ERROR_UNKNOWN); } private @UserIdInt int getFirstSwitchableUser() { synchronized (mUsersLock) { final int userSize = mUsers.size(); for (int i = 0; i < userSize; i++) { final UserData userData = mUsers.valueAt(i); if (userData.info.supportsSwitchToByUser()) { int firstSwitchable = userData.info.id; Slogf.i(LOG_TAG, "Boot user is first switchable user %d", firstSwitchable); return firstSwitchable; } } } // No switchable users found. Uh oh! throw new UserManager.CheckedUserOperationException( "No switchable users found", USER_OPERATION_ERROR_UNKNOWN); } // Not HSUM, return system user. return UserHandle.USER_SYSTEM; return UserHandle.USER_NULL; } Loading Loading
services/core/java/com/android/server/pm/UserManagerService.java +35 −22 Original line number Diff line number Diff line Loading @@ -1395,6 +1395,14 @@ public class UserManagerService extends IUserManager.Stub { .getBoolean(com.android.internal.R.bool.config_bootToHeadlessSystemUser)) { return UserHandle.USER_SYSTEM; } return getPreviousOrFirstSwitchableUser(); } // Not HSUM, return system user. return UserHandle.USER_SYSTEM; } private @UserIdInt int getPreviousOrFirstSwitchableUser() throws UserManager.CheckedUserOperationException { // Return the previous foreground user, if there is one. final int previousUser = getPreviousFullUserToEnterForeground(); if (previousUser != UserHandle.USER_NULL) { Loading @@ -1402,24 +1410,29 @@ public class UserManagerService extends IUserManager.Stub { return previousUser; } // No previous user. Return the first switchable user if there is one. final int firstSwitchableUser = getFirstSwitchableUser(); if (firstSwitchableUser != UserHandle.USER_NULL) { Slogf.i(LOG_TAG, "Boot user is first switchable user %d", firstSwitchableUser); return firstSwitchableUser; } // No switchable users found. Uh oh! throw new UserManager.CheckedUserOperationException( "No switchable users found", USER_OPERATION_ERROR_UNKNOWN); } private @UserIdInt int getFirstSwitchableUser() { synchronized (mUsersLock) { final int userSize = mUsers.size(); for (int i = 0; i < userSize; i++) { final UserData userData = mUsers.valueAt(i); if (userData.info.supportsSwitchToByUser()) { int firstSwitchable = userData.info.id; Slogf.i(LOG_TAG, "Boot user is first switchable user %d", firstSwitchable); return firstSwitchable; } } } // No switchable users found. Uh oh! throw new UserManager.CheckedUserOperationException( "No switchable users found", USER_OPERATION_ERROR_UNKNOWN); } // Not HSUM, return system user. return UserHandle.USER_SYSTEM; return UserHandle.USER_NULL; } Loading