Fixing a bug in maximum users allowed logic on the device.

We need to use CarUserManagerHelper.getMaxSupportedUsers instead of
UserManager.getMaxSupportedUsers() to correctly take user 0 into account
in headles system user model.

Bug: 80197830
Test: atest CarUserManagerHelperTest
Change-Id: I167aa03d2c6ed03dc225cb4686a07395518752b8
diff --git a/car-lib/src/android/car/user/CarUserManagerHelper.java b/car-lib/src/android/car/user/CarUserManagerHelper.java
index 94c701d..ddd5546 100644
--- a/car-lib/src/android/car/user/CarUserManagerHelper.java
+++ b/car-lib/src/android/car/user/CarUserManagerHelper.java
@@ -427,14 +427,14 @@
      */
     public boolean isUserLimitReached() {
         int countNonGuestUsers = getAllUsersExceptGuests().size();
-        int maxSupportedUsers = UserManager.getMaxSupportedUsers();
+        int maxSupportedUsers = getMaxSupportedUsers();
 
         if (countNonGuestUsers > maxSupportedUsers) {
             Log.e(TAG, "There are more users on the device than allowed.");
             return true;
         }
 
-        return getAllUsersExceptGuests().size() == UserManager.getMaxSupportedUsers();
+        return getAllUsersExceptGuests().size() == maxSupportedUsers;
     }
 
     private int getManagedProfilesCount() {
diff --git a/tests/carservice_unit_test/src/com/android/car/CarUserManagerHelperTest.java b/tests/carservice_unit_test/src/com/android/car/CarUserManagerHelperTest.java
index da7cc2c..c7fb3fd 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarUserManagerHelperTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarUserManagerHelperTest.java
@@ -313,6 +313,25 @@
     }
 
     @Test
+    public void testHeadlessSystemUser_IsUserLimitReached() {
+        SystemProperties.set("android.car.systemuser.headless", "true");
+        UserInfo user1 = createUserInfoForId(10);
+        UserInfo user2 =
+                new UserInfo(/* id= */ 11, /* name = */ "user11", UserInfo.FLAG_MANAGED_PROFILE);
+        UserInfo user3 =
+                new UserInfo(/* id= */ 12, /* name = */ "user12", UserInfo.FLAG_MANAGED_PROFILE);
+        UserInfo user4 = createUserInfoForId(13);
+
+        mockGetUsers(mSystemUser, user1, user2, user3, user4);
+
+        SystemProperties.set("fw.max_users", "6");
+        assertThat(mCarUserManagerHelper.isUserLimitReached()).isFalse();
+
+        SystemProperties.set("fw.max_users", "5");
+        assertThat(mCarUserManagerHelper.isUserLimitReached()).isTrue();
+    }
+
+    @Test
     public void testIsUserLimitReachedIgnoresGuests() {
         SystemProperties.set("fw.max_users", "5");