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

Commit 5ee04a8a authored by Kholoud Mohamed's avatar Kholoud Mohamed Committed by Android (Google) Code Review
Browse files

Merge "Fix policy transparency for camera disabled policy" into udc-dev

parents b4f8ee63 282eb181
Loading
Loading
Loading
Loading
+40 −17
Original line number Diff line number Diff line
@@ -16219,17 +16219,39 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                        deviceOwner.second);
                return result;
            }
        } else if (DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)
                || DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) {
        } else if (DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) {
            synchronized (getLockObject()) {
                final DevicePolicyData policy = getUserData(userId);
                final int N = policy.mAdminList.size();
                for (int i = 0; i < N; i++) {
                    final ActiveAdmin admin = policy.mAdminList.get(i);
                    if ((admin.disableCamera &&
                            DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction))
                            || (admin.disableScreenCapture && DevicePolicyManager
                            .POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction))) {
                    if (admin.disableScreenCapture) {
                        result = new Bundle();
                        result.putInt(Intent.EXTRA_USER_ID, userId);
                        result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
                                admin.info.getComponent());
                        return result;
                    }
                }
            }
        } else if (DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)) {
            if (isPolicyEngineForFinanceFlagEnabled()) {
                PolicyDefinition<Boolean> policyDefinition =
                        PolicyDefinition.getPolicyDefinitionForUserRestriction(
                                UserManager.DISALLOW_CAMERA);
                Boolean value = mDevicePolicyEngine.getResolvedPolicy(policyDefinition, userId);
                if (value != null && value) {
                    result = new Bundle();
                    result.putInt(Intent.EXTRA_USER_ID, userId);
                    return result;
                }
            } else {
                synchronized (getLockObject()) {
                    final DevicePolicyData policy = getUserData(userId);
                    final int N = policy.mAdminList.size();
                    for (int i = 0; i < N; i++) {
                        final ActiveAdmin admin = policy.mAdminList.get(i);
                        if (admin.disableCamera) {
                            result = new Bundle();
                            result.putInt(Intent.EXTRA_USER_ID, userId);
                            result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
@@ -16251,6 +16273,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                        }
                    }
                }
            }
        } else {
            long ident = mInjector.binderClearCallingIdentity();
            try {