Merge "Update user capabilities in onResume." into nyc-dev

This commit is contained in:
Sudheer Shanka
2016-03-15 23:32:26 +00:00
committed by Android (Google) Code Review

View File

@@ -248,8 +248,8 @@ public class UserSettings extends SettingsPreferenceFragment
super.onResume(); super.onResume();
if (!mUserCaps.mEnabled) return; if (!mUserCaps.mEnabled) return;
if (mShouldUpdateUserList) { if (mShouldUpdateUserList) {
mUserCaps.updateAddUserCapabilities(getActivity());
loadProfile(); loadProfile();
updateUserList(); updateUserList();
} }
@@ -680,6 +680,9 @@ public class UserSettings extends SettingsPreferenceFragment
} else { } else {
user = createRestrictedProfile(); user = createRestrictedProfile();
} }
if (user == null) {
return;
}
synchronized (mUserLock) { synchronized (mUserLock) {
mAddingUser = false; mAddingUser = false;
if (userType == USER_TYPE_USER) { if (userType == USER_TYPE_USER) {
@@ -1052,32 +1055,37 @@ public class UserSettings extends SettingsPreferenceFragment
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId()); final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
caps.mIsGuest = myUserInfo.isGuest(); caps.mIsGuest = myUserInfo.isGuest();
caps.mIsAdmin = myUserInfo.isAdmin(); 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( DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
Context.DEVICE_POLICY_SERVICE); Context.DEVICE_POLICY_SERVICE);
// No restricted profiles for tablets with a device owner, or phones. // No restricted profiles for tablets with a device owner, or phones.
if (dpm.isDeviceManaged() || Utils.isVoiceCapable(context)) { if (dpm.isDeviceManaged() || Utils.isVoiceCapable(context)) {
caps.mCanAddRestrictedProfile = false; caps.mCanAddRestrictedProfile = false;
} }
caps.updateAddUserCapabilities(context);
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;
return caps; 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 @Override
public String toString() { public String toString() {
return "UserCapabilities{" + return "UserCapabilities{" +