From 3484c344c33e632d11501f3c443efac1566cbe93 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Wed, 18 Jun 2025 17:17:42 +0200 Subject: [PATCH] Activity.createMainActivity(): handle tags properly --- src/api-impl/android/app/Activity.java | 2 +- .../android/content/pm/PackageParser.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/api-impl/android/app/Activity.java b/src/api-impl/android/app/Activity.java index c8c4f8b5..ca1afaae 100644 --- a/src/api-impl/android/app/Activity.java +++ b/src/api-impl/android/app/Activity.java @@ -95,7 +95,7 @@ public class Activity extends ContextThemeWrapper implements Window.Callback, La Slog.i(TAG, intent.toString()); if ((uri == null && intent.hasCategory("android.intent.category.LAUNCHER")) || (uri != null && intent.hasDataScheme(uri.getScheme()))) { - className = activity.className; + className = activity.info.targetActivity != null ? activity.info.targetActivity : activity.className; isDefault = intent.hasCategory("android.intent.category.DEFAULT"); if (isDefault) break; diff --git a/src/api-impl/android/content/pm/PackageParser.java b/src/api-impl/android/content/pm/PackageParser.java index 935427cf..142ee546 100644 --- a/src/api-impl/android/content/pm/PackageParser.java +++ b/src/api-impl/android/content/pm/PackageParser.java @@ -2636,7 +2636,20 @@ public class PackageParser { continue; } - if (parser.getName().equals("meta-data")) { + if (parser.getName().equals("intent-filter")) { + ActivityIntentInfo intent = new ActivityIntentInfo(a); + if (!parseIntent(res, parser, attrs, true /*allowGlobs*/, true /*allowAutoVerify*/, + intent, outError)) { + return null; + } + if (intent.countActions() == 0) { + Slog.w(TAG, "No actions in intent filter at " + + mArchiveSourcePath + " " + + parser.getPositionDescription()); + } else { + a.intents.add(intent); + } + } else if (parser.getName().equals("meta-data")) { if ((a.metaData = parseMetaData(res, parser, attrs, a.metaData, outError)) == null) { return null;