From 2d860bbeca0eba871b175da98699c55d92034862 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 26 Nov 2024 09:43:17 +0000 Subject: [PATCH 1/3] Add support to discovering activity-alias activity elements --- src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs b/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs index 5955292..983ddfb 100644 --- a/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs +++ b/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs @@ -6,6 +6,7 @@ using System.Text.RegularExpressions; using System.Text; using System.IO; +using System.Collections; namespace Xamarin.Android.Tools { @@ -329,7 +330,9 @@ void RemoveAndroidPermissions (IEnumerable permissions) IEnumerable GetLaunchableActivities () { - foreach (var activity in application.Elements ("activity")) { + var activities = application.Elements ("activity") ?? Enumerable.Empty (); + var aliases = application.Elements ("activity-alias") ?? Enumerable.Empty (); + foreach (var activity in activities.Union (aliases)) { foreach (var filter in activity.Elements ("intent-filter")) { foreach (var category in filter.Elements ("category")) if (category != null && (string?)category.Attribute (aName) == "android.intent.category.LAUNCHER") From cd29d7cfc84b4190350b7205e9d38164c2158541 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 26 Nov 2024 16:28:58 +0000 Subject: [PATCH 2/3] Fix up the code --- src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs b/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs index 983ddfb..87ed37a 100644 --- a/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs +++ b/src/Xamarin.Android.Tools.AndroidSdk/AndroidAppManifest.cs @@ -6,7 +6,6 @@ using System.Text.RegularExpressions; using System.Text; using System.IO; -using System.Collections; namespace Xamarin.Android.Tools { @@ -330,8 +329,8 @@ void RemoveAndroidPermissions (IEnumerable permissions) IEnumerable GetLaunchableActivities () { - var activities = application.Elements ("activity") ?? Enumerable.Empty (); - var aliases = application.Elements ("activity-alias") ?? Enumerable.Empty (); + var activities = application.Elements ("activity"); + var aliases = application.Elements ("activity-alias"); foreach (var activity in activities.Union (aliases)) { foreach (var filter in activity.Elements ("intent-filter")) { foreach (var category in filter.Elements ("category")) From c3b011249348b80df2594322dce97e7ccf1e5631 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Tue, 3 Dec 2024 10:02:49 +0000 Subject: [PATCH 3/3] ADd Unit Tests --- .../AndroidAppManifestTests.cs | 3 ++- .../Resources/manifest-simplewidget.xml | 6 ++++++ .../Xamarin.Android.Tools.AndroidSdk-Tests.csproj | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidAppManifestTests.cs b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidAppManifestTests.cs index 5c58199..92e81db 100644 --- a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidAppManifestTests.cs +++ b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/AndroidAppManifestTests.cs @@ -51,8 +51,9 @@ public void GetLaunchableActivityNames () var versions = new AndroidVersions (Array.Empty()); var manifest = AndroidAppManifest.Load (GetTestAppManifest (), versions); var launchers = manifest.GetLaunchableActivityNames ().ToList (); - Assert.AreEqual (1, launchers.Count); + Assert.AreEqual (2, launchers.Count); Assert.AreEqual (".HasMultipleIntentFilters", launchers [0]); + Assert.AreEqual (".ActivityAlias", launchers [1]); } [Test] diff --git a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Resources/manifest-simplewidget.xml b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Resources/manifest-simplewidget.xml index c834c6c..b3e146a 100644 --- a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Resources/manifest-simplewidget.xml +++ b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Resources/manifest-simplewidget.xml @@ -33,6 +33,12 @@ + + + + + + diff --git a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Xamarin.Android.Tools.AndroidSdk-Tests.csproj b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Xamarin.Android.Tools.AndroidSdk-Tests.csproj index 19c4033..27b8524 100644 --- a/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Xamarin.Android.Tools.AndroidSdk-Tests.csproj +++ b/tests/Xamarin.Android.Tools.AndroidSdk-Tests/Xamarin.Android.Tools.AndroidSdk-Tests.csproj @@ -4,7 +4,7 @@ - net6.0 + net8.0 true ..\..\product.snk false