Fix visibility of AddUser when toggling multiuser.
- when enabling multi user, also need to update the visibility of the Add user preference, but need to check the add user capability as well. Change-Id: Ia243901c7537bdb39ca3a39aed559b003f803e4d Fixes: 115397726 Test: make RunSettingsRoboTests
This commit is contained in:
@@ -964,9 +964,10 @@ public class UserSettings extends SettingsPreferenceFragment
|
|||||||
mAddUserWhenLockedPreferenceController.getPreferenceKey());
|
mAddUserWhenLockedPreferenceController.getPreferenceKey());
|
||||||
mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
|
mAddUserWhenLockedPreferenceController.updateState(addUserOnLockScreen);
|
||||||
mMultiUserFooterPreferenceController.updateState(null /* preference */);
|
mMultiUserFooterPreferenceController.updateState(null /* preference */);
|
||||||
|
mAddUser.setVisible(mUserCaps.mCanAddUser && Utils.isDeviceProvisioned(context)
|
||||||
|
&& mUserCaps.mUserSwitcherEnabled);
|
||||||
mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
|
mUserListCategory.setVisible(mUserCaps.mUserSwitcherEnabled);
|
||||||
if (!mUserCaps.mUserSwitcherEnabled) {
|
if (!mUserCaps.mUserSwitcherEnabled) {
|
||||||
mAddUser.setVisible(false);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user