summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2017-05-14 04:49:43 -0700
committerSvet Ganov <svetoslavganov@google.com>2017-05-14 05:34:55 -0700
commitdedcca4432803b73adddd6f4e86bf479c8773fb2 (patch)
tree446b58d6e93111fa4d2f0ea7ee05aa59f63292ba
parent0c389b9d936410d3567f9799a156c597b92da0c7 (diff)
downloadandroid_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.java13
-rw-r--r--src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java5
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;
}