diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2017-05-14 18:44:05 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-05-14 18:44:06 +0000 |
commit | fa93339ce72f20a59c213d9dc7fdb8b5a2420d06 (patch) | |
tree | bbc9f41225188a85518ee59e686400df40d54ed6 | |
parent | 74652cba6f67983cf279f474b7474d7657bf2bec (diff) | |
parent | dedcca4432803b73adddd6f4e86bf479c8773fb2 (diff) | |
download | android_packages_apps_PackageInstaller-fa93339ce72f20a59c213d9dc7fdb8b5a2420d06.tar.gz android_packages_apps_PackageInstaller-fa93339ce72f20a59c213d9dc7fdb8b5a2420d06.tar.bz2 android_packages_apps_PackageInstaller-fa93339ce72f20a59c213d9dc7fdb8b5a2420d06.zip |
Merge "Fix missing case to update permission group subtitle" into oc-dev
-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; } |