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

Commit d3e51064 authored by Kholoud Mohamed's avatar Kholoud Mohamed Committed by Automerger Merge Worker
Browse files

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

Merge "Fix policy transparency for camera disabled policy" into udc-dev am: 5ee04a8a am: c7ece004

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22813277



Change-Id: Ie6e8875bf295e475827877c82a0fd40c70471e96
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 986a1fd8 c7ece004
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 {