summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/settings/users/UserSettings.java21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 00809e4461..931fdcf28c 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -107,6 +107,7 @@ public class UserSettings extends SettingsPreferenceFragment
private static final String KEY_USER_LIST = "user_list";
private static final String KEY_USER_ME = "user_me";
+ private static final String KEY_USER_GUEST = "user_guest";
private static final String KEY_ADD_USER = "user_add";
private static final String KEY_ADD_USER_WHEN_LOCKED = "user_settings_add_users_when_locked";
@@ -144,9 +145,12 @@ public class UserSettings extends SettingsPreferenceFragment
USER_REMOVED_INTENT_FILTER.addAction(Intent.ACTION_USER_INFO_CHANGED);
}
- private PreferenceGroup mUserListCategory;
- private UserPreference mMePreference;
- private RestrictedPreference mAddUser;
+ @VisibleForTesting
+ PreferenceGroup mUserListCategory;
+ @VisibleForTesting
+ UserPreference mMePreference;
+ @VisibleForTesting
+ RestrictedPreference mAddUser;
private int mRemovingUserId = -1;
private int mAddedUserId = 0;
private boolean mAddingUser;
@@ -800,7 +804,8 @@ public class UserSettings extends SettingsPreferenceFragment
removeThisUser();
}
- private void updateUserList() {
+ @VisibleForTesting
+ void updateUserList() {
final Context context = getActivity();
if (context == null) {
return;
@@ -863,7 +868,7 @@ public class UserSettings extends SettingsPreferenceFragment
// set.
if (!mUserCaps.mDisallowSwitchUser) {
pref.setOnPreferenceClickListener(this);
- pref.setSelectable(true);
+ pref.setSelectable(mUserManager.canSwitchUsers());
}
} else if (user.isRestricted()) {
pref.setSummary(R.string.user_summary_restricted_profile);
@@ -902,6 +907,7 @@ public class UserSettings extends SettingsPreferenceFragment
null /* delete icon handler */);
pref.setTitle(R.string.user_guest);
pref.setIcon(getEncircledDefaultIcon());
+ pref.setKey(KEY_USER_GUEST);
userPreferences.add(pref);
if (mUserCaps.mDisallowAddUser) {
pref.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
@@ -910,6 +916,9 @@ public class UserSettings extends SettingsPreferenceFragment
} else {
pref.setDisabledByAdmin(null);
}
+ if (!mUserManager.canSwitchUsers()) {
+ pref.setSelectable(false);
+ }
int finalGuestId = guestId;
pref.setOnPreferenceClickListener(preference -> {
int id = finalGuestId;
@@ -969,7 +978,7 @@ public class UserSettings extends SettingsPreferenceFragment
if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin) &&
Utils.isDeviceProvisioned(context)) {
boolean moreUsers = mUserManager.canAddMoreUsers();
- mAddUser.setEnabled(moreUsers && !mAddingUser);
+ mAddUser.setEnabled(moreUsers && !mAddingUser && mUserManager.canSwitchUsers());
if (!moreUsers) {
mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers()));
} else {