Move getMaxSupportedRealUsers() to App layer

Moves API to app layer as it is just for a display string.

Fixes: 145228444
Test: atest CarUserManagerHelperTest
Test: atest CarSettingsRoboTests
Change-Id: I440e4a4d3c21b97c3d5c77110d43e6b9c98210c6
This commit is contained in:
Anthony Hugh
2019-11-26 13:22:02 -08:00
parent 0d9dd2b0f3
commit f018e12b68

View File

@@ -296,14 +296,42 @@ public class UserGridRecyclerView extends RecyclerView {
}
}
/**
* Get the maximum number of real (non-guest, non-managed profile) users that can be created
* on the device. This is a dynamic value and it decreases with the increase of the number
* of managed profiles on the device.
*
* <p> It excludes system user in headless system user model.
*
* @return Maximum number of real users that can be created.
*/
private int getMaxSupportedRealUsers() {
int maxSupportedUsers = UserManager.getMaxSupportedUsers();
if (UserManager.isHeadlessSystemUserMode()) {
maxSupportedUsers -= 1;
}
List<UserInfo> users = mUserManager.getUsers(/* excludeDying= */ true);
// Count all users that are managed profiles of another user.
int managedProfilesCount = 0;
for (UserInfo user : users) {
if (user.isManagedProfile()) {
managedProfilesCount++;
}
}
return maxSupportedUsers - managedProfilesCount;
}
private void showMaxUserLimitReachedDialog() {
AlertDialog maxUsersDialog = new Builder(mContext,
com.android.internal.R.style.Theme_DeviceDefault_Dialog_Alert)
.setTitle(R.string.user_limit_reached_title)
.setMessage(getResources().getQuantityString(
R.plurals.user_limit_reached_message,
mCarUserManagerHelper.getMaxSupportedRealUsers(),
mCarUserManagerHelper.getMaxSupportedRealUsers()))
getMaxSupportedRealUsers(),
getMaxSupportedRealUsers()))
.setPositiveButton(android.R.string.ok, null)
.create();
// Sets window flags for the SysUI dialog