From 11c1543b5a53301cc6d6ff9ae2c74085242566a5 Mon Sep 17 00:00:00 2001 From: Lubomir Tetak Date: Mon, 22 Nov 2021 10:53:25 +0100 Subject: [PATCH 01/12] Handle default actions to prevent beeping sounds --- samples/ControlCatalog/Pages/DialogsPage.xaml.cs | 3 ++- src/Avalonia.Controls/Button.cs | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index 49921fb7f6..cc1b8e4f5a 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -128,7 +128,8 @@ namespace ControlCatalog.Pages (button = new Button { HorizontalAlignment = HorizontalAlignment.Center, - Content = "Click to close" + Content = "Click to close", + IsDefault = true }) } }, diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs index 8b22cdd4ec..34180225e0 100644 --- a/src/Avalonia.Controls/Button.cs +++ b/src/Avalonia.Controls/Button.cs @@ -547,6 +547,7 @@ namespace Avalonia.Controls if (e.Key == Key.Enter && IsVisible && IsEnabled) { OnClick(); + e.Handled = true; } } @@ -560,6 +561,7 @@ namespace Avalonia.Controls if (e.Key == Key.Escape && IsVisible && IsEnabled) { OnClick(); + e.Handled = true; } } From 8c8fb23c40d531fdc59b32a5de8e2f5eb5a14ec8 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Mar 2022 12:15:38 -0400 Subject: [PATCH 02/12] Make android test application buildable --- .../Avalonia.AndroidTestApplication.csproj | 8 +++- .../MainActivity.cs | 39 +++++++------------ 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index 8cb7aa1cfd..548393fb2f 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -11,7 +11,13 @@ true portable - + + + + Resources\drawable\Icon.png + + + True True diff --git a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs index 471b982d9e..e34fa6cf7b 100644 --- a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs +++ b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs @@ -1,9 +1,9 @@ using System; using Android.App; using Android.Content.PM; -using Android.OS; using Avalonia.Android; using Avalonia.Controls; +using Avalonia.Input.TextInput; using Avalonia.Markup.Xaml; using Avalonia.Media; using Avalonia.Styling; @@ -14,22 +14,15 @@ namespace Avalonia.AndroidTestApplication [Activity(Label = "Main", MainLauncher = true, Icon = "@drawable/icon", - Theme = "@style/Theme.AppCompat.NoActionBar", - ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize, + Theme = "@style/Theme.AppCompat.NoActionBar", + ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize, LaunchMode = LaunchMode.SingleInstance/*, ScreenOrientation = ScreenOrientation.Landscape*/)] - public class MainBaseActivity : AvaloniaActivity + public class MainActivity : AvaloniaActivity { - protected override void OnCreate(Bundle savedInstanceState) + protected override AppBuilder CustomizeAppBuilder(AppBuilder builder) { - if (Avalonia.Application.Current == null) - { - AppBuilder.Configure() - .UseAndroid() - .SetupWithoutStarting(); - } - base.OnCreate(savedInstanceState); - Content = App.CreateSimpleWindow(); + return base.CustomizeAppBuilder(builder); } } @@ -42,8 +35,6 @@ namespace Avalonia.AndroidTestApplication var baseLight = (IStyle)AvaloniaXamlLoader.Load( new Uri("resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default")); Styles.Add(baseLight); - - } // This provides a simple UI tree for testing input handling, drawing, etc @@ -76,12 +67,12 @@ namespace Avalonia.AndroidTestApplication Foreground = Brushes.Black }, - CreateTextBox(Input.TextInput.TextInputContentType.Normal), - CreateTextBox(Input.TextInput.TextInputContentType.Password), - CreateTextBox(Input.TextInput.TextInputContentType.Email), - CreateTextBox(Input.TextInput.TextInputContentType.Url), - CreateTextBox(Input.TextInput.TextInputContentType.Phone), - CreateTextBox(Input.TextInput.TextInputContentType.Number), + CreateTextBox(TextInputContentType.Normal), + CreateTextBox(TextInputContentType.Password), + CreateTextBox(TextInputContentType.Email), + CreateTextBox(TextInputContentType.Url), + CreateTextBox(TextInputContentType.Digits), + CreateTextBox(TextInputContentType.Number), } } }; @@ -89,16 +80,16 @@ namespace Avalonia.AndroidTestApplication return window; } - private static TextBox CreateTextBox(Input.TextInput.TextInputContentType contentType) + private static TextBox CreateTextBox(TextInputContentType contentType) { var textBox = new TextBox() { Margin = new Thickness(20, 10), Watermark = contentType.ToString(), BorderThickness = new Thickness(3), - FontSize = 20 + FontSize = 20, + [TextInputOptions.ContentTypeProperty] = contentType }; - textBox.TextInputOptionsQuery += (s, e) => { e.ContentType = contentType; }; return textBox; } From e91b3318e33746e59ef6e93fc3a1b48b9159be04 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Mar 2022 13:00:47 -0400 Subject: [PATCH 03/12] Enable AOT on android projects (release configuration only) --- samples/ControlCatalog.Android/ControlCatalog.Android.csproj | 3 ++- .../Avalonia.AndroidTestApplication.csproj | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj index 516acfe4b9..9777bb46c3 100644 --- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj +++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj @@ -21,8 +21,9 @@ True - False + True True + True diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj index 548393fb2f..db0bb01410 100644 --- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj +++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj @@ -22,7 +22,7 @@ True True True - + True From ab46885d62262441614c5069ffbe9ef821a0adce Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Mar 2022 13:01:05 -0400 Subject: [PATCH 04/12] Fix Visual Studio android projects build --- packages/Avalonia/Avalonia.csproj | 4 +++- src/Avalonia.MicroCom/Avalonia.MicroCom.csproj | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 4b28527465..4d0ed866a3 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -8,7 +8,9 @@ all - + true + TargetFramework=netstandard2.0 + diff --git a/src/Avalonia.MicroCom/Avalonia.MicroCom.csproj b/src/Avalonia.MicroCom/Avalonia.MicroCom.csproj index b796e173c4..d7f39f6642 100644 --- a/src/Avalonia.MicroCom/Avalonia.MicroCom.csproj +++ b/src/Avalonia.MicroCom/Avalonia.MicroCom.csproj @@ -10,6 +10,8 @@ false all + true + TargetFramework=netstandard2.0 From 3fe50be1683a3bba081b726c1c87728f6bf0b4d9 Mon Sep 17 00:00:00 2001 From: Max Katz Date: Tue, 15 Mar 2022 13:02:00 -0400 Subject: [PATCH 05/12] Update AndroidTestApplication futher --- .../MainActivity.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs index e34fa6cf7b..8f4beb2737 100644 --- a/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs +++ b/src/Android/Avalonia.AndroidTestApplication/MainActivity.cs @@ -3,6 +3,7 @@ using Android.App; using Android.Content.PM; using Avalonia.Android; using Avalonia.Controls; +using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Input.TextInput; using Avalonia.Markup.Xaml; using Avalonia.Media; @@ -30,11 +31,17 @@ namespace Avalonia.AndroidTestApplication { public override void Initialize() { - Styles.Add(new DefaultTheme()); + Styles.Add(new SimpleTheme(new Uri("avares://Avalonia.AndroidTestApplication"))); + } + + public override void OnFrameworkInitializationCompleted() + { + if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime) + { + singleViewLifetime.MainView = CreateSimpleWindow(); + } - var baseLight = (IStyle)AvaloniaXamlLoader.Load( - new Uri("resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default")); - Styles.Add(baseLight); + base.OnFrameworkInitializationCompleted(); } // This provides a simple UI tree for testing input handling, drawing, etc From 928a048e9cb12b4fa8abfb46654eb0b07ea450b7 Mon Sep 17 00:00:00 2001 From: Trym Lund Flogard Date: Tue, 22 Mar 2022 12:30:27 +0100 Subject: [PATCH 06/12] Fix ToggleSwitchFillOffDisabled resource key typo --- src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml | 2 +- src/Avalonia.Themes.Fluent/Controls/ToggleSwitch.xaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml b/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml index 305f1b1814..2c831cf360 100644 --- a/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml +++ b/src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml @@ -254,7 +254,7 @@