diff options
author | Svet Ganov <svetoslavganov@google.com> | 2017-05-14 04:49:43 -0700 |
---|---|---|
committer | Svet Ganov <svetoslavganov@google.com> | 2017-05-14 05:34:55 -0700 |
commit | dedcca4432803b73adddd6f4e86bf479c8773fb2 (patch) | |
tree | 446b58d6e93111fa4d2f0ea7ee05aa59f63292ba | |
parent | 0c389b9d936410d3567f9799a156c597b92da0c7 (diff) | |
download | android_packages_apps_PackageInstaller-dedcca4432803b73adddd6f4e86bf479c8773fb2.tar.gz android_packages_apps_PackageInstaller-dedcca4432803b73adddd6f4e86bf479c8773fb2.tar.bz2 android_packages_apps_PackageInstaller-dedcca4432803b73adddd6f4e86bf479c8773fb2.zip |
Fix missing case to update permission group subtitle
Permissions in some groups are individually controlled if
permission review mode is enabled. We were not properly
updating the subtitle of a group with individually controlled
permissions.
Also while at this fix a bug where we grnated an intividually
controller group if the user granted two permissions in the
group.
Test: manual
bug:33463159
bug:35622170
Change-Id: I0913531d69668ccf2c2fdd3cdf0d9e9a42e67dc0
-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; } |