Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java +21 −0 Original line number Diff line number Diff line Loading @@ -623,6 +623,27 @@ final class DevicePolicyEngine { } } /** * Retrieves the global policy set by the admin for the provided {@code policyDefinition} and * if one was set, otherwise returns {@code null}. */ @Nullable <V> V getGlobalPolicySetByAdmin( @NonNull PolicyDefinition<V> policyDefinition, @NonNull EnforcingAdmin enforcingAdmin) { Objects.requireNonNull(policyDefinition); Objects.requireNonNull(enforcingAdmin); synchronized (mLock) { if (!hasGlobalPolicyLocked(policyDefinition)) { return null; } PolicyValue<V> value = getGlobalPolicyStateLocked(policyDefinition) .getPoliciesSetByAdmins().get(enforcingAdmin); return value == null ? null : value.getValue(); } } /** * Retrieves the values set for the provided {@code policyDefinition} by each admin. */ Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +8 −4 Original line number Diff line number Diff line Loading @@ -9332,16 +9332,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } int affectedUserId = parent ? getProfileParentId(userHandle) : userHandle; if (isPolicyEngineForFinanceFlagEnabled()) { PolicyDefinition<Boolean> policy = PolicyDefinition.getPolicyDefinitionForUserRestriction( UserManager.DISALLOW_CAMERA); if (who != null) { EnforcingAdmin admin = getEnforcingAdminForCaller(who, callerPackageName); return Boolean.TRUE.equals( mDevicePolicyEngine.getLocalPolicySetByAdmin( policy, admin, affectedUserId)); Boolean value = null; if (isDeviceOwner(caller)) { value = mDevicePolicyEngine.getGlobalPolicySetByAdmin(policy, admin); } else { value = mDevicePolicyEngine.getLocalPolicySetByAdmin( policy, admin, affectedUserId); } return Boolean.TRUE.equals(value); } else { return Boolean.TRUE.equals( mDevicePolicyEngine.getResolvedPolicy(policy, affectedUserId)); Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyEngine.java +21 −0 Original line number Diff line number Diff line Loading @@ -623,6 +623,27 @@ final class DevicePolicyEngine { } } /** * Retrieves the global policy set by the admin for the provided {@code policyDefinition} and * if one was set, otherwise returns {@code null}. */ @Nullable <V> V getGlobalPolicySetByAdmin( @NonNull PolicyDefinition<V> policyDefinition, @NonNull EnforcingAdmin enforcingAdmin) { Objects.requireNonNull(policyDefinition); Objects.requireNonNull(enforcingAdmin); synchronized (mLock) { if (!hasGlobalPolicyLocked(policyDefinition)) { return null; } PolicyValue<V> value = getGlobalPolicyStateLocked(policyDefinition) .getPoliciesSetByAdmins().get(enforcingAdmin); return value == null ? null : value.getValue(); } } /** * Retrieves the values set for the provided {@code policyDefinition} by each admin. */ Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +8 −4 Original line number Diff line number Diff line Loading @@ -9332,16 +9332,20 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } int affectedUserId = parent ? getProfileParentId(userHandle) : userHandle; if (isPolicyEngineForFinanceFlagEnabled()) { PolicyDefinition<Boolean> policy = PolicyDefinition.getPolicyDefinitionForUserRestriction( UserManager.DISALLOW_CAMERA); if (who != null) { EnforcingAdmin admin = getEnforcingAdminForCaller(who, callerPackageName); return Boolean.TRUE.equals( mDevicePolicyEngine.getLocalPolicySetByAdmin( policy, admin, affectedUserId)); Boolean value = null; if (isDeviceOwner(caller)) { value = mDevicePolicyEngine.getGlobalPolicySetByAdmin(policy, admin); } else { value = mDevicePolicyEngine.getLocalPolicySetByAdmin( policy, admin, affectedUserId); } return Boolean.TRUE.equals(value); } else { return Boolean.TRUE.equals( mDevicePolicyEngine.getResolvedPolicy(policy, affectedUserId));