diff --git a/src/api-impl/android/content/Intent.java b/src/api-impl/android/content/Intent.java index 6705ab9f..12c0d00b 100644 --- a/src/api-impl/android/content/Intent.java +++ b/src/api-impl/android/content/Intent.java @@ -368,4 +368,9 @@ public class Intent implements Parcelable { public void removeExtra(String name) { extras.remove(name); } + + public Intent putParcelableArrayListExtra(String name, ArrayList value) { + extras.putParcelableArrayList(name, value); + return this; + } } diff --git a/src/api-impl/android/content/pm/PackageManager.java b/src/api-impl/android/content/pm/PackageManager.java index e5408412..f335c7bb 100644 --- a/src/api-impl/android/content/pm/PackageManager.java +++ b/src/api-impl/android/content/pm/PackageManager.java @@ -1427,6 +1427,16 @@ public class PackageManager { * not contain such an activity. */ public Intent getLaunchIntentForPackage(String packageName) { + if (!Context.this_application.getPackageName().equals(packageName)) + return null; + for (PackageParser.Activity activity: Context.pkg.activities) { + for (PackageParser.IntentInfo intent: activity.intents) { + Slog.i(TAG, intent.toString()); + if (intent.hasCategory("android.intent.category.LAUNCHER")) { + return new Intent("android.intent.action.MAIN", null).setComponent(new ComponentName(packageName, activity.className)); + } + } + } return null; }