Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6c51287 authored by Sudheer Shanka's avatar Sudheer Shanka Committed by Android (Google) Code Review
Browse files

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

parents 023f7033 aa524ae5
Loading
Loading
Loading
Loading
+25 −17
Original line number Diff line number Diff line
@@ -248,8 +248,8 @@ public class UserSettings extends SettingsPreferenceFragment
        super.onResume();

        if (!mUserCaps.mEnabled) return;

        if (mShouldUpdateUserList) {
            mUserCaps.updateAddUserCapabilities(getActivity());
            loadProfile();
            updateUserList();
        }
@@ -680,6 +680,9 @@ public class UserSettings extends SettingsPreferenceFragment
                    } else {
                        user = createRestrictedProfile();
                    }
                    if (user == null) {
                        return;
                    }
                    synchronized (mUserLock) {
                        mAddingUser = false;
                        if (userType == USER_TYPE_USER) {
@@ -1052,30 +1055,35 @@ public class UserSettings extends SettingsPreferenceFragment
            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;
            }
            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 = caps.mIsAdmin || Settings.Global.getInt(
            final boolean canAddUsersWhenLocked = mIsAdmin || Settings.Global.getInt(
                    context.getContentResolver(), Settings.Global.ADD_USERS_WHEN_LOCKED, 0) == 1;
            caps.mCanAddGuest = !caps.mIsGuest && !caps.mDisallowAddUser && canAddUsersWhenLocked;
            return caps;
            mCanAddGuest = !mIsGuest && !mDisallowAddUser && canAddUsersWhenLocked;
        }

        @Override