Revert "UM.getAliveUsers to exclude initialised ephemeral noncurrent users."
This reverts commit d7e8f3d6a0fcd3c1cc43a4b3e1e7501141be7ed8.
Reason for revert: didn't fix the problem, will try to find a better solution
Bug: 327972305
Change-Id: Ia74864257b35fdc3c6987aca88d46311087780d5
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index ba845da..3c702b4 100644
--- a/services/core/java/com/android/server/pm/UserManagerService.java
+++ b/services/core/java/com/android/server/pm/UserManagerService.java
@@ -1371,7 +1371,7 @@
for (int i = 0; i < userSize; i++) {
UserInfo ui = mUsers.valueAt(i).info;
if ((excludePartial && ui.partial)
- || (excludeDying && isDyingLU(ui))
+ || (excludeDying && mRemovingUserIds.get(ui.id))
|| (excludePreCreated && ui.preCreated)) {
continue;
}
@@ -1381,17 +1381,6 @@
}
}
- @GuardedBy("mUsersLock")
- private boolean isDyingLU(UserInfo ui) {
- if (mRemovingUserIds.get(ui.id)) {
- return true;
- }
- if (ui.isEphemeral() && ui.isInitialized() && ui.id != getCurrentUserId()) {
- return true;
- }
- return false;
- }
-
@Override
public List<UserInfo> getProfiles(@UserIdInt int userId, boolean enabledOnly) {
boolean returnFullInfo;
diff --git a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
index 7d58a2e..79f1574 100644
--- a/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceTest.java
@@ -778,49 +778,6 @@
}
@Test
- public void testGetAliveUsers_shouldExcludeInitialisedEphemeralNonCurrentUsers() {
- assertWithMessage("Ephemeral user should not exist at all initially")
- .that(mUmi.getUsers(false).stream().anyMatch(u -> u.id == USER_ID))
- .isFalse();
-
- // add an ephemeral full user
- TestUserData userData = new TestUserData(USER_ID);
- userData.info.flags = UserInfo.FLAG_FULL | UserInfo.FLAG_EPHEMERAL;
- addUserData(userData);
-
- assertWithMessage("Ephemeral user should exist as alive after being created")
- .that(mUmi.getUsers(true).stream().anyMatch(u -> u.id == USER_ID))
- .isTrue();
-
- // mock switch to the user (mark it as initialized & make it the current user)
- userData.info.flags |= UserInfo.FLAG_INITIALIZED;
- mockCurrentUser(USER_ID);
-
- assertWithMessage("Ephemeral user should still exist as alive after being switched to")
- .that(mUmi.getUsers(true).stream().anyMatch(u -> u.id == USER_ID))
- .isTrue();
-
- // switch away from the user
- mockCurrentUser(OTHER_USER_ID);
-
- assertWithMessage("Ephemeral user should not exist as alive after getting switched away")
- .that(mUmi.getUsers(true).stream().anyMatch(u -> u.id == USER_ID))
- .isFalse();
-
- assertWithMessage("Ephemeral user should still exist as dying after getting switched away")
- .that(mUmi.getUsers(false).stream().anyMatch(u -> u.id == USER_ID))
- .isTrue();
-
- // finally remove the user
- mUms.removeUserInfo(USER_ID);
-
- assertWithMessage("Ephemeral user should not exist at all after cleanup")
- .that(mUmi.getUsers(false).stream().anyMatch(u -> u.id == USER_ID))
- .isFalse();
- }
-
-
- @Test
@RequiresFlagsEnabled({android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION, Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES})
public void testCreatePrivateProfileOnHeadlessSystemUser_shouldAllowCreation() {