diff options
| -rw-r--r-- | core/java/android/content/pm/UserInfo.java | 4 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java | 19 |
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/content/pm/UserInfo.java b/core/java/android/content/pm/UserInfo.java index 008cfa5e9423..f1506645d10c 100644 --- a/core/java/android/content/pm/UserInfo.java +++ b/core/java/android/content/pm/UserInfo.java @@ -362,6 +362,10 @@ public class UserInfo implements Parcelable { // Don't support switching to an ephemeral user with removal in progress. return false; } + if (preCreated) { + // Don't support switching to pre-created users until they become "real" users. + return false; + } return !isProfile(); } diff --git a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java index ac27a087ba8e..5df856865ff9 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserManagerServiceUserInfoTest.java @@ -153,6 +153,25 @@ public class UserManagerServiceUserInfoTest { assertTrue(mUserManagerService.isUserOfType(testId, typeName)); } + /** Test UserInfo.supportsSwitchTo() for precreated users. */ + @Test + public void testSupportSwitchTo_preCreated() throws Exception { + UserInfo userInfo = createUser(100, FLAG_FULL, null); + userInfo.preCreated = true; + assertFalse("Switching to a precreated user should be disabled", + userInfo.supportsSwitchTo()); + + userInfo.preCreated = false; + assertTrue("Switching to a full, real user should be allowed", userInfo.supportsSwitchTo()); + } + + /** Test UserInfo.supportsSwitchTo() for profiles. */ + @Test + public void testSupportSwitchTo_profile() throws Exception { + UserInfo userInfo = createUser(100, FLAG_PROFILE, null); + assertFalse("Switching to a profiles should be disabled", userInfo.supportsSwitchTo()); + } + /** Tests upgradeIfNecessaryLP (but without locking) for upgrading from version 8 to 9+. */ @Test public void testUpgradeIfNecessaryLP_9() { |