diff options
author | Dan Pasanen <dan.pasanen@gmail.com> | 2017-04-05 07:26:34 -0500 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2017-04-05 07:26:34 -0500 |
commit | 4f8e6f18ca8790d99ad6a961d40749bb85401dac (patch) | |
tree | 82e25618e66133c4d5b7bcb92bb63318c32dfe80 /src/com/android/packageinstaller/permission/model | |
parent | 0fc5fe15f2571c7b117e87737b633ad9cc2aaf08 (diff) | |
parent | e1dbf0e2600ab6c7f5cc47621d85d0c38a27f5ff (diff) | |
download | android_packages_apps_PackageInstaller-4f8e6f18ca8790d99ad6a961d40749bb85401dac.tar.gz android_packages_apps_PackageInstaller-4f8e6f18ca8790d99ad6a961d40749bb85401dac.tar.bz2 android_packages_apps_PackageInstaller-4f8e6f18ca8790d99ad6a961d40749bb85401dac.zip |
Merge tag 'android-7.1.2_r2' into cm-14.1staging/cm-14.1_android-7.1.2_r2
Android 7.1.2 Release 2 (N2G47E)
# gpg: Signature made Mon 03 Apr 2017 01:41:50 AM CDT
# gpg: using DSA key E8AD3F819AB10E78
# gpg: Can't check signature: No public key
Diffstat (limited to 'src/com/android/packageinstaller/permission/model')
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissionGroup.java | 14 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissions.java | 47 |
2 files changed, 28 insertions, 33 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java index a6601165..5a1a9d64 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissionGroup.java @@ -353,7 +353,7 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> // no longer has it fixed in a denied state. if (permission.isUserFixed() || permission.isUserSet()) { permission.setUserFixed(false); - permission.setUserSet(true); + permission.setUserSet(false); mPackageManager.updatePermissionFlags(permission.getName(), mPackageInfo.packageName, PackageManager.FLAG_PERMISSION_USER_FIXED @@ -538,11 +538,11 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = mPermissions.valueAt(i); - if (!permission.isUserFixed()) { - return false; + if (permission.isUserFixed()) { + return true; } } - return true; + return false; } public boolean isPolicyFixed() { @@ -560,11 +560,11 @@ public final class AppPermissionGroup implements Comparable<AppPermissionGroup> final int permissionCount = mPermissions.size(); for (int i = 0; i < permissionCount; i++) { Permission permission = mPermissions.valueAt(i); - if (!permission.isUserSet()) { - return false; + if (permission.isUserSet()) { + return true; } } - return true; + return false; } public boolean isSystemFixed() { diff --git a/src/com/android/packageinstaller/permission/model/AppPermissions.java b/src/com/android/packageinstaller/permission/model/AppPermissions.java index e455ef13..099e5b07 100644 --- a/src/com/android/packageinstaller/permission/model/AppPermissions.java +++ b/src/com/android/packageinstaller/permission/model/AppPermissions.java @@ -48,11 +48,11 @@ public final class AppPermissions { private PackageInfo mPackageInfo; - public AppPermissions(Context context, PackageInfo packageInfo, String[] permissions, + public AppPermissions(Context context, PackageInfo packageInfo, String[] filterPermissions, boolean sortGroups, Runnable onErrorCallback) { mContext = context; mPackageInfo = packageInfo; - mFilterPermissions = permissions; + mFilterPermissions = filterPermissions; mAppLabel = BidiFormatter.getInstance().unicodeWrap( packageInfo.applicationInfo.loadSafeLabel( context.getPackageManager()).toString()); @@ -83,7 +83,9 @@ public final class AppPermissions { } public boolean isReviewRequired() { - if (!Build.PERMISSIONS_REVIEW_REQUIRED) { + if (!mContext.getResources().getBoolean( + com.android.internal.R.bool.config_permissionReviewRequired) + && !Build.PERMISSIONS_REVIEW_REQUIRED) { return false; } final int groupCount = mGroups.size(); @@ -120,34 +122,13 @@ public final class AppPermissions { if (!filterPermission.equals(requestedPerm)) { continue; } - - if (hasGroupForPermission(requestedPerm)) { - break; - } - - AppPermissionGroup group = AppPermissionGroup.create(mContext, - mPackageInfo, requestedPerm); - if (group == null) { - break; - } - - mGroups.add(group); + addPermissionGroupIfNeeded(requestedPerm); break; } } } else { for (String requestedPerm : mPackageInfo.requestedPermissions) { - if (hasGroupForPermission(requestedPerm)) { - continue; - } - - AppPermissionGroup group = AppPermissionGroup.create(mContext, - mPackageInfo, requestedPerm); - if (group == null) { - continue; - } - - mGroups.add(group); + addPermissionGroupIfNeeded(requestedPerm); } } @@ -161,6 +142,20 @@ public final class AppPermissions { } } + private void addPermissionGroupIfNeeded(String permission) { + if (hasGroupForPermission(permission)) { + return; + } + + AppPermissionGroup group = AppPermissionGroup.create(mContext, + mPackageInfo, permission); + if (group == null) { + return; + } + + mGroups.add(group); + } + private boolean hasGroupForPermission(String permission) { for (AppPermissionGroup group : mGroups) { if (group.hasPermission(permission)) { |