Non-managed profiles autoapply USER_SETUP_COMPLETE
Profiles, other than managed profiles, typically do not go through SetupWizard or have a DPC-guided setup flow. Consequently, there is no app that sets the USER_SETUP_COMPLETE secure setting for them, which leads to oddities. For such profiles, we should automatically consider them as being "setup complete", so we set the USER_SETUP_COMPLETE setting as creation time. Bug: 276761898 Test: atest atest com.android.server.pm.UserManagerTest#testCloneUser Change-Id: I9245334986f520f4c3a4eaab454769149ae07729
This commit is contained in:
@@ -136,6 +136,7 @@ public final class UserTypeFactory {
|
||||
com.android.internal.R.color.system_neutral2_900)
|
||||
.setDefaultRestrictions(null)
|
||||
.setDefaultCrossProfileIntentFilters(getDefaultCloneCrossProfileIntentFilter())
|
||||
.setDefaultSecureSettings(getDefaultNonManagedProfileSecureSettings())
|
||||
.setDefaultUserProperties(new UserProperties.Builder()
|
||||
.setStartWithParent(true)
|
||||
.setShowInLauncher(UserProperties.SHOW_IN_LAUNCHER_WITH_PARENT)
|
||||
@@ -216,7 +217,8 @@ public final class UserTypeFactory {
|
||||
com.android.internal.R.color.profile_badge_1_dark,
|
||||
com.android.internal.R.color.profile_badge_2_dark,
|
||||
com.android.internal.R.color.profile_badge_3_dark)
|
||||
.setDefaultRestrictions(restrictions);
|
||||
.setDefaultRestrictions(restrictions)
|
||||
.setDefaultSecureSettings(getDefaultNonManagedProfileSecureSettings());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -337,6 +339,15 @@ public final class UserTypeFactory {
|
||||
return DefaultCrossProfileIntentFiltersUtils.getDefaultCloneProfileFilters();
|
||||
}
|
||||
|
||||
/** Gets a default bundle, keyed by Settings.Secure String names, for non-managed profiles. */
|
||||
private static Bundle getDefaultNonManagedProfileSecureSettings() {
|
||||
final Bundle settings = new Bundle();
|
||||
// Non-managed profiles go through neither SetupWizard nor DPC flows, so we automatically
|
||||
// mark them as setup.
|
||||
settings.putString(android.provider.Settings.Secure.USER_SETUP_COMPLETE, "1");
|
||||
return settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the given xml parser to obtain device user-type customization, and updates the given
|
||||
* map of {@link UserTypeDetails.Builder}s accordingly.
|
||||
|
||||
@@ -178,6 +178,8 @@ public final class UserManagerTest {
|
||||
UserHandle.of(userInfo.id));
|
||||
assertThat(userContext.getSystemService(
|
||||
UserManager.class).isMediaSharedWithParent()).isTrue();
|
||||
assertThat(Settings.Secure.getInt(userContext.getContentResolver(),
|
||||
Settings.Secure.USER_SETUP_COMPLETE, 0)).isEqualTo(1);
|
||||
|
||||
List<UserInfo> list = mUserManager.getUsers();
|
||||
List<UserInfo> cloneUsers = list.stream().filter(
|
||||
|
||||
Reference in New Issue
Block a user