diff --git a/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs b/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs index e83502417..4e288c11c 100644 --- a/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/SettingsViewModel.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Reactive.Disposables; +using System.Reactive.Linq; using System.Threading; using System.Threading.Tasks; using Artemis.UI.Routing; @@ -42,14 +43,11 @@ public partial class SettingsViewModel : RoutableHostScreen, IMa public ViewModelBase? TitleBarViewModel => null; /// - public override async Task OnNavigating(NavigationArguments args, CancellationToken cancellationToken) + public override Task OnNavigating(NavigationArguments args, CancellationToken cancellationToken) { - // Display tab change on navigate - SelectedTab = SettingTabs.FirstOrDefault(t => t.Matches(args.Path)); - - // Always show a tab, if there is none forward to the first - if (SelectedTab == null) - await _router.Navigate(SettingTabs.First().Path); + // Display tab change on navigate, if there is none forward to the first + SelectedTab = SettingTabs.FirstOrDefault(t => t.Matches(args.Path)) ?? SettingTabs.FirstOrDefault(); + return Task.CompletedTask; } public void GoBack() diff --git a/src/Artemis.UI/Screens/Settings/Tabs/ReleasesTabViewModel.cs b/src/Artemis.UI/Screens/Settings/Tabs/ReleasesTabViewModel.cs index 3373eba8c..10e9d5f59 100644 --- a/src/Artemis.UI/Screens/Settings/Tabs/ReleasesTabViewModel.cs +++ b/src/Artemis.UI/Screens/Settings/Tabs/ReleasesTabViewModel.cs @@ -62,7 +62,7 @@ public partial class ReleasesTabViewModel : RoutableHostScreen ReleaseViewModels { get; } public string Channel { get; } - + public async Task GetReleases(CancellationToken cancellationToken) { try @@ -97,7 +97,7 @@ public partial class ReleasesTabViewModel : RoutableHostScreen public override async Task OnNavigating(NavigationArguments args, CancellationToken cancellationToken) { @@ -109,10 +109,6 @@ public partial class ReleasesTabViewModel : RoutableHostScreen vm.Release.Id == releaseId); // Otherwise forward to the last release else - { - ReleaseViewModel? lastRelease = ReleaseViewModels.FirstOrDefault(r => r.IsCurrentVersion) ?? ReleaseViewModels.FirstOrDefault(); - if (lastRelease != null) - await _router.Navigate($"settings/releases/{lastRelease.Release.Id}"); - } + SelectedReleaseViewModel = ReleaseViewModels.FirstOrDefault(r => r.IsCurrentVersion) ?? ReleaseViewModels.FirstOrDefault(); } } \ No newline at end of file diff --git a/src/Artemis.UI/Screens/StartupWizard/StartupWizardViewModel.cs b/src/Artemis.UI/Screens/StartupWizard/StartupWizardViewModel.cs index e112dacff..75de7eb2e 100644 --- a/src/Artemis.UI/Screens/StartupWizard/StartupWizardViewModel.cs +++ b/src/Artemis.UI/Screens/StartupWizard/StartupWizardViewModel.cs @@ -1,5 +1,6 @@ using System; using Artemis.Core; +using Artemis.Core.Services; using Artemis.UI.Screens.StartupWizard.Steps; using Artemis.UI.Shared; using Artemis.UI.Shared.Services; @@ -11,11 +12,13 @@ namespace Artemis.UI.Screens.StartupWizard; public partial class StartupWizardViewModel : DialogViewModelBase { private readonly IContainer _container; + private readonly ISettingsService _settingsService; [Notify] private WizardStepViewModel _screen; - public StartupWizardViewModel(IContainer container, IWindowService windowService) + public StartupWizardViewModel(IContainer container, IWindowService windowService, ISettingsService settingsService) { _container = container; + _settingsService = settingsService; _screen = _container.Resolve(); _screen.Wizard = this; @@ -41,6 +44,10 @@ public partial class StartupWizardViewModel : DialogViewModelBase public void SkipOrFinishWizard() { + PluginSetting setting = _settingsService.GetSetting("UI.SetupWizardCompleted", false); + setting.Value = true; + setting.Save(); + Close(true); } } \ No newline at end of file