diff options
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java | 13 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java | 5 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java index 521dd8ba..36570a54 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/AllAppPermissionsFragment.java @@ -316,20 +316,25 @@ public final class AllAppPermissionsFragment extends SettingsWithHeader { // because another permission in the group is granted. This applies // only to apps that support runtime permissions. if (appPermissionGroup.doesSupportRuntimePermissions()) { + int grantedCount = 0; String[] revokedPermissionsToFix = null; final int permissionCount = appPermissionGroup.getPermissions().size(); for (int i = 0; i < permissionCount; i++) { Permission current = appPermissionGroup.getPermissions().get(i); - if (!current.isGranted() && !current.isUserFixed()) { - revokedPermissionsToFix = ArrayUtils.appendString( - revokedPermissionsToFix, current.getName()); + if (!current.isGranted()) { + if (!current.isUserFixed()) { + revokedPermissionsToFix = ArrayUtils.appendString( + revokedPermissionsToFix, current.getName()); + } + } else { + grantedCount++; } } if (revokedPermissionsToFix != null) { // If some permissions were not granted then they should be fixed. appPermissionGroup.revokeRuntimePermissions(true, revokedPermissionsToFix); - } else { + } else if (appPermissionGroup.getPermissions().size() == grantedCount) { // If all permissions are granted then they should not be fixed. appPermissionGroup.grantRuntimePermissions(false); } diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java index eb2dacbd..18277b74 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java @@ -321,11 +321,12 @@ public final class AppPermissionsFragment extends SettingsWithHeader .setPositiveButton(R.string.grant_dialog_button_deny_anyway, (DialogInterface dialog, int which) -> { ((SwitchPreference) preference).setChecked(false); - if (preference instanceof MultiTargetSwitchPreference) { + group.revokeRuntimePermissions(false); + if (Utils.areGroupPermissionsIndividuallyControlled(getContext(), + group.getName())) { updateSummaryForIndividuallyControlledPermissionGroup( group, preference); } - group.revokeRuntimePermissions(false); if (!grantedByDefault) { mHasConfirmedRevoke = true; } |