Merge "Fix policy transparency for camera disabled policy" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5ee04a8a1c
@@ -16219,17 +16219,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
deviceOwner.second);
|
deviceOwner.second);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
} else if (DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)
|
} else if (DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) {
|
||||||
|| DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction)) {
|
|
||||||
synchronized (getLockObject()) {
|
synchronized (getLockObject()) {
|
||||||
final DevicePolicyData policy = getUserData(userId);
|
final DevicePolicyData policy = getUserData(userId);
|
||||||
final int N = policy.mAdminList.size();
|
final int N = policy.mAdminList.size();
|
||||||
for (int i = 0; i < N; i++) {
|
for (int i = 0; i < N; i++) {
|
||||||
final ActiveAdmin admin = policy.mAdminList.get(i);
|
final ActiveAdmin admin = policy.mAdminList.get(i);
|
||||||
if ((admin.disableCamera &&
|
if (admin.disableScreenCapture) {
|
||||||
DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction))
|
|
||||||
|| (admin.disableScreenCapture && DevicePolicyManager
|
|
||||||
.POLICY_DISABLE_SCREEN_CAPTURE.equals(restriction))) {
|
|
||||||
result = new Bundle();
|
result = new Bundle();
|
||||||
result.putInt(Intent.EXTRA_USER_ID, userId);
|
result.putInt(Intent.EXTRA_USER_ID, userId);
|
||||||
result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
|
result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
|
||||||
@@ -16237,17 +16233,44 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// For the camera, a device owner on a different user can disable it globally,
|
}
|
||||||
// so we need an additional check.
|
} else if (DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)) {
|
||||||
if (result == null
|
if (isPolicyEngineForFinanceFlagEnabled()) {
|
||||||
&& DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)) {
|
PolicyDefinition<Boolean> policyDefinition =
|
||||||
final ActiveAdmin admin = getDeviceOwnerAdminLocked();
|
PolicyDefinition.getPolicyDefinitionForUserRestriction(
|
||||||
if (admin != null && admin.disableCamera) {
|
UserManager.DISALLOW_CAMERA);
|
||||||
result = new Bundle();
|
Boolean value = mDevicePolicyEngine.getResolvedPolicy(policyDefinition, userId);
|
||||||
result.putInt(Intent.EXTRA_USER_ID, mOwners.getDeviceOwnerUserId());
|
if (value != null && value) {
|
||||||
result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
|
result = new Bundle();
|
||||||
admin.info.getComponent());
|
result.putInt(Intent.EXTRA_USER_ID, userId);
|
||||||
return result;
|
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,
|
||||||
|
admin.info.getComponent());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// For the camera, a device owner on a different user can disable it globally,
|
||||||
|
// so we need an additional check.
|
||||||
|
if (result == null
|
||||||
|
&& DevicePolicyManager.POLICY_DISABLE_CAMERA.equals(restriction)) {
|
||||||
|
final ActiveAdmin admin = getDeviceOwnerAdminLocked();
|
||||||
|
if (admin != null && admin.disableCamera) {
|
||||||
|
result = new Bundle();
|
||||||
|
result.putInt(Intent.EXTRA_USER_ID, mOwners.getDeviceOwnerUserId());
|
||||||
|
result.putParcelable(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
|
||||||
|
admin.info.getComponent());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user