Don't allow creating guest when can't create user

When user restriction is on to disable adding user also stop the
user from creating guests.

Bug: 16782635
Change-Id: I0396172867e2e217ada9ef747ea62d0c0382c5dd
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 7dc83ef..30269cd 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -807,7 +807,19 @@
             mUserListCategory.addPreference(pref);
         }
 
-        if (!mIsGuest) {
+        boolean showGuestPreference = !mIsGuest;
+        // If user has DISALLOW_ADD_USER don't allow creating a guest either.
+        if (showGuestPreference && mUserManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) {
+            showGuestPreference = false;
+            // If guest already exists, no user creation needed.
+            for (UserInfo user : users) {
+                if (user.isGuest()) {
+                    showGuestPreference = true;
+                    break;
+                }
+            }
+        }
+        if (showGuestPreference) {
             // Add a virtual Guest user for guest defaults
             Preference pref = new UserPreference(getActivity(), null,
                     UserPreference.USERID_GUEST_DEFAULTS,
@@ -936,6 +948,10 @@
             }
         }
         // No guest user. Create one.
+        if (mUserManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) {
+            Log.i(TAG, "Blocking guest creation because it is restricted");
+            return;
+        }
         UserInfo guestUser = mUserManager.createGuest(getActivity(),
                     getResources().getString(R.string.user_guest));
         if (guestUser != null) {