From 71f6c4e8fde09bcb2e507f5700d2499032124467 Mon Sep 17 00:00:00 2001 From: Benjamin Franz Date: Tue, 7 Jul 2015 10:21:58 +0100 Subject: Ensure that mixed permission policies return the right result Currently, when a policy is fixed denied, but the profile / device owner has set DevicePolicyManager.PERMISSION_POLICY_AUTO_GRANT, requesting a permission returns the wrong result. Bug: 22291565 Change-Id: I9c531faf89236f7e177ccd4b2c3e8f86308b263e --- .../permission/ui/GrantPermissionsActivity.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index db5e530b..6dac87cc 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -136,6 +136,9 @@ public class GrantPermissionsActivity extends Activity mRequestGrantPermissionGroups.put(group.getName(), new GroupState(group)); } break; } + } else { + // if the permission is fixed, ensure that we return the right request result + updateGrantResults(group); } } @@ -232,12 +235,11 @@ public class GrantPermissionsActivity extends Activity private void updateGrantResults(AppPermissionGroup group) { for (Permission permission : group.getPermissions()) { - if (permission.isGranted()) { - final int index = ArrayUtils.getArrayIndex( - mRequestedPermissions, permission.getName()); - if (index >= 0) { - mGrantResults[index] = PackageManager.PERMISSION_GRANTED; - } + final int index = ArrayUtils.getArrayIndex( + mRequestedPermissions, permission.getName()); + if (index >= 0) { + mGrantResults[index] = permission.isGranted() ? PackageManager.PERMISSION_GRANTED + : PackageManager.PERMISSION_DENIED; } } } -- cgit v1.2.3