diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/UserManagerService.java | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index b1976cd0d13b..42ca55934320 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1060,8 +1060,6 @@ public class UserManagerService extends IUserManager.Stub { if (isAutoLockingPrivateSpaceOnRestartsEnabled()) { autoLockPrivateSpace(); } - - markEphemeralUsersForRemoval(); } private boolean isAutoLockingPrivateSpaceOnRestartsEnabled() { @@ -1098,21 +1096,6 @@ public class UserManagerService extends IUserManager.Stub { } } - /** Marks all ephemeral users as slated for deletion. **/ - private void markEphemeralUsersForRemoval() { - synchronized (mUsersLock) { - final int userSize = mUsers.size(); - for (int i = 0; i < userSize; i++) { - final UserInfo ui = mUsers.valueAt(i).info; - if (ui.isEphemeral() && !ui.preCreated && ui.id != UserHandle.USER_SYSTEM) { - addRemovingUserIdLocked(ui.id); - ui.partial = true; - ui.flags |= UserInfo.FLAG_DISABLED; - } - } - } - } - /* Prunes out any partially created or partially removed users. */ private void cleanupPartialUsers() { ArrayList<UserInfo> partials = new ArrayList<>(); @@ -4223,6 +4206,13 @@ public class UserManagerService extends IUserManager.Stub { || mNextSerialNumber <= userData.info.id) { mNextSerialNumber = userData.info.id + 1; } + if (userData.info.isEphemeral() && !userData.info.preCreated + && userData.info.id != UserHandle.USER_SYSTEM) { + // Mark ephemeral user as slated for deletion. + addRemovingUserIdLocked(userData.info.id); + userData.info.partial = true; + userData.info.flags |= UserInfo.FLAG_DISABLED; + } } } } else if (name.equals(TAG_GUEST_RESTRICTIONS)) { |