summaryrefslogtreecommitdiff
path: root/src/com/android/launcher3/util/PackageManagerHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/util/PackageManagerHelper.java')
-rw-r--r--src/com/android/launcher3/util/PackageManagerHelper.java37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java
index 86f3431b5..8234ee0bf 100644
--- a/src/com/android/launcher3/util/PackageManagerHelper.java
+++ b/src/com/android/launcher3/util/PackageManagerHelper.java
@@ -200,6 +200,12 @@ public class PackageManagerHelper {
.authority(mContext.getPackageName()).build());
}
+ public Intent getUninstallIntent(String packageName) {
+ return new Intent(Intent.ACTION_UNINSTALL_PACKAGE)
+ .setData(Uri.parse("package:" + packageName))
+ .putExtra(Intent.EXTRA_RETURN_RESULT, true);
+ }
+
/**
* Creates a new market search intent.
*/
@@ -264,21 +270,34 @@ public class PackageManagerHelper {
return packageFilter;
}
+ public static boolean isSystemApp(Context context, String pkgName) {
+ return isSystemApp(context, null, pkgName);
+ }
+
public static boolean isSystemApp(Context context, Intent intent) {
+ return isSystemApp(context, intent, null);
+ }
+
+ public static boolean isSystemApp(Context context, Intent intent, String pkgName) {
PackageManager pm = context.getPackageManager();
- ComponentName cn = intent.getComponent();
String packageName = null;
- if (cn == null) {
- ResolveInfo info = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
- if ((info != null) && (info.activityInfo != null)) {
- packageName = info.activityInfo.packageName;
+ // If the intent is not null, let's get the package name from the intent.
+ if (intent != null) {
+ ComponentName cn = intent.getComponent();
+ if (cn == null) {
+ ResolveInfo info = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
+ if ((info != null) && (info.activityInfo != null)) {
+ packageName = info.activityInfo.packageName;
+ }
+ } else {
+ packageName = cn.getPackageName();
}
- } else {
- packageName = cn.getPackageName();
}
- if (packageName == null) {
- packageName = intent.getPackage();
+ // Otherwise we have the package name passed from the method.
+ else {
+ packageName = pkgName;
}
+ // Check if the provided package is a system app.
if (packageName != null) {
try {
PackageInfo info = pm.getPackageInfo(packageName, 0);