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);