misc: chore: optimize UserSelectorDialog closed handler

This commit is contained in:
Evan Husted 2025-02-11 20:36:11 -06:00
parent e8e1dc6619
commit 06d34a5992
2 changed files with 11 additions and 15 deletions

View File

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

View File

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