summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/utils/Utils.java
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-05-26 17:06:08 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-05-26 17:06:08 +0000
commit020107f35c7288ed37f57412db47a5a782123266 (patch)
treefce9e658e4e118792f07b725426ecd29083d9c03 /src/com/android/packageinstaller/permission/utils/Utils.java
parent70fc62c9b78290c02aec090e4ae2e0ec1cc715f4 (diff)
parentd7270133ea9e7e2b51f6cd86cf46d4e73c601fbb (diff)
downloadandroid_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.java70
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) {