Set default restrictions for a newly created user
Call a different createUser version that sets up the defaults.
Make sure any previously created guest also gets the restrictions
as soon as they are changed.
Bug: 17832802
Bug: 17891763
Change-Id: I3eaa9e3da32b2f436699db24bb7be2668f1480b3
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index 8a070c2..366b628 100644
--- a/src/com/android/settings/users/UserDetailsSettings.java
+++ b/src/com/android/settings/users/UserDetailsSettings.java
@@ -30,6 +30,8 @@
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
+import java.util.List;
+
/**
* Settings screen for configuring a specific user. It can contain user restrictions
* and deletion controls. It is shown when you tap on the settings icon in the
@@ -122,6 +124,16 @@
// SMS is always disabled for guest
mDefaultGuestRestrictions.putBoolean(UserManager.DISALLOW_SMS, true);
mUserManager.setDefaultGuestRestrictions(mDefaultGuestRestrictions);
+ // Update the guest's restrictions, if there is a guest
+ List<UserInfo> users = mUserManager.getUsers(true);
+ for (UserInfo user: users) {
+ if (user.isGuest()) {
+ UserHandle userHandle = new UserHandle(user.id);
+ Bundle userRestrictions = mUserManager.getUserRestrictions(userHandle);
+ userRestrictions.putAll(mDefaultGuestRestrictions);
+ mUserManager.setUserRestrictions(userRestrictions, userHandle);
+ }
+ }
} else {
// TODO: Show confirmation dialog: b/15761405
UserHandle userHandle = new UserHandle(mUserInfo.id);
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 872f71f..b95c397 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -397,7 +397,7 @@
}
private UserInfo createLimitedUser() {
- UserInfo newUserInfo = mUserManager.createUser(
+ UserInfo newUserInfo = mUserManager.createSecondaryUser(
getResources().getString(R.string.user_new_profile_name),
UserInfo.FLAG_RESTRICTED);
int userId = newUserInfo.id;
@@ -421,7 +421,7 @@
}
private UserInfo createTrustedUser() {
- UserInfo newUserInfo = mUserManager.createUser(
+ UserInfo newUserInfo = mUserManager.createSecondaryUser(
getResources().getString(R.string.user_new_user_name), 0);
if (newUserInfo != null) {
assignDefaultPhoto(newUserInfo);