Loading services/core/java/com/android/server/pm/UserManagerService.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -9223,7 +9223,10 @@ public class UserManagerService extends IUserManager.Stub { * @return whether it succeeded. * @return whether it succeeded. */ */ boolean setMainUser(@UserIdInt int userId) { boolean setMainUser(@UserIdInt int userId) { if (!android.multiuser.Flags.demoteMainUser()) { // NOTE: ideally it should check just for demoteMainUser(), but then it wouldn't allow the // main user to be promoted when it's needed while rolling back this flag if (!android.multiuser.Flags.demoteMainUser() && !android.multiuser.Flags.createInitialUser()) { Slogf.d(LOG_TAG, "setMainUser(%d): ignoring because flag is disabled", userId); Slogf.d(LOG_TAG, "setMainUser(%d): ignoring because flag is disabled", userId); return false; return false; } } Loading services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceMockedTest.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.content.pm.UserInfo.FLAG_ADMIN; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.flagsToString; import static android.content.pm.UserInfo.flagsToString; import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_CREATE_INITIAL_USER; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; Loading Loading @@ -1546,6 +1547,14 @@ public final class UserManagerServiceMockedTest { expectUserJourneyLogged(userId, USER_JOURNEY_PROMOTE_MAIN_USER); expectUserJourneyLogged(userId, USER_JOURNEY_PROMOTE_MAIN_USER); } } @Test @DisableFlags(FLAG_DEMOTE_MAIN_USER) @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testSetMainUser_secondaryFlag() { // Should behave the same as when the "primary" flag is enabled testSetMainUser(); } @Test @Test @EnableFlags(FLAG_DEMOTE_MAIN_USER) @EnableFlags(FLAG_DEMOTE_MAIN_USER) public void testSetMainUser_hasMainUser() { public void testSetMainUser_hasMainUser() { Loading Loading @@ -1596,8 +1605,8 @@ public final class UserManagerServiceMockedTest { } } @Test @Test @DisableFlags(FLAG_DEMOTE_MAIN_USER) @DisableFlags({FLAG_DEMOTE_MAIN_USER, FLAG_CREATE_INITIAL_USER}) public void testSetMainUser_flagDisabled() { public void testSetMainUser_flagDemoteMainUserDisabled() { assumeDoesntHaveMainUser(); assumeDoesntHaveMainUser(); var adminUser = createAdminUser(); var adminUser = createAdminUser(); int userId = adminUser.id; int userId = adminUser.id; Loading Loading
services/core/java/com/android/server/pm/UserManagerService.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -9223,7 +9223,10 @@ public class UserManagerService extends IUserManager.Stub { * @return whether it succeeded. * @return whether it succeeded. */ */ boolean setMainUser(@UserIdInt int userId) { boolean setMainUser(@UserIdInt int userId) { if (!android.multiuser.Flags.demoteMainUser()) { // NOTE: ideally it should check just for demoteMainUser(), but then it wouldn't allow the // main user to be promoted when it's needed while rolling back this flag if (!android.multiuser.Flags.demoteMainUser() && !android.multiuser.Flags.createInitialUser()) { Slogf.d(LOG_TAG, "setMainUser(%d): ignoring because flag is disabled", userId); Slogf.d(LOG_TAG, "setMainUser(%d): ignoring because flag is disabled", userId); return false; return false; } } Loading
services/tests/mockingservicestests/src/com/android/server/pm/UserManagerServiceMockedTest.java +11 −2 Original line number Original line Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static android.content.pm.UserInfo.FLAG_ADMIN; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.FLAG_FULL; import static android.content.pm.UserInfo.flagsToString; import static android.content.pm.UserInfo.flagsToString; import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_BLOCK_PRIVATE_SPACE_CREATION; import static android.multiuser.Flags.FLAG_CREATE_INITIAL_USER; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DEMOTE_MAIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_DISALLOW_REMOVING_LAST_ADMIN_USER; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; import static android.multiuser.Flags.FLAG_ENABLE_PRIVATE_SPACE_FEATURES; Loading Loading @@ -1546,6 +1547,14 @@ public final class UserManagerServiceMockedTest { expectUserJourneyLogged(userId, USER_JOURNEY_PROMOTE_MAIN_USER); expectUserJourneyLogged(userId, USER_JOURNEY_PROMOTE_MAIN_USER); } } @Test @DisableFlags(FLAG_DEMOTE_MAIN_USER) @EnableFlags(FLAG_CREATE_INITIAL_USER) public void testSetMainUser_secondaryFlag() { // Should behave the same as when the "primary" flag is enabled testSetMainUser(); } @Test @Test @EnableFlags(FLAG_DEMOTE_MAIN_USER) @EnableFlags(FLAG_DEMOTE_MAIN_USER) public void testSetMainUser_hasMainUser() { public void testSetMainUser_hasMainUser() { Loading Loading @@ -1596,8 +1605,8 @@ public final class UserManagerServiceMockedTest { } } @Test @Test @DisableFlags(FLAG_DEMOTE_MAIN_USER) @DisableFlags({FLAG_DEMOTE_MAIN_USER, FLAG_CREATE_INITIAL_USER}) public void testSetMainUser_flagDisabled() { public void testSetMainUser_flagDemoteMainUserDisabled() { assumeDoesntHaveMainUser(); assumeDoesntHaveMainUser(); var adminUser = createAdminUser(); var adminUser = createAdminUser(); int userId = adminUser.id; int userId = adminUser.id; Loading