Update user capabilities in onResume.
Bug: 27641648
Change-Id: I85a6362a20885defa450760a3fbb16e124630434
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 4b060a0..1c0260f 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -247,8 +247,8 @@
super.onResume();
if (!mUserCaps.mEnabled) return;
-
if (mShouldUpdateUserList) {
+ mUserCaps.updateAddUserCapabilities(getActivity());
loadProfile();
updateUserList();
}
@@ -663,6 +663,9 @@
} else {
user = createRestrictedProfile();
}
+ if (user == null) {
+ return;
+ }
synchronized (mUserLock) {
mAddingUser = false;
if (userType == USER_TYPE_USER) {
@@ -1036,32 +1039,37 @@
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
caps.mIsGuest = myUserInfo.isGuest();
caps.mIsAdmin = myUserInfo.isAdmin();
- caps.mEnforcedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(context,
- UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
- final boolean hasBaseUserRestriction = RestrictedLockUtils.hasBaseUserRestriction(
- context, UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
- caps.mDisallowAddUserSetByAdmin =
- caps.mEnforcedAdmin != null && !hasBaseUserRestriction;
- caps.mDisallowAddUser =
- (caps.mEnforcedAdmin != null || hasBaseUserRestriction);
- if (!caps.mIsAdmin || UserManager.getMaxSupportedUsers() < 2
- || !UserManager.supportsMultipleUsers()
- || caps.mDisallowAddUser) {
- caps.mCanAddUser = false;
- }
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
Context.DEVICE_POLICY_SERVICE);
// No restricted profiles for tablets with a device owner, or phones.
if (dpm.isDeviceManaged() || Utils.isVoiceCapable(context)) {
caps.mCanAddRestrictedProfile = false;
}
-
- final boolean canAddUsersWhenLocked = caps.mIsAdmin || Settings.Global.getInt(
- context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
- caps.mCanAddGuest = !caps.mIsGuest && !caps.mDisallowAddUser && canAddUsersWhenLocked;
+ caps.updateAddUserCapabilities(context);
return caps;
}
+ public void updateAddUserCapabilities(Context context) {
+ mEnforcedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(context,
+ UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
+ final boolean hasBaseUserRestriction = RestrictedLockUtils.hasBaseUserRestriction(
+ context, UserManager.DISALLOW_ADD_USER, UserHandle.myUserId());
+ mDisallowAddUserSetByAdmin =
+ mEnforcedAdmin != null && !hasBaseUserRestriction;
+ mDisallowAddUser =
+ (mEnforcedAdmin != null || hasBaseUserRestriction);
+ mCanAddUser = true;
+ if (!mIsAdmin || UserManager.getMaxSupportedUsers() < 2
+ || !UserManager.supportsMultipleUsers()
+ || mDisallowAddUser) {
+ mCanAddUser = false;
+ }
+
+ final boolean canAddUsersWhenLocked = mIsAdmin || Settings.Global.getInt(
+ context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
+ mCanAddGuest = !mIsGuest && !mDisallowAddUser && canAddUsersWhenLocked;
+ }
+
@Override
public String toString() {
return "UserCapabilities{" +