mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-12-12 22:36:59 +00:00
move more of the setup wizard logic into the setup wizard itself instead of having some critical logic in a random lambda in MainWindow.axaml.cs
This commit is contained in:
parent
615b2c8b8a
commit
c4873ca06b
5 changed files with 33 additions and 31 deletions
|
|
@ -57,7 +57,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
mwvm.VirtualFileSystem.ReloadKeySet();
|
_mainWindow.VirtualFileSystem.ReloadKeySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
using Avalonia.Controls.Presenters;
|
|
||||||
using Gommon;
|
using Gommon;
|
||||||
using Ryujinx.Ava.Common.Locale;
|
using Ryujinx.Ava.Common.Locale;
|
||||||
using Ryujinx.Ava.Systems.Configuration;
|
using Ryujinx.Ava.Systems.Configuration;
|
||||||
using Ryujinx.Ava.Systems.SetupWizard;
|
using Ryujinx.Ava.Systems.SetupWizard;
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
using Ryujinx.Ava.UI.Helpers;
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
|
||||||
using Ryujinx.Ava.UI.SetupWizard.Pages;
|
using Ryujinx.Ava.UI.SetupWizard.Pages;
|
||||||
|
using Ryujinx.Ava.UI.Windows;
|
||||||
using Ryujinx.Common.Configuration;
|
using Ryujinx.Common.Configuration;
|
||||||
using Ryujinx.HLE.FileSystem;
|
using Ryujinx.HLE.FileSystem;
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -14,15 +13,18 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.SetupWizard
|
namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
{
|
{
|
||||||
public partial class RyujinxSetupWizard(ContentPresenter presenter, MainWindowViewModel mwvm, Action onClose)
|
public partial class RyujinxSetupWizard(RyujinxSetupWizardWindow wizardWindow)
|
||||||
: BaseSetupWizard(presenter)
|
: BaseSetupWizard(wizardWindow.WizardPresenter)
|
||||||
{
|
{
|
||||||
|
private readonly MainWindow _mainWindow = RyujinxApp.MainWindow;
|
||||||
|
|
||||||
private bool _configWasModified = false;
|
private bool _configWasModified = false;
|
||||||
|
|
||||||
public bool HasFirmware => mwvm.ContentManager.GetCurrentFirmwareVersion() != null;
|
public bool HasFirmware => _mainWindow.ContentManager.GetCurrentFirmwareVersion() != null;
|
||||||
|
|
||||||
public override async Task Start()
|
public override async Task Start()
|
||||||
{
|
{
|
||||||
|
NotificationHelper.SetNotificationManager(wizardWindow);
|
||||||
RyujinxSetupWizardWindow.IsUsingSetupWizard = true;
|
RyujinxSetupWizardWindow.IsUsingSetupWizard = true;
|
||||||
Start:
|
Start:
|
||||||
await FirstPage();
|
await FirstPage();
|
||||||
|
|
@ -35,9 +37,10 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
if (!await SetupFirmware())
|
if (!await SetupFirmware())
|
||||||
goto Keys;
|
goto Keys;
|
||||||
|
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
onClose();
|
NotificationHelper.SetNotificationManager(_mainWindow);
|
||||||
|
wizardWindow.Close();
|
||||||
|
RyujinxSetupWizardWindow.IsUsingSetupWizard = false;
|
||||||
|
|
||||||
if (_configWasModified)
|
if (_configWasModified)
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.GlobalConfigurationPath);
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.GlobalConfigurationPath);
|
||||||
|
|
@ -45,7 +48,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
|
|
||||||
private async ValueTask<bool> SetupKeys()
|
private async ValueTask<bool> SetupKeys()
|
||||||
{
|
{
|
||||||
if (!mwvm.VirtualFileSystem.HasKeySet)
|
if (!_mainWindow.VirtualFileSystem.HasKeySet)
|
||||||
{
|
{
|
||||||
Retry:
|
Retry:
|
||||||
bool result = await NextPage()
|
bool result = await NextPage()
|
||||||
|
|
@ -73,7 +76,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
{
|
{
|
||||||
if (!HasFirmware)
|
if (!HasFirmware)
|
||||||
{
|
{
|
||||||
if (!mwvm.VirtualFileSystem.HasKeySet)
|
if (!_mainWindow.VirtualFileSystem.HasKeySet)
|
||||||
{
|
{
|
||||||
NotificationHelper.ShowError("Keys still seem to not be installed. Please try again.");
|
NotificationHelper.ShowError("Keys still seem to not be installed. Please try again.");
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -93,8 +96,8 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
mwvm.ContentManager.InstallFirmware(fwvm.FirmwareSourcePath);
|
_mainWindow.ContentManager.InstallFirmware(fwvm.FirmwareSourcePath);
|
||||||
SystemVersion installedFwVer = mwvm.ContentManager.GetCurrentFirmwareVersion();
|
SystemVersion installedFwVer = _mainWindow.ContentManager.GetCurrentFirmwareVersion();
|
||||||
if (installedFwVer != null)
|
if (installedFwVer != null)
|
||||||
{
|
{
|
||||||
NotificationHelper.ShowInformation(
|
NotificationHelper.ShowInformation(
|
||||||
|
|
@ -110,7 +113,7 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
"\nPlease check the log or try again."
|
"\nPlease check the log or try again."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
mwvm.RefreshFirmwareStatus(installedFwVer, allowNullVersion: true);
|
_mainWindow.ViewModel.RefreshFirmwareStatus(installedFwVer, allowNullVersion: true);
|
||||||
|
|
||||||
// Purge Applet Cache.
|
// Purge Applet Cache.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
|
using Avalonia.Controls;
|
||||||
using Ryujinx.Ava.Systems.Configuration;
|
using Ryujinx.Ava.Systems.Configuration;
|
||||||
using Ryujinx.Ava.Systems.SetupWizard;
|
using Ryujinx.Ava.Systems.SetupWizard;
|
||||||
using Ryujinx.Ava.UI.Helpers;
|
|
||||||
using Ryujinx.Ava.UI.ViewModels;
|
|
||||||
using Ryujinx.Ava.UI.Windows;
|
using Ryujinx.Ava.UI.Windows;
|
||||||
using Ryujinx.Common.Configuration;
|
using Ryujinx.Common.Configuration;
|
||||||
using Ryujinx.Common.Logging;
|
using Ryujinx.Common.Logging;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.UI.SetupWizard
|
namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
{
|
{
|
||||||
|
|
@ -24,18 +24,22 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RyujinxSetupWizardWindow CreateWindow(MainWindowViewModel mwvm, out BaseSetupWizard setupWizard)
|
public static Task ShowAsync(Window owner = null)
|
||||||
|
{
|
||||||
|
Task windowTask = ShowAsync(
|
||||||
|
CreateWindow(out BaseSetupWizard wiz),
|
||||||
|
owner ?? RyujinxApp.MainWindow
|
||||||
|
);
|
||||||
|
_ = wiz.Start();
|
||||||
|
return windowTask;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static RyujinxSetupWizardWindow CreateWindow(out BaseSetupWizard setupWizard)
|
||||||
{
|
{
|
||||||
RyujinxSetupWizardWindow window = new();
|
RyujinxSetupWizardWindow window = new();
|
||||||
window.DataContext = setupWizard = new RyujinxSetupWizard(window.WizardPresenter, mwvm, () =>
|
window.DataContext = setupWizard = new RyujinxSetupWizard(window);
|
||||||
{
|
|
||||||
NotificationHelper.SetNotificationManager(RyujinxApp.MainWindow);
|
|
||||||
window.Close();
|
|
||||||
IsUsingSetupWizard = false;
|
|
||||||
});
|
|
||||||
window.Height = 600;
|
window.Height = 600;
|
||||||
window.Width = 750;
|
window.Width = 750;
|
||||||
NotificationHelper.SetNotificationManager(window);
|
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -82,4 +86,3 @@ namespace Ryujinx.Ava.UI.SetupWizard
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,11 +146,7 @@ namespace Ryujinx.Ava.UI.Windows
|
||||||
|
|
||||||
if (Program.IsFirstStart && RyujinxSetupWizardWindow.CanShowSetupWizard)
|
if (Program.IsFirstStart && RyujinxSetupWizardWindow.CanShowSetupWizard)
|
||||||
{
|
{
|
||||||
Task windowTask = ShowAsync(
|
await RyujinxSetupWizardWindow.ShowAsync(this);
|
||||||
RyujinxSetupWizardWindow.CreateWindow(ViewModel, out BaseSetupWizard wiz),
|
|
||||||
this);
|
|
||||||
_ = wiz.Start();
|
|
||||||
await windowTask;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue