From 8f7cdf52b4ce7e83eae8619dd7d4e75232b56ea4 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Tue, 7 Oct 2025 14:51:14 +0800 Subject: [PATCH] feat: upgrade to .NET 9.0 for Android and fix Fonts issue. --- .github/workflows/publish.yml | 2 +- .../Assets => }/Fonts/SourceHanSansCN-Bold.otf | Bin .../Fonts/SourceHanSansCN-Regular.otf | Bin .../AvaloniaAppBuilderExtensions.cs | 16 ++++++++++++++++ demo/Semi.Avalonia.Demo.Android/MainActivity.cs | 6 ++++++ .../Semi.Avalonia.Demo.Android.csproj | 3 ++- .../Semi.Avalonia.Demo.Web.csproj | 2 +- 7 files changed, 26 insertions(+), 3 deletions(-) rename demo/{Semi.Avalonia.Demo.Web/Assets => }/Fonts/SourceHanSansCN-Bold.otf (100%) rename demo/{Semi.Avalonia.Demo.Web/Assets => }/Fonts/SourceHanSansCN-Regular.otf (100%) create mode 100644 demo/Semi.Avalonia.Demo.Android/AvaloniaAppBuilderExtensions.cs diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 57f0de7..b0b23be 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -217,7 +217,7 @@ jobs: - name: Restore Dependencies run: dotnet restore - name: Publish Android - run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net8.0-android --no-restore -o publish /p:RuntimeIdentifier=android-arm64 + run: dotnet publish demo/Semi.Avalonia.Demo.Android -c Release -f net9.0-android --no-restore -o publish /p:RuntimeIdentifier=android-arm64 - name: Upload a Build Artifact uses: actions/upload-artifact@v4.6.2 with: diff --git a/demo/Semi.Avalonia.Demo.Web/Assets/Fonts/SourceHanSansCN-Bold.otf b/demo/Fonts/SourceHanSansCN-Bold.otf similarity index 100% rename from demo/Semi.Avalonia.Demo.Web/Assets/Fonts/SourceHanSansCN-Bold.otf rename to demo/Fonts/SourceHanSansCN-Bold.otf diff --git a/demo/Semi.Avalonia.Demo.Web/Assets/Fonts/SourceHanSansCN-Regular.otf b/demo/Fonts/SourceHanSansCN-Regular.otf similarity index 100% rename from demo/Semi.Avalonia.Demo.Web/Assets/Fonts/SourceHanSansCN-Regular.otf rename to demo/Fonts/SourceHanSansCN-Regular.otf diff --git a/demo/Semi.Avalonia.Demo.Android/AvaloniaAppBuilderExtensions.cs b/demo/Semi.Avalonia.Demo.Android/AvaloniaAppBuilderExtensions.cs new file mode 100644 index 0000000..ef18895 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/AvaloniaAppBuilderExtensions.cs @@ -0,0 +1,16 @@ +using Avalonia; +using Avalonia.Media; + +namespace Semi.Avalonia.Demo.Android; + +public static class AvaloniaAppBuilderExtensions +{ + private static string DefaultFontFamily => "avares://Semi.Avalonia.Demo.Android/Assets#Source Han Sans CN"; + + public static AppBuilder WithSourceHanSansCNFont(this AppBuilder builder) => + builder.With(new FontManagerOptions + { + DefaultFamilyName = DefaultFontFamily, + FontFallbacks = [new FontFallback { FontFamily = new FontFamily(DefaultFontFamily) }] + }); +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs index 03b691f..012a48d 100644 --- a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs +++ b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs @@ -1,5 +1,6 @@ using Android.App; using Android.Content.PM; +using Avalonia; using Avalonia.Android; namespace Semi.Avalonia.Demo.Android; @@ -13,4 +14,9 @@ namespace Semi.Avalonia.Demo.Android; ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] public class MainActivity : AvaloniaMainActivity { + protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) + { + return base.CustomizeAppBuilder(builder) + .WithSourceHanSansCNFont(); + } } \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj b/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj index ec5bdb0..cd352a5 100644 --- a/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj +++ b/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj @@ -1,7 +1,7 @@ Exe - net8.0-android + net9.0-android 21 enable com.irihitech.Semi.Avalonia @@ -15,6 +15,7 @@ + diff --git a/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj b/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj index 15dbffc..4a066be 100644 --- a/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj +++ b/demo/Semi.Avalonia.Demo.Web/Semi.Avalonia.Demo.Web.csproj @@ -7,7 +7,7 @@ - +