From ba2089aed9ab2839b8a9a96c5a88df9637962bc6 Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Mon, 20 Mar 2023 19:57:51 +0800
Subject: [PATCH] feat: Android start mode.
---
Semi.Avalonia.sln | 7 ++++++
.../MainActivity.cs | 11 +++++++++
.../Properties/AndroidManifest.xml | 5 ++++
.../Resources/drawable/Icon.png | Bin 0 -> 7266 bytes
.../Resources/drawable/splash_screen.xml | 13 +++++++++++
.../Resources/values/colors.xml | 4 ++++
.../Resources/values/styles.xml | 17 ++++++++++++++
.../Semi.Avalonia.Demo.Android.csproj | 22 ++++++++++++++++++
8 files changed, 79 insertions(+)
create mode 100644 demo/Semi.Avalonia.Demo.Android/MainActivity.cs
create mode 100644 demo/Semi.Avalonia.Demo.Android/Properties/AndroidManifest.xml
create mode 100644 demo/Semi.Avalonia.Demo.Android/Resources/drawable/Icon.png
create mode 100644 demo/Semi.Avalonia.Demo.Android/Resources/drawable/splash_screen.xml
create mode 100644 demo/Semi.Avalonia.Demo.Android/Resources/values/colors.xml
create mode 100644 demo/Semi.Avalonia.Demo.Android/Resources/values/styles.xml
create mode 100644 demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj
diff --git a/Semi.Avalonia.sln b/Semi.Avalonia.sln
index eff44ce..3909b90 100644
--- a/Semi.Avalonia.sln
+++ b/Semi.Avalonia.sln
@@ -24,6 +24,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.DataGrid", "s
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.ColorPicker", "src\Semi.Avalonia.ColorPicker\Semi.Avalonia.ColorPicker.csproj", "{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.Demo.Android", "demo\Semi.Avalonia.Demo.Android\Semi.Avalonia.Demo.Android.csproj", "{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -54,6 +56,10 @@ Global
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0C81FC1C-5D2D-478A-9876-923A0C85EC2F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -62,6 +68,7 @@ Global
{2ADCA724-2B6D-46EC-87F7-604D7918B89A} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{69A2C77D-6DB7-4AE4-B179-D1F5CF5E2DF0} = {43091528-9509-43CB-A003-9C5C11E96DD6}
{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0} = {43091528-9509-43CB-A003-9C5C11E96DD6}
+ {0C81FC1C-5D2D-478A-9876-923A0C85EC2F} = {43091528-9509-43CB-A003-9C5C11E96DD6}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7CA41ED3-2CED-40CC-AA21-28C3B42B1E86}
diff --git a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs
new file mode 100644
index 0000000..b8ffe04
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs
@@ -0,0 +1,11 @@
+using Android.App;
+using Android.Content.PM;
+using Avalonia.Android;
+
+namespace Semi.Avalonia.Demo;
+
+[Activity(Label = "Semi.Avalonia.Demo.Android", Icon = "@drawable/Icon",
+ LaunchMode = LaunchMode.SingleTop, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize)]
+public class MainActivity : AvaloniaMainActivity
+{
+}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo.Android/Properties/AndroidManifest.xml b/demo/Semi.Avalonia.Demo.Android/Properties/AndroidManifest.xml
new file mode 100644
index 0000000..c20e124
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/Properties/AndroidManifest.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo.Android/Resources/drawable/Icon.png b/demo/Semi.Avalonia.Demo.Android/Resources/drawable/Icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5694aa2509cbfd737cf4811d98e3f486235ece6
GIT binary patch
literal 7266
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
INfY@00M=r&GXMYp
literal 0
HcmV?d00001
diff --git a/demo/Semi.Avalonia.Demo.Android/Resources/drawable/splash_screen.xml b/demo/Semi.Avalonia.Demo.Android/Resources/drawable/splash_screen.xml
new file mode 100644
index 0000000..b2a32f8
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/Resources/drawable/splash_screen.xml
@@ -0,0 +1,13 @@
+
+
+
+ -
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo.Android/Resources/values/colors.xml b/demo/Semi.Avalonia.Demo.Android/Resources/values/colors.xml
new file mode 100644
index 0000000..3f6ac02
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/Resources/values/colors.xml
@@ -0,0 +1,4 @@
+
+
+ #FFFFFF
+
diff --git a/demo/Semi.Avalonia.Demo.Android/Resources/values/styles.xml b/demo/Semi.Avalonia.Demo.Android/Resources/values/styles.xml
new file mode 100644
index 0000000..2682e5f
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/Resources/values/styles.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj b/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj
new file mode 100644
index 0000000..cd28243
--- /dev/null
+++ b/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj
@@ -0,0 +1,22 @@
+
+
+ Exe
+ net7.0-android
+ 21
+ com.irihitech.Semi.Avalonia
+ 1
+ 1.0
+ apk
+ False
+ true
+ Semi.Avalonia.Demo
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file