From 3ade4a3ad7cafe042105276186c4c3a762eb45a6 Mon Sep 17 00:00:00 2001 From: Tetiana Meronyk Date: Mon, 24 Oct 2022 10:54:43 +0000 Subject: [PATCH] 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 --- .../settings/users/MultiUserSwitchBarController.java | 5 +++++ src/com/android/settings/users/UserSettings.java | 2 +- .../com/android/settings/users/UserSettingsTest.java | 12 ++++-------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java index 58de14963fa..33651c31fc4 100644 --- a/src/com/android/settings/users/MultiUserSwitchBarController.java +++ b/src/com/android/settings/users/MultiUserSwitchBarController.java @@ -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()); diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 1d19fcdf2fb..e6a5e873a34 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java index ddbcea1a741..54f579c4e4a 100644 --- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java +++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java @@ -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 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