Update user capabilities in onResume.
Bug: 27641648 Change-Id: I85a6362a20885defa450760a3fbb16e124630434
This commit is contained in:
@@ -247,8 +247,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();
|
||||||
}
|
}
|
||||||
@@ -663,6 +663,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) {
|
||||||
@@ -1036,32 +1039,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{" +
|
||||||
|
Reference in New Issue
Block a user