From a766bfa3de1dd87e15c9f0b5bedbdf10735e59ff Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 6 Oct 2014 14:16:11 -0700 Subject: [PATCH] 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 --- .../android/settings/users/UserDetailsSettings.java | 12 ++++++++++++ src/com/android/settings/users/UserSettings.java | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java index 8a070c2e5ec..366b628ac88 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.R; 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 @@ public class UserDetailsSettings extends SettingsPreferenceFragment // 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 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 872f71ff450..b95c3978c8d 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -397,7 +397,7 @@ public class UserSettings extends SettingsPreferenceFragment } 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 @@ public class UserSettings extends SettingsPreferenceFragment } 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);