} 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();
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(
}
// 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 */,
}
// 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);
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(),
boolean mIsGuest;
boolean mCanAddGuest;
boolean mDisallowAddUser;
+ boolean mDisallowAddUserSetByAdmin;
EnforcedAdmin mEnforcedAdmin;
private UserCapabilities() {}
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) {
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