summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/model/AppPermissions.java
diff options
context:
space:
mode:
authorDan Pasanen <dan.pasanen@gmail.com>2017-04-05 07:26:34 -0500
committerDan Pasanen <dan.pasanen@gmail.com>2017-04-05 07:26:34 -0500
commit4f8e6f18ca8790d99ad6a961d40749bb85401dac (patch)
tree82e25618e66133c4d5b7bcb92bb63318c32dfe80 /src/com/android/packageinstaller/permission/model/AppPermissions.java
parent0fc5fe15f2571c7b117e87737b633ad9cc2aaf08 (diff)
parente1dbf0e2600ab6c7f5cc47621d85d0c38a27f5ff (diff)
downloadandroid_packages_apps_PackageInstaller-staging/cm-14.1_android-7.1.2_r2.tar.gz
android_packages_apps_PackageInstaller-staging/cm-14.1_android-7.1.2_r2.tar.bz2
android_packages_apps_PackageInstaller-staging/cm-14.1_android-7.1.2_r2.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/AppPermissions.java')
-rw-r--r--src/com/android/packageinstaller/permission/model/AppPermissions.java47
1 files changed, 21 insertions, 26 deletions
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)) {