summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/permission/utils/Utils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/permission/utils/Utils.java')
-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);
+ }
}