From b3b324697a778504465e8355512587be13576367 Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 2 Jul 2022 22:53:12 +0200 Subject: [PATCH] Device dialog - Logical layout selection --- .gitignore | 2 + src/.idea/.idea.Artemis/.idea/.gitignore | 13 --- src/.idea/.idea.Artemis/.idea/.name | 1 - src/.idea/.idea.Artemis/.idea/avalonia.xml | 102 ----------------- src/.idea/.idea.Artemis/.idea/encodings.xml | 4 - src/.idea/.idea.Artemis/.idea/indexLayout.xml | 8 -- src/.idea/.idea.Artemis/.idea/misc.xml | 8 -- src/.idea/.idea.Artemis/.idea/vcs.xml | 6 - .../Services/Builders/ContentDialogBuilder.cs | 10 ++ .../Assets/Images/PhysicalLayouts/abnt.png | Bin 0 -> 27843 bytes .../Assets/Images/PhysicalLayouts/ansi.png | Bin 0 -> 27167 bytes .../Assets/Images/PhysicalLayouts/iso.png | Bin 0 -> 27664 bytes .../Assets/Images/PhysicalLayouts/jis.png | Bin 0 -> 28370 bytes .../Assets/Images/PhysicalLayouts/ks.png | Bin 0 -> 27508 bytes .../Tabs/DeviceLogicalLayoutDialogView.axaml | 39 +++++++ .../DeviceLogicalLayoutDialogView.axaml.cs | 47 ++++++++ .../DeviceLogicalLayoutDialogViewModel.cs | 72 ++++++++++++ .../Tabs/DevicePhysicalLayoutDialogView.axaml | 104 ++++++++++++++++++ .../DevicePhysicalLayoutDialogView.axaml.cs | 19 ++++ .../DevicePhysicalLayoutDialogViewModel.cs | 41 +++++++ .../Device/Tabs/DevicePropertiesTabView.axaml | 45 ++++---- .../Tabs/DevicePropertiesTabViewModel.cs | 24 ++-- .../Device/Tabs/InputMappingsTabViewModel.cs | 1 - .../Services/DeviceLayoutService.cs | 96 ++++++++++++++++ .../Services/RegistrationService.cs | 1 + 25 files changed, 467 insertions(+), 176 deletions(-) delete mode 100644 src/.idea/.idea.Artemis/.idea/.gitignore delete mode 100644 src/.idea/.idea.Artemis/.idea/.name delete mode 100644 src/.idea/.idea.Artemis/.idea/avalonia.xml delete mode 100644 src/.idea/.idea.Artemis/.idea/encodings.xml delete mode 100644 src/.idea/.idea.Artemis/.idea/indexLayout.xml delete mode 100644 src/.idea/.idea.Artemis/.idea/misc.xml delete mode 100644 src/.idea/.idea.Artemis/.idea/vcs.xml create mode 100644 src/Artemis.UI/Assets/Images/PhysicalLayouts/abnt.png create mode 100644 src/Artemis.UI/Assets/Images/PhysicalLayouts/ansi.png create mode 100644 src/Artemis.UI/Assets/Images/PhysicalLayouts/iso.png create mode 100644 src/Artemis.UI/Assets/Images/PhysicalLayouts/jis.png create mode 100644 src/Artemis.UI/Assets/Images/PhysicalLayouts/ks.png create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogView.axaml create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogView.axaml.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogViewModel.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml.cs create mode 100644 src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogViewModel.cs create mode 100644 src/Artemis.UI/Services/DeviceLayoutService.cs diff --git a/.gitignore b/.gitignore index 10351521f..f25a67c8b 100644 --- a/.gitignore +++ b/.gitignore @@ -196,3 +196,5 @@ FakesAssemblies/ src/Artemis\.Storage/Storage\.db !src/Artemis.UI/screens/Settings/Debug docfx/docfx_project/_site/ + +src/.idea/ diff --git a/src/.idea/.idea.Artemis/.idea/.gitignore b/src/.idea/.idea.Artemis/.idea/.gitignore deleted file mode 100644 index 0f04753a2..000000000 --- a/src/.idea/.idea.Artemis/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/modules.xml -/contentModel.xml -/.idea.Artemis.iml -/projectSettingsUpdater.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/src/.idea/.idea.Artemis/.idea/.name b/src/.idea/.idea.Artemis/.idea/.name deleted file mode 100644 index cc79fd55c..000000000 --- a/src/.idea/.idea.Artemis/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -Artemis \ No newline at end of file diff --git a/src/.idea/.idea.Artemis/.idea/avalonia.xml b/src/.idea/.idea.Artemis/.idea/avalonia.xml deleted file mode 100644 index c9701a626..000000000 --- a/src/.idea/.idea.Artemis/.idea/avalonia.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/.idea/.idea.Artemis/.idea/encodings.xml b/src/.idea/.idea.Artemis/.idea/encodings.xml deleted file mode 100644 index df87cf951..000000000 --- a/src/.idea/.idea.Artemis/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/.idea/.idea.Artemis/.idea/indexLayout.xml b/src/.idea/.idea.Artemis/.idea/indexLayout.xml deleted file mode 100644 index 7b08163ce..000000000 --- a/src/.idea/.idea.Artemis/.idea/indexLayout.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/.idea/.idea.Artemis/.idea/misc.xml b/src/.idea/.idea.Artemis/.idea/misc.xml deleted file mode 100644 index 283b9b4d4..000000000 --- a/src/.idea/.idea.Artemis/.idea/misc.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/.idea/.idea.Artemis/.idea/vcs.xml b/src/.idea/.idea.Artemis/.idea/vcs.xml deleted file mode 100644 index 6c0b86358..000000000 --- a/src/.idea/.idea.Artemis/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/Artemis.UI.Shared/Services/Builders/ContentDialogBuilder.cs b/src/Artemis.UI.Shared/Services/Builders/ContentDialogBuilder.cs index b0a5c49d1..6825c2729 100644 --- a/src/Artemis.UI.Shared/Services/Builders/ContentDialogBuilder.cs +++ b/src/Artemis.UI.Shared/Services/Builders/ContentDialogBuilder.cs @@ -142,6 +142,16 @@ namespace Artemis.UI.Shared.Services.Builders return this; } + /// + /// Changes the dialog to take the full height of the window it's being hosted in. + /// + /// The builder that can be used to further build the dialog. + public ContentDialogBuilder WithFullSize() + { + _contentDialog.FullSizeDesired = true; + return this; + } + /// /// Asynchronously shows the content dialog. /// diff --git a/src/Artemis.UI/Assets/Images/PhysicalLayouts/abnt.png b/src/Artemis.UI/Assets/Images/PhysicalLayouts/abnt.png new file mode 100644 index 0000000000000000000000000000000000000000..dc75934299c1367a9c007052d86af545ec6e653f GIT binary patch literal 27843 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 literal 0 HcmV?d00001 diff --git a/src/Artemis.UI/Assets/Images/PhysicalLayouts/ansi.png b/src/Artemis.UI/Assets/Images/PhysicalLayouts/ansi.png new file mode 100644 index 0000000000000000000000000000000000000000..940a8f2331e96175468879abe75e06611103bdb3 GIT binary patch literal 27167 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 Z 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 B!$SZ7 literal 0 HcmV?d00001 diff --git a/src/Artemis.UI/Assets/Images/PhysicalLayouts/jis.png b/src/Artemis.UI/Assets/Images/PhysicalLayouts/jis.png new file mode 100644 index 0000000000000000000000000000000000000000..d872ddab3fc90f9b187910cdf277166c6605665a GIT binary patch literal 28370 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

