summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/utils
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-06-18 11:29:46 -0400
committerJason Monk <jmonk@google.com>2015-06-18 11:29:46 -0400
commit9f0442cdfc055cc3aed19770f48f516b052f6e60 (patch)
treed8a043dc2d86f0602c1745d902fffcd4abc73544 /src/com/android/packageinstaller/permission/utils
parentd8cb9a81bbd71737149a3fe3fba8bb13c05439c3 (diff)
downloadandroid_packages_apps_PackageInstaller-9f0442cdfc055cc3aed19770f48f516b052f6e60.tar.gz
android_packages_apps_PackageInstaller-9f0442cdfc055cc3aed19770f48f516b052f6e60.tar.bz2
android_packages_apps_PackageInstaller-9f0442cdfc055cc3aed19770f48f516b052f6e60.zip
Add better logic for what is 'system'
Match settings logic for this: System apps are on the system image, don't show up in launcher, and haven't been updated. Bug: 21849124 Change-Id: Ida77f98d080068731dcfd7aaf26aeb086fd681ed
Diffstat (limited to 'src/com/android/packageinstaller/permission/utils')
-rw-r--r--src/com/android/packageinstaller/permission/utils/Utils.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/packageinstaller/permission/utils/Utils.java b/src/com/android/packageinstaller/permission/utils/Utils.java
index 7600f6c5..63114f13 100644
--- a/src/com/android/packageinstaller/permission/utils/Utils.java
+++ b/src/com/android/packageinstaller/permission/utils/Utils.java
@@ -18,10 +18,14 @@ package com.android.packageinstaller.permission.utils;
import android.Manifest;
import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.content.res.Resources.Theme;
import android.graphics.drawable.Drawable;
+import android.util.ArraySet;
import android.util.Log;
import android.util.TypedValue;
@@ -46,6 +50,9 @@ public class Utils {
Manifest.permission_group.STORAGE
};
+ private static final Intent LAUNCHER_INTENT = new Intent(Intent.ACTION_MAIN, null)
+ .addCategory(Intent.CATEGORY_LAUNCHER);
+
private Utils() {
/* do nothing - hide constructor */
}
@@ -115,4 +122,20 @@ public class Utils {
icon.setTint(context.getColor(typedValue.resourceId));
return icon;
}
+
+ public static ArraySet<String> getLauncherPackages(Context context) {
+ ArraySet<String> launcherPkgs = new ArraySet<>();
+ for (ResolveInfo info :
+ context.getPackageManager().queryIntentActivities(LAUNCHER_INTENT, 0)) {
+ launcherPkgs.add(info.activityInfo.packageName);
+ }
+
+ return launcherPkgs;
+ }
+
+ public static boolean isSystem(PermissionApp app, ArraySet<String> launcherPkgs) {
+ ApplicationInfo info = app.getAppInfo();
+ return info.isSystemApp() && (info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0
+ && !launcherPkgs.contains(info.packageName);
+ }
}