diff options
author | Shijian Li <shijianli@google.com> | 2017-01-20 01:41:13 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-01-20 01:41:13 +0000 |
commit | 3c17d8a8712aac95528bbb91e84d7a190a17c0a7 (patch) | |
tree | ec9fc62a2db32624cb1283461cdbb7fb8ca19fce /src/com/android/packageinstaller/permission/model/AppPermissions.java | |
parent | d0d2f348e5cf92fca5d4dcf566dcfad323b3bbae (diff) | |
parent | b8e4193e57bcaca51b08a88f3a67ef1d0641b75a (diff) | |
download | android_packages_apps_PackageInstaller-3c17d8a8712aac95528bbb91e84d7a190a17c0a7.tar.gz android_packages_apps_PackageInstaller-3c17d8a8712aac95528bbb91e84d7a190a17c0a7.tar.bz2 android_packages_apps_PackageInstaller-3c17d8a8712aac95528bbb91e84d7a190a17c0a7.zip |
Partial cherry-pick changes on permission model change.
am: b8e4193e57
Change-Id: I06ddf41de29c70df865434685ee7cb652cfddbbd
Diffstat (limited to 'src/com/android/packageinstaller/permission/model/AppPermissions.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/model/AppPermissions.java | 43 |
1 files changed, 18 insertions, 25 deletions
diff --git a/src/com/android/packageinstaller/permission/model/AppPermissions.java b/src/com/android/packageinstaller/permission/model/AppPermissions.java index 38f35f96..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()); @@ -122,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); } } @@ -163,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)) { |