Merge "Disable toggle on managed device with "Disallow add user" or "Disallow switch user""
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index 58de149..33651c3 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -57,6 +57,11 @@
             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 cb778c9..5f9f2fe 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -1489,7 +1489,7 @@
 
     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 ddbcea1..54f579c 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 @@
     }
 
     @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 @@
 
         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