diff options
author | Jason Monk <jmonk@google.com> | 2015-05-26 17:06:08 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-05-26 17:06:08 +0000 |
commit | 020107f35c7288ed37f57412db47a5a782123266 (patch) | |
tree | fce9e658e4e118792f07b725426ecd29083d9c03 /src/com/android/packageinstaller/permission/utils/Utils.java | |
parent | 70fc62c9b78290c02aec090e4ae2e0ec1cc715f4 (diff) | |
parent | d7270133ea9e7e2b51f6cd86cf46d4e73c601fbb (diff) | |
download | android_packages_apps_PackageInstaller-020107f35c7288ed37f57412db47a5a782123266.tar.gz android_packages_apps_PackageInstaller-020107f35c7288ed37f57412db47a5a782123266.tar.bz2 android_packages_apps_PackageInstaller-020107f35c7288ed37f57412db47a5a782123266.zip |
am d7270133: am 8f1c4e28: am 93568c58: Add permission summaries back
* commit 'd7270133ea9e7e2b51f6cd86cf46d4e73c601fbb':
Add permission summaries back
Diffstat (limited to 'src/com/android/packageinstaller/permission/utils/Utils.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/utils/Utils.java | 70 |
1 files changed, 58 insertions, 12 deletions
diff --git a/src/com/android/packageinstaller/permission/utils/Utils.java b/src/com/android/packageinstaller/permission/utils/Utils.java index 856826d5..1cd984b1 100644 --- a/src/com/android/packageinstaller/permission/utils/Utils.java +++ b/src/com/android/packageinstaller/permission/utils/Utils.java @@ -25,9 +25,26 @@ import android.graphics.drawable.Drawable; import android.util.Log; import android.util.TypedValue; +import com.android.packageinstaller.permission.model.AppPermissionGroup; +import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp; + public class Utils { + private static final String LOG_TAG = "Utils"; + public static final String OS_PKG = "android"; + + public static final String[] MODERN_PERMISSION_GROUPS = { + Manifest.permission_group.CALENDAR, + Manifest.permission_group.CAMERA, + Manifest.permission_group.CONTACTS, + Manifest.permission_group.LOCATION, + Manifest.permission_group.SENSORS, + Manifest.permission_group.SMS, + Manifest.permission_group.PHONE, + Manifest.permission_group.MICROPHONE, + }; + private Utils() { /* do nothing - hide constructor */ } @@ -42,22 +59,51 @@ public class Utils { } public static boolean isModernPermissionGroup(String name) { - switch (name) { - case Manifest.permission_group.CALENDAR: - case Manifest.permission_group.CAMERA: - case Manifest.permission_group.CONTACTS: - case Manifest.permission_group.LOCATION: - case Manifest.permission_group.SENSORS: - case Manifest.permission_group.SMS: - case Manifest.permission_group.PHONE: - case Manifest.permission_group.MICROPHONE: { + for (String modernGroup : MODERN_PERMISSION_GROUPS) { + if (modernGroup.equals(name)) { return true; } + } + return false; + } - default: { - return false; - } + public static boolean shouldShowPermission(AppPermissionGroup group, boolean showLegacy) { + // We currently will not show permissions fixed by the system. + // which is what the system does for system components. + if (group.isSystemFixed()) { + return false; + } + + // Yes this is possible. We have leftover permissions that + // are not in the final groups and we want to get rid of, + // therefore we do not have app ops for legacy support. + if (!group.hasRuntimePermission() && !group.hasAppOpPermission()) { + return false; + } + + final boolean isPlatformPermission = group.getDeclaringPackage().equals(OS_PKG); + // Show legacy permissions only if the user chose that. + if (isPlatformPermission && !showLegacy + && !Utils.isModernPermissionGroup(group.getName())) { + return false; + } + return true; + } + + public static boolean shouldShowPermission(PermissionApp app) { + // We currently will not show permissions fixed by the system + // which is what the system does for system components. + if (app.isSystemFixed()) { + return false; + } + + // Yes this is possible. We have leftover permissions that + // are not in the final groups and we want to get rid of, + // therefore we do not have app ops for legacy support. + if (!app.hasRuntimePermissions() && !app.hasAppOpPermissions()) { + return false; } + return true; } public static Drawable applyTint(Context context, Drawable icon, int attr) { |