Add more policy transparency for disallow_remove_user restriction.

Bug: 27784015
Change-Id: I2386efbf521ee8e73326006e78b0146341745e2b
This commit is contained in:
Sudheer Shanka
2016-03-22 17:24:07 -07:00
parent 2bfbcfae13
commit b5c92147ce
2 changed files with 12 additions and 4 deletions

View File

@@ -28,12 +28,11 @@ import android.view.View.OnClickListener;
import android.widget.ImageView;
import com.android.settings.R;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreference;
import java.util.Comparator;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class UserPreference extends RestrictedPreference {
private static final int ALPHA_ENABLED = 255;
private static final int ALPHA_DISABLED = 102;
@@ -103,7 +102,8 @@ public class UserPreference extends RestrictedPreference {
View deleteView = view.findViewById(R.id.trash_user);
if (deleteView != null) {
if (mDeleteClickListener != null
&& !um.hasUserRestriction(UserManager.DISALLOW_REMOVE_USER)) {
&& !RestrictedLockUtils.hasBaseUserRestriction(getContext(),
UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId())) {
deleteView.setOnClickListener(mDeleteClickListener);
deleteView.setTag(this);
} else {

View File

@@ -970,7 +970,15 @@ public class UserSettings extends SettingsPreferenceFragment
int userId = ((UserPreference) v.getTag()).getUserId();
switch (v.getId()) {
case UserPreference.DELETE_ID:
final EnforcedAdmin removeDisallowedAdmin =
RestrictedLockUtils.checkIfRestrictionEnforced(getContext(),
UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId());
if (removeDisallowedAdmin != null) {
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
removeDisallowedAdmin);
} else {
onRemoveUserClicked(userId);
}
break;
case UserPreference.SETTINGS_ID:
onManageUserClicked(userId, false);