diff --git a/Semi.Avalonia.sln b/Semi.Avalonia.sln index eff44ce..a9245de 100644 --- a/Semi.Avalonia.sln +++ b/Semi.Avalonia.sln @@ -20,9 +20,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Web", "d EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo", "demo\Semi.Avalonia.Demo\Semi.Avalonia.Demo.csproj", "{D789AEDB-EBDF-4450-8E8E-B4A03FB257B0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.DataGrid", "src\Semi.Avalonia.DataGrid\Semi.Avalonia.DataGrid.csproj", "{8A90C292-8761-4F70-8E1F-EFC097FEADB3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.DataGrid", "src\Semi.Avalonia.DataGrid\Semi.Avalonia.DataGrid.csproj", "{8A90C292-8761-4F70-8E1F-EFC097FEADB3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Semi.Avalonia.ColorPicker", "src\Semi.Avalonia.ColorPicker\Semi.Avalonia.ColorPicker.csproj", "{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.ColorPicker", "src\Semi.Avalonia.ColorPicker\Semi.Avalonia.ColorPicker.csproj", "{0B64C2F2-FDCD-48E4-AB9D-7CCC63B006CA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Semi.Avalonia.Demo.Android", "demo\Semi.Avalonia.Demo.Android\Semi.Avalonia.Demo.Android.csproj", "{0C81FC1C-5D2D-478A-9876-923A0C85EC2F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -54,6 +56,11 @@ 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}.Debug|Any CPU.Deploy.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 +69,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/App.axaml b/demo/Semi.Avalonia.Demo.Android/App.axaml new file mode 100644 index 0000000..6387ef8 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/App.axaml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/App.axaml.cs b/demo/Semi.Avalonia.Demo.Android/App.axaml.cs new file mode 100644 index 0000000..e68f7de --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/App.axaml.cs @@ -0,0 +1,27 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Markup.Xaml; +using Semi.Avalonia.Demo.Views; + +namespace Semi.Avalonia.Demo.Android; + +public partial class App : Application +{ + public override void Initialize() + { + AvaloniaXamlLoader.Load(this); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is ISingleViewApplicationLifetime single) + { + single.MainView = new MainView() + { + + }; + } + base.OnFrameworkInitializationCompleted(); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/MainActivity.cs b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs new file mode 100644 index 0000000..7906c4f --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/MainActivity.cs @@ -0,0 +1,12 @@ +using Android.App; +using Android.Content.PM; +using Avalonia.Android; + +namespace Semi.Avalonia.Demo.Android; + +[Activity(Label = "Semi.Avalonia.Demo.Android", Icon = "@drawable/Icon", Theme = "@style/MyTheme.NoActionBar", + 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 0000000..b5694aa Binary files /dev/null and b/demo/Semi.Avalonia.Demo.Android/Resources/drawable/Icon.png differ 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..b184ab9 --- /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..ee9c799 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/Semi.Avalonia.Demo.Android.csproj @@ -0,0 +1,23 @@ + + + Exe + net7.0-android + 21 + com.irihitech.Semi.Avalonia + 1 + 1.0 + apk + False + true + Semi.Avalonia.Demo.Android + + + + + + + + + + + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs b/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs new file mode 100644 index 0000000..d5b8f09 --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/SplashActivity.cs @@ -0,0 +1,22 @@ +using Android.App; +using Android.Content; +using Avalonia; +using Avalonia.Android; +using Application = Android.App.Application; + +namespace Semi.Avalonia.Demo.Android; + +[Activity(Theme = "@style/MyTheme.Splash", MainLauncher = true, NoHistory = true)] +public class SplashActivity: AvaloniaSplashActivity +{ + protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) + { + return base.CustomizeAppBuilder(builder); + } + + protected override void OnResume() + { + base.OnResume(); + StartActivity(new Intent(Application.Context, typeof(MainActivity))); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml b/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml new file mode 100644 index 0000000..250500b --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml @@ -0,0 +1,11 @@ + + Welcome to Avalonia! + diff --git a/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml.cs b/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml.cs new file mode 100644 index 0000000..dfc7f2d --- /dev/null +++ b/demo/Semi.Avalonia.Demo.Android/Views/MainView.axaml.cs @@ -0,0 +1,18 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace Semi.Avalonia.Demo.Android.Views; + +public partial class MainView : UserControl +{ + public MainView() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Semi.Avalonia/Controls/Controls.axaml b/src/Semi.Avalonia/Controls/Controls.axaml index 1da9b1c..c9813c7 100644 --- a/src/Semi.Avalonia/Controls/Controls.axaml +++ b/src/Semi.Avalonia/Controls/Controls.axaml @@ -19,6 +19,7 @@ + diff --git a/src/Semi.Avalonia/Controls/EmbeddableControlRoot.axaml b/src/Semi.Avalonia/Controls/EmbeddableControlRoot.axaml new file mode 100644 index 0000000..a0465d4 --- /dev/null +++ b/src/Semi.Avalonia/Controls/EmbeddableControlRoot.axaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Semi.Avalonia/Semi.Avalonia.csproj b/src/Semi.Avalonia/Semi.Avalonia.csproj index 9c2e5a1..a7e7e62 100644 --- a/src/Semi.Avalonia/Semi.Avalonia.csproj +++ b/src/Semi.Avalonia/Semi.Avalonia.csproj @@ -1,6 +1,6 @@ - + Semi.Avalonia