Browse Source

Fixed mime types button not updating after install/uninstall (#241)

Nicola 1 year ago
parent
commit
8444e4dca0

+ 8 - 2
src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs

@@ -102,6 +102,7 @@ namespace Ryujinx.Ava.UI.ViewModels
         private float _volumeBeforeMute;
         private string _backendText;
 
+        private bool _areMimeTypesRegistered = FileAssociationHelper.AreMimeTypesRegistered;
         private bool _canUpdate = true;
         private Cursor _cursor;
         private string _title;
@@ -804,10 +805,15 @@ namespace Ryujinx.Ava.UI.ViewModels
         {
             get => FileAssociationHelper.IsTypeAssociationSupported;
         }
-        
+
         public bool AreMimeTypesRegistered
         {
-            get => FileAssociationHelper.AreMimeTypesRegistered;
+            get => _areMimeTypesRegistered;
+            set {
+                _areMimeTypesRegistered = value;
+
+                OnPropertyChanged();
+            }
         }
 
         public ObservableCollectionExtended<ApplicationData> Applications

+ 4 - 2
src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs

@@ -165,7 +165,8 @@ namespace Ryujinx.Ava.UI.Views.Main
 
         private async void InstallFileTypes_Click(object sender, RoutedEventArgs e)
         {
-            if (FileAssociationHelper.Install())
+            ViewModel.AreMimeTypesRegistered = FileAssociationHelper.Install();
+            if (ViewModel.AreMimeTypesRegistered)
                 await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesSuccessMessage], string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty);
             else
                 await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesErrorMessage]);
@@ -173,7 +174,8 @@ namespace Ryujinx.Ava.UI.Views.Main
 
         private async void UninstallFileTypes_Click(object sender, RoutedEventArgs e)
         {
-            if (FileAssociationHelper.Uninstall())
+            ViewModel.AreMimeTypesRegistered = !FileAssociationHelper.Uninstall();
+            if (!ViewModel.AreMimeTypesRegistered)
                 await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesSuccessMessage], string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty);
             else
                 await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesErrorMessage]);