Merge "Ignore fp error message when not listening" into mnc-dev
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 4c26c5c..0c423a4 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -773,7 +773,7 @@
userPreferences.add(pref);
}
- if (shouldShowGuestUserPreference(users)) {
+ if (mUserCaps.mCanAddGuest || findGuest() != null) {
// Add a virtual Guest user for guest defaults
UserPreference pref = new UserPreference(getActivity(), null,
UserPreference.USERID_GUEST_DEFAULTS,
@@ -843,23 +843,6 @@
return maxUsersAndGuest - managedProfiles;
}
- private boolean shouldShowGuestUserPreference(List<UserInfo> users) {
- boolean showGuestPreference = !mUserCaps.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;
- }
- }
- }
- return showGuestPreference;
- }
-
-
private void loadIconsAsync(List<Integer> missingIcons) {
new AsyncTask<List<Integer>, Void, Void>() {
@Override
@@ -952,19 +935,9 @@
}
private void createAndSwitchToGuestUser() {
- List<UserInfo> users = mUserManager.getUsers();
- for (UserInfo user : users) {
- if (user.isGuest()) {
- switchUserNow(user.id);
- return;
- }
- }
- // No guest user. Create one, if there's no restriction.
- // If it is not the primary user, then adding users from lockscreen must be enabled
- if (mUserManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)
- || (!mUserCaps.mIsOwner && Settings.Global.getInt(getContentResolver(),
- Settings.Global.ADD_USERS_WHEN_LOCKED, 0) != 1)) {
- Log.i(TAG, "Blocking guest creation because it is restricted");
+ final UserInfo guest = findGuest();
+ if (guest != null) {
+ switchUserNow(guest.id);
return;
}
UserInfo guestUser = mUserManager.createGuest(getActivity(),
@@ -974,6 +947,16 @@
}
}
+ private UserInfo findGuest() {
+ List<UserInfo> users = mUserManager.getUsers();
+ for (UserInfo user : users) {
+ if (user.isGuest()) {
+ return user;
+ }
+ }
+ return null;
+ }
+
private boolean isInitialized(UserInfo user) {
return (user.flags & UserInfo.FLAG_INITIALIZED) != 0;
}
@@ -1041,6 +1024,7 @@
boolean mCanAddRestrictedProfile = true;
boolean mIsOwner = UserHandle.myUserId() == UserHandle.USER_OWNER;
boolean mIsGuest;
+ boolean mCanAddGuest;
public static UserCapabilities create(Context context) {
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
@@ -1050,9 +1034,11 @@
return caps;
}
+ final boolean disallowAddUser = userManager.hasUserRestriction(
+ UserManager.DISALLOW_ADD_USER);
if (!caps.mIsOwner || UserManager.getMaxSupportedUsers() < 2
|| !UserManager.supportsMultipleUsers()
- || userManager.hasUserRestriction(UserManager.DISALLOW_ADD_USER)) {
+ || disallowAddUser) {
caps.mCanAddUser = false;
}
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
@@ -1063,6 +1049,10 @@
}
final int myUserId = UserHandle.myUserId();
caps.mIsGuest = userManager.getUserInfo(myUserId).isGuest();
+
+ final boolean canAddUsersWhenLocked = caps.mIsOwner || Settings.Global.getInt(
+ context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
+ caps.mCanAddGuest = !caps.mIsGuest && !disallowAddUser && canAddUsersWhenLocked;
return caps;
}