summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2017-05-14 18:44:05 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-05-14 18:44:06 +0000
commitfa93339ce72f20a59c213d9dc7fdb8b5a2420d06 (patch)
treebbc9f41225188a85518ee59e686400df40d54ed6
parent74652cba6f67983cf279f474b7474d7657bf2bec (diff)
parentdedcca4432803b73adddd6f4e86bf479c8773fb2 (diff)
downloadandroid_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.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;
}