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

View File

@@ -970,7 +970,15 @@ public class UserSettings extends SettingsPreferenceFragment
int userId = ((UserPreference) v.getTag()).getUserId(); int userId = ((UserPreference) v.getTag()).getUserId();
switch (v.getId()) { switch (v.getId()) {
case UserPreference.DELETE_ID: 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; break;
case UserPreference.SETTINGS_ID: case UserPreference.SETTINGS_ID:
onManageUserClicked(userId, false); onManageUserClicked(userId, false);