Disable toggle on managed device with "Disallow add user" or "Disallow switch user"
Bug: 244279615 Test: croot && make RunSettingsRoboTests -j40 ROBOTEST_FILTER="com.android.settings.users.MultiUserSwitchBarControllerTest" Change-Id: I3e89c8fac1828b4c9bb1c7df08687684981bda11
This commit is contained in:
@@ -57,6 +57,11 @@ public class MultiUserSwitchBarController implements SwitchWidgetController.OnSw
|
||||
mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
|
||||
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
|
||||
UserHandle.myUserId()));
|
||||
|
||||
} else if (mUserCapabilities.mDisallowAddUser) {
|
||||
mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
|
||||
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_ADD_USER,
|
||||
UserHandle.myUserId()));
|
||||
} else {
|
||||
mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
|
||||
&& !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
|
||||
|
@@ -1489,7 +1489,7 @@ public class UserSettings extends SettingsPreferenceFragment
|
||||
|
||||
private void updateAddUserCommon(Context context, RestrictedPreference addUser,
|
||||
boolean canAddRestrictedProfile) {
|
||||
if ((mUserCaps.mCanAddUser || mUserCaps.mDisallowAddUserSetByAdmin)
|
||||
if ((mUserCaps.mCanAddUser || !mUserCaps.mDisallowAddUserSetByAdmin)
|
||||
&& WizardManagerHelper.isDeviceProvisioned(context)
|
||||
&& mUserCaps.mUserSwitcherEnabled) {
|
||||
addUser.setVisible(true);
|
||||
|
@@ -402,7 +402,7 @@ public class UserSettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateUserList_addUserDisallowedByAdmin_shouldShowDisabledAddUser() {
|
||||
public void updateUserList_addUserDisallowedByAdmin_shouldNotShowAddUser() {
|
||||
RestrictedLockUtils.EnforcedAdmin enforcedAdmin = mock(
|
||||
RestrictedLockUtils.EnforcedAdmin.class);
|
||||
mUserCapabilities.mEnforcedAdmin = enforcedAdmin;
|
||||
@@ -413,20 +413,16 @@ public class UserSettingsTest {
|
||||
|
||||
mFragment.updateUserList();
|
||||
|
||||
verify(mAddUserPreference).setVisible(true);
|
||||
ArgumentCaptor<RestrictedLockUtils.EnforcedAdmin> captor = ArgumentCaptor.forClass(
|
||||
RestrictedLockUtils.EnforcedAdmin.class);
|
||||
verify(mAddUserPreference).setDisabledByAdmin(captor.capture());
|
||||
assertThat(captor.getValue()).isEqualTo(enforcedAdmin);
|
||||
verify(mAddUserPreference).setVisible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateUserList_cannotAddUserButCanSwitchUser_shouldNotShowAddUser() {
|
||||
public void updateUserList_cannotAddUserButCanSwitchUser_shouldShowDisabledAddUser() {
|
||||
mUserCapabilities.mCanAddUser = false;
|
||||
|
||||
mFragment.updateUserList();
|
||||
|
||||
verify(mAddUserPreference).setVisible(false);
|
||||
verify(mAddUserPreference).setEnabled(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user