diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 5e961a6d20d..6e3174d8272 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -964,9 +964,10 @@ public class UserSettings extends SettingsPreferenceFragment mAddUserWhenLockedPreferenceController.getPreferenceKey()); mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen); mMultiUserFooterPreferenceController.updateState(null /* preference */); + mAddUser.setVisible(mUserCaps.mCanAddUser && Utils.isDeviceProvisioned(context) + && mUserCaps.mUserSwitcherEnabled); mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled); if (!mUserCaps.mUserSwitcherEnabled) { - mAddUser.setVisible(false); return; } diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java index 413d77154e3..02c279e4b23 100644 --- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java +++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java @@ -212,4 +212,31 @@ public class UserSettingsTest { } + @Test + public void updateUserList_canAddUserAndSwitchUser_shouldShowAddUser() { + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.DEVICE_PROVISIONED, 1); + final RestrictedPreference addUser = mock(RestrictedPreference.class); + + mUserCapabilities.mCanAddUser = true; + mUserCapabilities.mDisallowAddUser = false; + mUserCapabilities.mUserSwitcherEnabled = true; + + ReflectionHelpers.setField(mFragment, "mUserManager", mUserManager); + ReflectionHelpers.setField(mFragment, "mUserCaps", mUserCapabilities); + ReflectionHelpers.setField(mFragment, "mDefaultIconDrawable", mDefaultIconDrawable); + ReflectionHelpers.setField(mFragment, "mAddingUser", false); + mFragment.mMePreference = mMePreference; + mFragment.mUserListCategory = mock(PreferenceCategory.class); + mFragment.mAddUser = addUser; + + doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen(); + doReturn("Test summary").when(mFragment).getString(anyInt(), anyInt()); + + mFragment.updateUserList(); + + verify(addUser).setVisible(true); + + } + }