diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-01-24 01:14:48 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-01-24 01:14:48 +0000 |
commit | 0b37fee3accbe7787d043e6317e5f61ae941df34 (patch) | |
tree | 76e6a57e44e16287fcc8c8780d66d812747e45bd /src/com/android/packageinstaller/permission/ui/wear | |
parent | 38a75aef5178bbcec5441c4d7a53257e650b2e21 (diff) | |
parent | 275897a5a576e8d16ebc245c0a299c5d9448a5a6 (diff) | |
download | android_packages_apps_PackageInstaller-0b37fee3accbe7787d043e6317e5f61ae941df34.tar.gz android_packages_apps_PackageInstaller-0b37fee3accbe7787d043e6317e5f61ae941df34.tar.bz2 android_packages_apps_PackageInstaller-0b37fee3accbe7787d043e6317e5f61ae941df34.zip |
Merge "Set USER_FIXED for all non-granted permissions as long as one in the group is changed." into cw-f-dev
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/wear')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java index 31615676..4ef27426 100644 --- a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java +++ b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java @@ -42,6 +42,7 @@ import com.android.packageinstaller.permission.model.AppPermissions; import com.android.packageinstaller.permission.model.Permission; import com.android.packageinstaller.permission.utils.LocationUtils; import com.android.packageinstaller.permission.utils.SafetyNetLogger; +import com.android.packageinstaller.permission.utils.ArrayUtils; import com.android.packageinstaller.permission.utils.Utils; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; @@ -212,6 +213,28 @@ public final class AppPermissionsFragmentWear extends PreferenceFragment { } else { group.revokeRuntimePermissions(true, new String[]{ perm.name }); } + + if (Utils.areGroupPermissionsIndividuallyControlled(getContext(), group.getName()) + && group.hasRuntimePermission()) { + // As long as one permission is changed in individually controlled group + // permissions, we will set user_fixed for non-granted permissions in that group. + // This avoids the system to automatically grant runtime permissions based on the + // fact that one of dangerous permission in that group is already granted. + String[] revokedPermissionsToFix = null; + final int permissionCount = group.getPermissions().size(); + + for (int i = 0; i < permissionCount; i++) { + Permission current = group.getPermissions().get(i); + if (!current.isGranted() && !current.isUserFixed()) { + revokedPermissionsToFix = ArrayUtils.appendString( + revokedPermissionsToFix, current.getName()); + } + } + + if (revokedPermissionsToFix != null) { + group.revokeRuntimePermissions(true, revokedPermissionsToFix); + } + } return true; }); return pref; |