Browse Source

MainWindowViewModel warning fix, app theme fix

Veloe 2 years ago
parent
commit
f47c17db0f

+ 2 - 2
VeloeMinecraftLauncher/App.axaml

@@ -2,11 +2,11 @@
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:local="using:VeloeMinecraftLauncher"
              x:Class="VeloeMinecraftLauncher.App"
-	         RequestedThemeVariant="Default">
+	         RequestedThemeVariant="Dark">
     <Application.DataTemplates>
         <local:ViewLocator/>
     </Application.DataTemplates>
 	<Application.Styles>
-		<FluentTheme/>
+		<FluentTheme />
 	</Application.Styles>
 </Application>

+ 7 - 9
VeloeMinecraftLauncher/ViewModels/MainWindowViewModel.cs

@@ -101,7 +101,7 @@ public class MainWindowViewModel : ViewModelBase
             {
                 var changelog = await Downloader.DownloadAndDeserializeJsonData<List<Changelog>>("https://files.veloe.link/launcher/changelog.json");
 
-                if (changelog is not null &&  Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+                if (changelog is not null &&  Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null)
                 {
 #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                     Dispatcher.UIThread.InvokeAsync(() =>
@@ -165,7 +165,7 @@ public class MainWindowViewModel : ViewModelBase
                     _connection.Reconnecting += reconnecting;
                     _connection.Reconnected += reconnected;
 
-                    if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+                    if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null)
                     {
 #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
                         Dispatcher.UIThread.InvokeAsync(() =>
@@ -397,7 +397,7 @@ public class MainWindowViewModel : ViewModelBase
             DataContext = versionsDownloaderViewModel
         };
        
-        if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+        if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null)
         {
             versionsDownloader.Closed += updateAvailable;
             versionsDownloader.ShowDialog(desktop.MainWindow);            
@@ -622,7 +622,7 @@ public class MainWindowViewModel : ViewModelBase
         {
             Dispatcher.UIThread.InvokeAsync(() =>
             {
-                var scroll = desktop.MainWindow.GetControl<ScrollViewer>(scrollName);
+                var scroll = desktop.MainWindow?.GetControl<ScrollViewer>(scrollName);
                 scroll?.ScrollToEnd();
             });
 
@@ -739,7 +739,7 @@ public class MainWindowViewModel : ViewModelBase
     {
         var settingsWindow = new SettingsWindow { DataContext = new SettingsWindowViewModel() };
 
-        if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+        if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null)
         {
             settingsWindow.Closed += updateAvailable;
             settingsWindow.ShowDialog(desktop.MainWindow);
@@ -755,16 +755,14 @@ public class MainWindowViewModel : ViewModelBase
             updater.StartInfo.FileName += ".exe";
 
         if (!File.Exists(updater.StartInfo.FileName))
-            Task.Run(()=>UpdateUpdater()).Wait();
+            Task.Run(UpdateUpdater).Wait();
 
         if (File.Exists(updater.StartInfo.FileName))
         {
             updater.Start();
 
-            if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
-            {
+            if (Avalonia.Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop && desktop.MainWindow is not null)
                 desktop.MainWindow.Close();
-            }
         }
         else
             OpenErrorWindow(new FileNotFoundException($"File {updater.StartInfo.FileName} not found!"));