diff --git a/res/values/strings.xml b/res/values/strings.xml index c00d904dcd6..63278a897f5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5425,6 +5425,8 @@ Nickname Add + + You can add up to %1$d users Users have their own apps and content diff --git a/res/xml/user_settings.xml b/res/xml/user_settings.xml index 6bbeffa2430..f33177c7101 100644 --- a/res/xml/user_settings.xml +++ b/res/xml/user_settings.xml @@ -23,7 +23,7 @@ android:title="@string/user_list_title"> - diff --git a/src/com/android/settings/location/DimmableIconPreference.java b/src/com/android/settings/DimmableIconPreference.java similarity index 85% rename from src/com/android/settings/location/DimmableIconPreference.java rename to src/com/android/settings/DimmableIconPreference.java index f78599281f7..2d736033a76 100644 --- a/src/com/android/settings/location/DimmableIconPreference.java +++ b/src/com/android/settings/DimmableIconPreference.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings.location; +package com.android.settings; import android.annotation.Nullable; import android.content.Context; @@ -35,16 +35,9 @@ public class DimmableIconPreference extends Preference { private final CharSequence mContentDescription; - public DimmableIconPreference(Context context, AttributeSet attrs, int defStyle, - @Nullable CharSequence contentDescription) { - super(context, attrs, defStyle); - mContentDescription = contentDescription; - } - - public DimmableIconPreference(Context context, AttributeSet attrs, - @Nullable CharSequence contentDescription) { + public DimmableIconPreference(Context context, AttributeSet attrs) { super(context, attrs); - mContentDescription = contentDescription; + mContentDescription = null; } public DimmableIconPreference(Context context, @Nullable CharSequence contentDescription) { diff --git a/src/com/android/settings/location/RecentLocationApps.java b/src/com/android/settings/location/RecentLocationApps.java index d7b62e71116..66bdda51fde 100644 --- a/src/com/android/settings/location/RecentLocationApps.java +++ b/src/com/android/settings/location/RecentLocationApps.java @@ -31,6 +31,8 @@ import android.os.UserHandle; import android.os.UserManager; import android.preference.Preference; import android.util.Log; + +import com.android.settings.DimmableIconPreference; import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.applications.InstalledAppDetails; diff --git a/src/com/android/settings/location/SettingsInjector.java b/src/com/android/settings/location/SettingsInjector.java index ef6117b2c98..283430e3cd3 100644 --- a/src/com/android/settings/location/SettingsInjector.java +++ b/src/com/android/settings/location/SettingsInjector.java @@ -39,6 +39,8 @@ import android.util.AttributeSet; import android.util.Log; import android.util.Xml; +import com.android.settings.DimmableIconPreference; + import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index d5244d7df9c..4c26c5cced5 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -818,12 +818,31 @@ public class UserSettings extends SettingsPreferenceFragment // Append Add user to the end of the list if (mUserCaps.mCanAddUser) { boolean moreUsers = mUserManager.canAddMoreUsers(); - mAddUser.setEnabled(moreUsers); mAddUser.setOrder(Preference.DEFAULT_ORDER); preferenceScreen.addPreference(mAddUser); + mAddUser.setEnabled(moreUsers); + if (!moreUsers) { + mAddUser.setSummary(getString(R.string.user_add_max_count, getMaxRealUsers())); + } else { + mAddUser.setSummary(null); + } } } + private int getMaxRealUsers() { + // guest is not counted against getMaxSupportedUsers() number + final int maxUsersAndGuest = UserManager.getMaxSupportedUsers() + 1; + final List users = mUserManager.getUsers(); + // managed profiles are counted against getMaxSupportedUsers() + int managedProfiles = 0; + for (UserInfo user : users) { + if (user.isManagedProfile()) { + managedProfiles++; + } + } + return maxUsersAndGuest - managedProfiles; + } + private boolean shouldShowGuestUserPreference(List users) { boolean showGuestPreference = !mUserCaps.mIsGuest; // If user has DISALLOW_ADD_USER don't allow creating a guest either.