From b5c92147cee60d2287c4ccd5294d6c2d5ba3bec5 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Tue, 22 Mar 2016 17:24:07 -0700 Subject: [PATCH] Add more policy transparency for disallow_remove_user restriction. Bug: 27784015 Change-Id: I2386efbf521ee8e73326006e78b0146341745e2b --- src/com/android/settings/users/UserPreference.java | 6 +++--- src/com/android/settings/users/UserSettings.java | 10 +++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/users/UserPreference.java b/src/com/android/settings/users/UserPreference.java index 1f24018816..47f8ff9279 100644 --- a/src/com/android/settings/users/UserPreference.java +++ b/src/com/android/settings/users/UserPreference.java @@ -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 { diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 1c0260fe35..2163245de7 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -970,7 +970,15 @@ public class UserSettings extends SettingsPreferenceFragment int userId = ((UserPreference) v.getTag()).getUserId(); switch (v.getId()) { case UserPreference.DELETE_ID: - onRemoveUserClicked(userId); + 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); -- 2.11.0