diff options
Diffstat (limited to 'src/com/android/launcher3/util/PackageManagerHelper.java')
-rw-r--r-- | src/com/android/launcher3/util/PackageManagerHelper.java | 37 |
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); |