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

Commit c820cc5f authored by Tony Mak's avatar Tony Mak
Browse files

New settings key and policy transparency for managed profile settings

Bug: 28281560
Change-Id: I38d0c202088df410a28e78800de4e74377ec3216
parent 564915c5
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -6151,6 +6151,14 @@ public final class Settings {
         */
        public static final int VR_DISPLAY_MODE_OFF = 1;

        /**
         * Whether parent user can access remote contact in managed profile.
         *
         * @hide
         */
        public static final String MANAGED_PROFILE_CONTACT_REMOTE_SEARCH =
                "managed_profile_contact_remote_search";

        /**
         * This are the settings to be backed up.
         *
+39 −0
Original line number Diff line number Diff line
@@ -272,6 +272,29 @@ public class RestrictedLockUtils {
        return null;
    }

    /**
     * @param context
     * @param userId user id of a managed profile.
     * @return is remote contacts search disallowed.
     */
    public static EnforcedAdmin checkIfRemoteContactSearchDisallowed(Context context, int userId) {
        DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
                Context.DEVICE_POLICY_SERVICE);
        if (dpm == null) {
            return null;
        }
        EnforcedAdmin admin = getProfileOwner(context, userId);
        if (admin == null) {
            return null;
        }
        UserHandle userHandle = UserHandle.of(userId);
        if (dpm.getCrossProfileContactsSearchDisabled(userHandle)
                && dpm.getCrossProfileCallerIdDisabled(userHandle)) {
            return admin;
        }
        return null;
    }

    public static EnforcedAdmin checkIfAccessibilityServiceDisallowed(Context context,
            String packageName, int userId) {
        DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
@@ -536,6 +559,22 @@ public class RestrictedLockUtils {
        return null;
    }

    private static EnforcedAdmin getProfileOwner(Context context, int userId) {
        if (userId == UserHandle.USER_NULL) {
            return null;
        }
        final DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(
                Context.DEVICE_POLICY_SERVICE);
        if (dpm == null) {
            return null;
        }
        ComponentName adminComponent = dpm.getProfileOwnerAsUser(userId);
        if (adminComponent != null) {
            return new EnforcedAdmin(adminComponent, userId);
        }
        return null;
    }

    /**
     * Set the menu item as disabled by admin by adding a restricted padlock at the end of the
     * text and set the click listener which will send an intent to show the admin support details