Просмотр исходного кода

misc: chore: optimize UserSelectorDialog closed handler

Evan Husted 1 год назад
Родитель
Сommit
06d34a5992

+ 1 - 2
src/Ryujinx/UI/Applet/AvaHostUIHandler.cs

@@ -283,8 +283,7 @@ namespace Ryujinx.Ava.UI.Applet
                     Profiles = profiles, 
                     SelectedUserId = _parent.AccountManager.LastOpenedUser.UserId
                 };
-                UserSelectorDialog content = new(viewModel);
-                (selected, _) = await UserSelectorDialog.ShowInputDialog(content);
+                (selected, _) = await UserSelectorDialog.ShowInputDialog(viewModel);
         
                 dialogCloseEvent.Set();
             });

+ 10 - 13
src/Ryujinx/UI/Applet/UserSelectorDialog.axaml.cs

@@ -79,7 +79,7 @@ namespace Ryujinx.Ava.UI.Applet
             }
         }
 
-        public static async Task<(UserId Id, bool Result)> ShowInputDialog(UserSelectorDialog content)
+        public static async Task<(UserId Id, bool Result)> ShowInputDialog(UserSelectorDialogViewModel viewModel)
         {
             ContentDialog contentDialog = new()
             {
@@ -87,22 +87,25 @@ namespace Ryujinx.Ava.UI.Applet
                 PrimaryButtonText = LocaleManager.Instance[LocaleKeys.Continue],
                 SecondaryButtonText = string.Empty,
                 CloseButtonText = LocaleManager.Instance[LocaleKeys.Cancel],
-                Content = content,
+                Content = new UserSelectorDialog(viewModel),
                 Padding = new Thickness(0)
             };
 
             UserId result = UserId.Null;
             bool input = false;
+            
+            contentDialog.Closed += Handler;
+
+            await ContentDialogHelper.ShowAsync(contentDialog);
 
+            return (result, input);
+            
             void Handler(ContentDialog sender, ContentDialogClosedEventArgs eventArgs)
             {
                 if (eventArgs.Result == ContentDialogResult.Primary)
                 {
-                    if (contentDialog.Content is UserSelectorDialog view)
-                    {
-                        result = view.ViewModel.SelectedUserId;
-                        input = true;
-                    }
+                    result = viewModel.SelectedUserId;
+                    input = true;
                 }
                 else
                 {
@@ -110,12 +113,6 @@ namespace Ryujinx.Ava.UI.Applet
                     input = false;
                 }
             }
-
-            contentDialog.Closed += Handler;
-
-            await ContentDialogHelper.ShowAsync(contentDialog);
-
-            return (result, input);
         }
     }
 }