Add Emergency info and Add user when locked to account dashboard.

Add two items to User & accounts dashboard, and refractor
UserCapabilities so that it can be accessed in the new controller.

Test: RunSettingsRoboTests
Bug: 31801423
Change-Id: Ib446ad6c99d4cc6405a17cf82d2d86e044870b73
This commit is contained in:
Doris Ling
2016-10-27 13:09:16 -07:00
parent 9895344be6
commit c7e2ed8e79
10 changed files with 593 additions and 72 deletions

View File

@@ -1058,76 +1058,6 @@ public class UserSettings extends SettingsPreferenceFragment
mMePreference.setTitle(label);
}
private static class UserCapabilities {
boolean mEnabled = true;
boolean mCanAddUser = true;
boolean mCanAddRestrictedProfile = true;
boolean mIsAdmin;
boolean mIsGuest;
boolean mCanAddGuest;
boolean mDisallowAddUser;
boolean mDisallowAddUserSetByAdmin;
EnforcedAdmin mEnforcedAdmin;
private UserCapabilities() {}
public static UserCapabilities create(Context context) {
UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
UserCapabilities caps = new UserCapabilities();
if (!UserManager.supportsMultipleUsers() || Utils.isMonkeyRunning()) {
caps.mEnabled = false;
return caps;
}
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
caps.mIsGuest = myUserInfo.isGuest();
caps.mIsAdmin = myUserInfo.isAdmin();
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;
}
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{" +
"mEnabled=" + mEnabled +
", mCanAddUser=" + mCanAddUser +
", mCanAddRestrictedProfile=" + mCanAddRestrictedProfile +
", mIsAdmin=" + mIsAdmin +
", mIsGuest=" + mIsGuest +
", mCanAddGuest=" + mCanAddGuest +
", mDisallowAddUser=" + mDisallowAddUser +
", mEnforcedAdmin=" + mEnforcedAdmin +
'}';
}
}
private static class SummaryProvider implements SummaryLoader.SummaryProvider {
private final Context mContext;