Revert "Improve multi user settings screen"
This reverts commit d19dc306dd
.
Reason for revert: this CL made Settings the test cases called shadowUserManager.hasUserRestriction()
https://sponge.corp.google.com/target?show=FAILED&sortBy=STATUS&id=07150153-ccb7-4215-a9f8-eed31e44c66f&target=RunSettingsRoboTests1-test-output
Bug: 142798722
Change-Id: I3937a07ee35a472cadd6db8cd0177e08e63516a4
This commit is contained in:
@@ -21,16 +21,18 @@ import android.graphics.drawable.Drawable;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
import com.android.settingslib.RestrictedPreference;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* Preference for a user that appear on {@link UserSettings} screen.
|
||||
*/
|
||||
public class UserPreference extends RestrictedPreference {
|
||||
private static final int ALPHA_ENABLED = 255;
|
||||
private static final int ALPHA_DISABLED = 102;
|
||||
@@ -42,7 +44,8 @@ public class UserPreference extends RestrictedPreference {
|
||||
|
||||
if (p1 == null) {
|
||||
return -1;
|
||||
} else if (p2 == null) {
|
||||
}
|
||||
else if (p2 == null) {
|
||||
return 1;
|
||||
}
|
||||
int sn1 = p1.getSerialNumber();
|
||||
@@ -55,15 +58,26 @@ public class UserPreference extends RestrictedPreference {
|
||||
return 0;
|
||||
};
|
||||
|
||||
private OnClickListener mDeleteClickListener;
|
||||
private OnClickListener mSettingsClickListener;
|
||||
private int mSerialNumber = -1;
|
||||
private int mUserId = USERID_UNKNOWN;
|
||||
static final int SETTINGS_ID = R.id.manage_user;
|
||||
static final int DELETE_ID = R.id.trash_user;
|
||||
|
||||
public UserPreference(Context context, AttributeSet attrs) {
|
||||
this(context, attrs, USERID_UNKNOWN);
|
||||
this(context, attrs, USERID_UNKNOWN, null, null);
|
||||
}
|
||||
|
||||
UserPreference(Context context, AttributeSet attrs, int userId) {
|
||||
UserPreference(Context context, AttributeSet attrs, int userId,
|
||||
OnClickListener settingsListener,
|
||||
OnClickListener deleteListener) {
|
||||
super(context, attrs);
|
||||
if (deleteListener != null || settingsListener != null) {
|
||||
setWidgetLayoutResource(R.layout.restricted_preference_user_delete_widget);
|
||||
}
|
||||
mDeleteClickListener = deleteListener;
|
||||
mSettingsClickListener = settingsListener;
|
||||
mUserId = userId;
|
||||
useAdminDisabledSummary(true);
|
||||
}
|
||||
@@ -78,13 +92,62 @@ public class UserPreference extends RestrictedPreference {
|
||||
|
||||
@Override
|
||||
protected boolean shouldHideSecondTarget() {
|
||||
return true;
|
||||
if (isDisabledByAdmin()) {
|
||||
// Disabled by admin, show no secondary target.
|
||||
return true;
|
||||
}
|
||||
if (canDeleteUser()) {
|
||||
// Need to show delete user target so don't hide.
|
||||
return false;
|
||||
}
|
||||
// Hide if don't have advanced setting listener.
|
||||
return mSettingsClickListener == null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(PreferenceViewHolder view) {
|
||||
super.onBindViewHolder(view);
|
||||
dimIcon(isDisabledByAdmin());
|
||||
final boolean disabledByAdmin = isDisabledByAdmin();
|
||||
dimIcon(disabledByAdmin);
|
||||
View userDeleteWidget = view.findViewById(R.id.user_delete_widget);
|
||||
if (userDeleteWidget != null) {
|
||||
userDeleteWidget.setVisibility(disabledByAdmin ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
if (!disabledByAdmin) {
|
||||
View deleteDividerView = view.findViewById(R.id.divider_delete);
|
||||
View manageDividerView = view.findViewById(R.id.divider_manage);
|
||||
View deleteView = view.findViewById(R.id.trash_user);
|
||||
if (deleteView != null) {
|
||||
if (canDeleteUser()) {
|
||||
deleteView.setVisibility(View.VISIBLE);
|
||||
deleteDividerView.setVisibility(View.VISIBLE);
|
||||
deleteView.setOnClickListener(mDeleteClickListener);
|
||||
deleteView.setTag(this);
|
||||
} else {
|
||||
deleteView.setVisibility(View.GONE);
|
||||
deleteDividerView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
ImageView manageView = (ImageView) view.findViewById(R.id.manage_user);
|
||||
if (manageView != null) {
|
||||
if (mSettingsClickListener != null) {
|
||||
manageView.setVisibility(View.VISIBLE);
|
||||
manageDividerView.setVisibility(mDeleteClickListener == null
|
||||
? View.VISIBLE : View.GONE);
|
||||
manageView.setOnClickListener(mSettingsClickListener);
|
||||
manageView.setTag(this);
|
||||
} else {
|
||||
manageView.setVisibility(View.GONE);
|
||||
manageDividerView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean canDeleteUser() {
|
||||
return mDeleteClickListener != null
|
||||
&& !RestrictedLockUtilsInternal.hasBaseUserRestriction(getContext(),
|
||||
UserManager.DISALLOW_REMOVE_USER, UserHandle.myUserId());
|
||||
}
|
||||
|
||||
private int getSerialNumber() {
|
||||
|
Reference in New Issue
Block a user