$&g!L2XK|MsYN=aA^N z&q}^6f<&4rk~$7!1R_JpJM=E*1@fGjqJ5fvaXpk=M5<&nhwT19S8f5AR|tgizd~g} zS{LwcjM-m3OAl)TcmHs2*AO*suoSoy&!DOKt`!d~KuqE0%c-eCTUsG#b)J?e;hj@t z;&WpuD@EP^`hci=-i`>Wv?_H;Hu;!B-8)hHq}g%}Ph2%m)8lpb+Zb zY^~RLJdmEIpF%b|30!T)*ve_TS<8zC)aTTUffSWXmV(}$=gKqpl{F`D=Eyc)hf_%9j~_eD2V`pL@_=P)X+Y*hr5v3x`Sl`b#ys!6-oe zH*qVo5A^<`S=D@18pCIUTG?<}+c`A3rhW}eb!xs^@v6vz9B1TK*^=UMDa)z#mxTbYD|T@z1?c`sg+Fso)pl3RS%fwIlnz%0r9vx+Sw zdj1Vch`gsh#U-|km6W%b4pIu47H+N_?UeP6oVfT(ypdin6 z?Cnt{vrrqjRFmF1(1(>SA9z9@l^xnUYkIZpBGJXPu71*KIxSVjMmFPAQSGEh**hs0 zaiN6O{MG7D;Jeh>3zJ{KVliJv8+DLzptjeXtdE$-r*#cFew}WEf3U? z%t@w99=c`EB?+?h@{(*m&vLz_oQ}yMo@g_`KB__ag!?y$JY4j-3&xGM4;VV&TKT~s z_vw4A97u!We%~|eg zs?XoJ=w+vEJU6N-sT0l{U9%}-9K4#YdEe~5o^fXnHFq98Rnfno3o|Qp-@f30o^Ef~ z30iVxHAk0{{DgCkvxBdFQE8|Sayh|Fl~pA|Am1)xJ|dn@*SXhR=-oePDK-%-pO=T0KXSFs;FoGUB_;=<;5)gQPpdg}R< zbMoP*JsjHO?xgMq`%~{|mgUzfzj8Ijqf_q8#qwF%hwXb^OVCVUEnX3^u_vPunG;6f zxj&RIee&h6iuVrdZcT>(U0g{4++qBnTVVg{3w>>npj16^@atux^n^dkt{U|PtD@HK zxcx1fP!0KfSd7maEWAB3_-(T{cc9mOMXAR+YZr7a0zxjvRb9trFSbnx0p%k?=+T~- z(zKUO`hi!t(M6I-ZWgf8yp!Uqv z)WOPvHc%poso4l;j7mcRc!b#nyXi=XY8Pvm0(tk)%R~4H++9>{doFu z=HR6W38?5(|8W%(0qXZ2|nd~ynv@MU`>l%~3D!Qs| zhIX+|(^U{3YX(cs!{_gg0=Xqz%StS}2UqIH^X#pZe>;E4SNSQ-{yuK6fv@T>c6mlg z;a}ZdX#9Jf73CkRv6jnSmX2sYDzPBy-(N<5XkZ{Qr_HkZ$(!mGUM`I28Iho_b)os= z(-2~0mMX!BqhnI)Gx8}7OW`=ZJFf;Q#*34Dps1>lr+z0ws84^rjSg3VCQu-*=JrYP zlm`4nBdd)>BBj=%>>Do;#~mv1YBH?qaFj!t;;gfUt + + Artemis couldn't automatically determine the logical layout of your + + + + While not as important as the physical layout, setting the correct logical layout will allow Artemis to show the right keycaps (if a matching layout file is present) + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogView.axaml.cs b/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogView.axaml.cs new file mode 100644 index 000000000..d3ebaf1ae --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogView.axaml.cs @@ -0,0 +1,47 @@ +using System; +using System.Globalization; +using System.Threading.Tasks; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Avalonia.ReactiveUI; +using Avalonia.Threading; +using ReactiveUI; + +namespace Artemis.UI.Screens.Device; + +public partial class DeviceLogicalLayoutDialogView : ReactiveUserControl +{ + private readonly AutoCompleteBox _autoCompleteBox; + + public DeviceLogicalLayoutDialogView() + { + InitializeComponent(); + + _autoCompleteBox = this.Get("RegionsAutoCompleteBox"); + _autoCompleteBox.ItemFilter += SearchRegions; + + Dispatcher.UIThread.InvokeAsync(DelayedAutoFocus); + } + + private async Task DelayedAutoFocus() + { + await Task.Delay(200); + _autoCompleteBox.Focus(); + _autoCompleteBox.PopulateComplete(); + } + + private bool SearchRegions(string search, object item) + { + if (item is not RegionInfo regionInfo) + return false; + + return regionInfo.EnglishName.Contains(search, StringComparison.OrdinalIgnoreCase) || + regionInfo.NativeName.Contains(search, StringComparison.OrdinalIgnoreCase) || + regionInfo.TwoLetterISORegionName.Contains(search, StringComparison.OrdinalIgnoreCase); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogViewModel.cs b/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogViewModel.cs new file mode 100644 index 000000000..936b3968c --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DeviceLogicalLayoutDialogViewModel.cs @@ -0,0 +1,72 @@ +using System.Collections.ObjectModel; +using System.Globalization; +using System.Linq; +using System.Reactive; +using System.Reactive.Linq; +using System.Threading.Tasks; +using Artemis.Core; +using Artemis.UI.Shared; +using Artemis.UI.Shared.Services; +using FluentAvalonia.UI.Controls; +using ReactiveUI; + +namespace Artemis.UI.Screens.Device; + +public class DeviceLogicalLayoutDialogViewModel : ContentDialogViewModelBase +{ + private const int LOCALE_NEUTRAL = 0x0000; + private const int LOCALE_CUSTOM_DEFAULT = 0x0c00; + private const int LOCALE_INVARIANT = 0x007F; + + private RegionInfo? _selectedRegion; + + public DeviceLogicalLayoutDialogViewModel(ArtemisDevice device) + { + Device = device; + ApplyLogicalLayout = ReactiveCommand.Create(ExecuteApplyLogicalLayout, this.WhenAnyValue(vm => vm.SelectedRegion).Select(r => r != null)); + Regions = new ObservableCollection(CultureInfo.GetCultures(CultureTypes.SpecificCultures) + .Where(c => c.LCID != LOCALE_INVARIANT && c.LCID != LOCALE_NEUTRAL && c.LCID != LOCALE_CUSTOM_DEFAULT) + .Select(c => new RegionInfo(c.LCID)) + .GroupBy(r => r.EnglishName) + .Select(g => g.First()) + .OrderBy(r => r.EnglishName)); + + // Default to US/international + SelectedRegion = Regions.FirstOrDefault(r => r.TwoLetterISORegionName == "US"); + } + + public ArtemisDevice Device { get; } + public ReactiveCommand ApplyLogicalLayout { get; } + public ObservableCollection Regions { get; } + public bool Applied { get; set; } + + public RegionInfo? SelectedRegion + { + get => _selectedRegion; + set => RaiseAndSetIfChanged(ref _selectedRegion, value); + } + + private void ExecuteApplyLogicalLayout() + { + if (SelectedRegion == null) + return; + + Device.LogicalLayout = SelectedRegion.TwoLetterISORegionName; + Applied = true; + ContentDialog?.Hide(ContentDialogResult.Primary); + } + + public static async Task SelectLogicalLayout(IWindowService windowService, ArtemisDevice device) + { + await windowService.CreateContentDialog() + .WithTitle("Select logical layout") + .WithViewModel(out DeviceLogicalLayoutDialogViewModel vm, ("device", device)) + .WithCloseButtonText("Cancel") + .WithDefaultButton(Shared.Services.Builders.ContentDialogButton.Primary) + .HavingPrimaryButton(b => b.WithText("Select").WithCommand(vm.ApplyLogicalLayout)) + .ShowAsync(); + + return vm.Applied; + } + +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml new file mode 100644 index 000000000..484a95b26 --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml @@ -0,0 +1,104 @@ + + + + + Artemis couldn't automatically determine the physical layout of your + + + In order for Artemis to know which keys are on your keyboard and where they're located, select the matching layout below. + P.S. Don't worry about missing special keys like num keys/function keys or macro keys, they aren't important here. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml.cs b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml.cs new file mode 100644 index 000000000..d2314c958 --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogView.axaml.cs @@ -0,0 +1,19 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Avalonia.ReactiveUI; + +namespace Artemis.UI.Screens.Device; + +public partial class DevicePhysicalLayoutDialogView : ReactiveUserControl +{ + public DevicePhysicalLayoutDialogView() + { + InitializeComponent(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogViewModel.cs b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogViewModel.cs new file mode 100644 index 000000000..337277ed0 --- /dev/null +++ b/src/Artemis.UI/Screens/Device/Tabs/DevicePhysicalLayoutDialogViewModel.cs @@ -0,0 +1,41 @@ +using System; +using System.Reactive; +using System.Threading.Tasks; +using Artemis.Core; +using Artemis.UI.Shared; +using Artemis.UI.Shared.Services; +using FluentAvalonia.UI.Controls; +using ReactiveUI; + +namespace Artemis.UI.Screens.Device; + +public class DevicePhysicalLayoutDialogViewModel : ContentDialogViewModelBase +{ + public DevicePhysicalLayoutDialogViewModel(ArtemisDevice device) + { + Device = device; + ApplyPhysicalLayout = ReactiveCommand.Create(ExecuteApplyPhysicalLayout); + } + + public ArtemisDevice Device { get; } + public ReactiveCommand ApplyPhysicalLayout { get; } + public bool Applied { get; set; } + + private void ExecuteApplyPhysicalLayout(string physicalLayout) + { + Device.PhysicalLayout = Enum.Parse(physicalLayout); + Applied = true; + ContentDialog?.Hide(ContentDialogResult.Primary); + } + + public static async Task SelectPhysicalLayout(IWindowService windowService, ArtemisDevice device) + { + await windowService.CreateContentDialog() + .WithTitle("Select physical layout") + .WithViewModel(out DevicePhysicalLayoutDialogViewModel vm, ("device", device)) + .WithCloseButtonText("Cancel") + .ShowAsync(); + + return vm.Applied; + } +} \ No newline at end of file diff --git a/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml b/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml index 9ab42b07b..92cc7395e 100644 --- a/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml +++ b/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabView.axaml @@ -7,13 +7,11 @@ xmlns:converters="clr-namespace:Artemis.UI.Shared.Converters;assembly=Artemis.UI.Shared" xmlns:device="clr-namespace:Artemis.UI.Screens.Device" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="1200" - x:Class="Artemis.UI.Screens.Device.DevicePropertiesTabView"> + x:Class="Artemis.UI.Screens.Device.DevicePropertiesTabView" + x:DataType="device:DevicePropertiesTabViewModel"> - - - @@ -30,19 +28,19 @@ You can hover over a category for a more detailed description. - - - - @@ -58,7 +56,7 @@ Grid.Column="1" Margin="10 0" VerticalAlignment="Center" - Value="{Binding X}" /> + Value="{CompiledBinding X}" /> mm Y-coordinate @@ -66,7 +64,7 @@ Grid.Column="1" Margin="10 0" VerticalAlignment="Center" - Value="{Binding Y}" /> + Value="{CompiledBinding Y}" /> mm Scale @@ -74,7 +72,7 @@ Grid.Column="1" Margin="10 0" VerticalAlignment="Center" - Value="{Binding Scale}" /> + Value="{CompiledBinding Scale}" /> times Rotation @@ -82,7 +80,7 @@ Grid.Column="1" Margin="10 0" VerticalAlignment="Center" - Value="{Binding Rotation}" /> + Value="{CompiledBinding Rotation}" /> deg @@ -100,12 +98,12 @@ @@ -187,7 +185,10 @@ - diff --git a/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs b/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs index af45e942d..1d96e4e90 100644 --- a/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs +++ b/src/Artemis.UI/Screens/Device/Tabs/DevicePropertiesTabViewModel.cs @@ -33,12 +33,6 @@ namespace Artemis.UI.Screens.Device private int _x; private int _y; -#pragma warning disable CS8618 // Design-time constructor - public DevicePropertiesTabViewModel() - { - } -#pragma warning restore CS8618 - public DevicePropertiesTabViewModel(ArtemisDevice device, ICoreService coreService, IRgbService rgbService, IWindowService windowService, INotificationService notificationService) { _coreService = coreService; @@ -167,6 +161,8 @@ namespace Artemis.UI.Screens.Device set => SetCategory(DeviceCategory.Peripherals, value); } + public bool RequiresManualSetup => !Device.DeviceProvider.CanDetectPhysicalLayout || !Device.DeviceProvider.CanDetectLogicalLayout; + public void ApplyScaling() { Device.RedScale = RedScale / 100f; @@ -201,12 +197,18 @@ namespace Artemis.UI.Screens.Device } } - public async Task SelectPhysicalLayout() + public async Task RestartSetup() { - await _windowService.CreateContentDialog() - .WithTitle("Select layout") - .WithViewModel(("device", Device)) - .ShowAsync(); + if (!RequiresManualSetup) + return; + if (!Device.DeviceProvider.CanDetectPhysicalLayout && !await DevicePhysicalLayoutDialogViewModel.SelectPhysicalLayout(_windowService, Device)) + return; + if (!Device.DeviceProvider.CanDetectLogicalLayout && !await DeviceLogicalLayoutDialogViewModel.SelectLogicalLayout(_windowService, Device)) + return; + + await Task.Delay(400); + _rgbService.SaveDevice(Device); + _rgbService.ApplyBestDeviceLayout(Device); } public async Task Apply() diff --git a/src/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs b/src/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs index 83aa460aa..a76dc163b 100644 --- a/src/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs +++ b/src/Artemis.UI/Screens/Device/Tabs/InputMappingsTabViewModel.cs @@ -47,7 +47,6 @@ namespace Artemis.UI.Screens.Device }); } - public ArtemisDevice Device { get; } public ArtemisLed? SelectedLed diff --git a/src/Artemis.UI/Services/DeviceLayoutService.cs b/src/Artemis.UI/Services/DeviceLayoutService.cs new file mode 100644 index 000000000..7c25fba57 --- /dev/null +++ b/src/Artemis.UI/Services/DeviceLayoutService.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Artemis.Core; +using Artemis.Core.Services; +using Artemis.UI.Screens.Device; +using Artemis.UI.Services.Interfaces; +using Artemis.UI.Shared.Services; +using Artemis.UI.Shared.Services.Builders; +using Artemis.UI.Shared.Services.MainWindow; +using Avalonia.Threading; +using RGB.NET.Core; +using KeyboardLayoutType = Artemis.Core.KeyboardLayoutType; + +namespace Artemis.UI.Services; + +public class DeviceLayoutService : IDeviceLayoutService +{ + private readonly List _ignoredDevices; + private readonly IMainWindowService _mainWindowService; + private readonly IRgbService _rgbService; + private readonly IWindowService _windowService; + + public DeviceLayoutService(IRgbService rgbService, IMainWindowService mainWindowService, IWindowService windowService) + { + _rgbService = rgbService; + _mainWindowService = mainWindowService; + _windowService = windowService; + _ignoredDevices = new List(); + + rgbService.DeviceAdded += RgbServiceOnDeviceAdded; + mainWindowService.MainWindowOpened += WindowServiceOnMainWindowOpened; + } + + private async Task RequestLayoutInput(ArtemisDevice artemisDevice) + { + bool configure = await _windowService.ShowConfirmContentDialog( + "Device requires layout info", + $"Artemis could not detect the layout of your {artemisDevice.RgbDevice.DeviceInfo.DeviceName}. Please configure it manually", + "Configure", + "Ignore for now" + ); + + if (!configure) + { + _ignoredDevices.Add(artemisDevice); + return; + } + + if (!artemisDevice.DeviceProvider.CanDetectPhysicalLayout && !await DevicePhysicalLayoutDialogViewModel.SelectPhysicalLayout(_windowService, artemisDevice)) + { + _ignoredDevices.Add(artemisDevice); + return; + } + + if (!artemisDevice.DeviceProvider.CanDetectLogicalLayout && !await DeviceLogicalLayoutDialogViewModel.SelectLogicalLayout(_windowService, artemisDevice)) + { + _ignoredDevices.Add(artemisDevice); + return; + } + + await Task.Delay(400); + _rgbService.SaveDevice(artemisDevice); + _rgbService.ApplyBestDeviceLayout(artemisDevice); + } + + private bool DeviceNeedsLayout(ArtemisDevice d) + { + return d.DeviceType == RGBDeviceType.Keyboard && + (d.LogicalLayout == null || d.PhysicalLayout == KeyboardLayoutType.Unknown) && + (!d.DeviceProvider.CanDetectLogicalLayout || !d.DeviceProvider.CanDetectPhysicalLayout); + } + + private async void WindowServiceOnMainWindowOpened(object? sender, EventArgs e) + { + List devices = _rgbService.Devices.Where(device => DeviceNeedsLayout(device) && !_ignoredDevices.Contains(device)).ToList(); + await Dispatcher.UIThread.InvokeAsync(async () => + { + foreach (ArtemisDevice artemisDevice in devices) + await RequestLayoutInput(artemisDevice); + }); + } + + private async void RgbServiceOnDeviceAdded(object? sender, DeviceEventArgs e) + { + if (_ignoredDevices.Contains(e.Device) || !DeviceNeedsLayout(e.Device) || !_mainWindowService.IsMainWindowOpen) + return; + + await Dispatcher.UIThread.InvokeAsync(async () => await RequestLayoutInput(e.Device)); + } +} + +public interface IDeviceLayoutService : IArtemisUIService +{ +} \ No newline at end of file diff --git a/src/Artemis.UI/Services/RegistrationService.cs b/src/Artemis.UI/Services/RegistrationService.cs index 8bed959bd..b89412e50 100644 --- a/src/Artemis.UI/Services/RegistrationService.cs +++ b/src/Artemis.UI/Services/RegistrationService.cs @@ -33,6 +33,7 @@ public class RegistrationService : IRegistrationService IProfileEditorService profileEditorService, INodeService nodeService, IDataModelUIService dataModelUIService, + IDeviceLayoutService deviceLayoutService, // here to make sure it is instantiated IEnumerable toolViewModels) { _kernel = kernel;