Part2 - Don't add padlock if the restriction is not set by admin.
Bug: 26687435
Change-Id: I85ef42e1ff1216791d1393a975e8559191b3781f
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 4eb4f7d..274ce59 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -169,7 +169,9 @@
} catch (IllegalArgumentException ignored) {
isCellBroadcastAppLinkEnabled = false; // CMAS app not installed
}
- if (!mUserManager.isAdminUser() || !isCellBroadcastAppLinkEnabled) {
+ if (!mUserManager.isAdminUser() || !isCellBroadcastAppLinkEnabled ||
+ RestrictedLockUtils.hasBaseUserRestriction(mContext,
+ UserManager.DISALLOW_CONFIG_CELL_BROADCASTS, UserHandle.myUserId())) {
removePreference(KEY_CELL_BROADCAST_SETTINGS);
}
initRingtones();
@@ -193,12 +195,15 @@
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(mContext,
UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
+ final boolean hasBaseRestriction = RestrictedLockUtils.hasBaseUserRestriction(mContext,
+ UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
for (String key : RESTRICTED_KEYS) {
Preference pref = findPreference(key);
- if (pref instanceof RestrictedPreference) {
+ if (pref != null) {
+ pref.setEnabled(!hasBaseRestriction);
+ }
+ if (pref instanceof RestrictedPreference && !hasBaseRestriction) {
((RestrictedPreference) pref).setDisabledByAdmin(admin);
- } else if (pref != null) {
- pref.setEnabled(admin == null);
}
}
RestrictedPreference broadcastSettingsPref = (RestrictedPreference) findPreference(
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 8ff26f7..a871297 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -767,7 +767,9 @@
}
// Check if Guest tile should be added.
- if (!mUserCaps.mIsGuest && (mUserCaps.mCanAddGuest || mUserCaps.mDisallowAddUser)) {
+ if (!mUserCaps.mIsGuest && (mUserCaps.mCanAddGuest ||
+ mUserCaps.mDisallowAddUserSetByAdmin)) {
+ // Add a virtual Guest user for guest defaults
UserPreference pref = new UserPreference(getPrefContext(), null,
UserPreference.USERID_GUEST_DEFAULTS,
mUserCaps.mIsAdmin && voiceCapable? this : null /* settings icon handler */,
@@ -810,7 +812,7 @@
}
// Append Add user to the end of the list
- if (mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUser) {
+ if (mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin) {
boolean moreUsers = mUserManager.canAddMoreUsers();
mAddUser.setOrder(Preference.DEFAULT_ORDER);
preferenceScreen.addPreference(mAddUser);
@@ -825,7 +827,8 @@
mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
}
}
- if (mUserCaps.mIsAdmin) {
+ if (mUserCaps.mIsAdmin &&
+ (!mUserCaps.mDisallowAddUser || mUserCaps.mDisallowAddUserSetByAdmin)) {
mLockScreenSettings.setOrder(Preference.DEFAULT_ORDER);
preferenceScreen.addPreference(mLockScreenSettings);
mAddUserWhenLocked.setChecked(Settings.Global.getInt(getContentResolver(),
@@ -1006,6 +1009,7 @@
boolean mIsGuest;
boolean mCanAddGuest;
boolean mDisallowAddUser;
+ boolean mDisallowAddUserSetByAdmin;
EnforcedAdmin mEnforcedAdmin;
private UserCapabilities() {}
@@ -1023,7 +1027,12 @@
caps.mIsAdmin = myUserInfo.isAdmin();
caps.mEnforcedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(context,
UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
- caps.mDisallowAddUser = (caps.mEnforcedAdmin != null);
+ final boolean hasBaseUserRestriction = RestrictedLockUtils.hasBaseUserRestriction(
+ context, UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
+ caps.mDisallowAddUserSetByAdmin =
+ caps.mEnforcedAdmin != null && !hasBaseUserRestriction;
+ caps.mDisallowAddUser =
+ (caps.mEnforcedAdmin != null || hasBaseUserRestriction);
if (!caps.mIsAdmin || UserManager.getMaxSupportedUsers() < 2
|| !UserManager.supportsMultipleUsers()
|| caps.mDisallowAddUser) {
@@ -1103,7 +1112,7 @@
data.screenTitle = res.getString(R.string.user_settings_title);
result.add(data);
- if (userCaps.mCanAddUser || userCaps.mDisallowAddUser) {
+ if (userCaps.mCanAddUser || userCaps.mDisallowAddUserSetByAdmin) {
data = new SearchIndexableRaw(context);
data.title = res.getString(userCaps.mCanAddRestrictedProfile ?
R.string.user_add_user_or_profile_menu