move version checking into a single method to unify updater logic across the app

This commit is contained in:
GreemDev 2025-06-03 03:09:50 -05:00
parent d0c055ccb8
commit 787a14ed2b
4 changed files with 19 additions and 11 deletions

View File

@ -18,7 +18,7 @@ namespace Ryujinx.Ava.Systems
{
private static GitHubReleaseChannels.Channel? _currentGitHubReleaseChannel;
public static async Task<Optional<(Version Current, Version Incoming)>> CheckGitHubVersionAsync(bool showVersionUpToDate = false)
private static async Task<Optional<(Version Current, Version Incoming)>> CheckGitHubVersionAsync(bool showVersionUpToDate = false)
{
if (!Version.TryParse(Program.Version, out Version currentVersion))
{

View File

@ -19,7 +19,7 @@ namespace Ryujinx.Ava.Systems
{
private static GitLabReleaseChannels.ChannelType _currentGitLabReleaseChannel;
public static async Task<Optional<(Version Current, Version Incoming)>> CheckGitLabVersionAsync(bool showVersionUpToDate = false)
private static async Task<Optional<(Version Current, Version Incoming)>> CheckGitLabVersionAsync(bool showVersionUpToDate = false)
{
if (!Version.TryParse(Program.Version, out Version currentVersion))
{

View File

@ -56,15 +56,8 @@ namespace Ryujinx.Ava.Systems
private static string _stableUrlFormat = null;
private static string _changelogUrlFormat = null;
public static async Task BeginUpdateAsync(bool showVersionUpToDate = false)
public static async Task<Optional<(Version, Version)>> CheckForUpdateAsync(bool showVersionUpToDate = false)
{
if (_running)
{
return;
}
_running = true;
Optional<(Version, Version)> versionTuple;
try
@ -78,6 +71,21 @@ namespace Ryujinx.Ava.Systems
versionTuple = await CheckGitHubVersionAsync(showVersionUpToDate);
}
return versionTuple;
}
public static async Task BeginUpdateAsync(bool showVersionUpToDate = false)
{
if (_running)
{
return;
}
_running = true;
Optional<(Version, Version)> versionTuple = await CheckForUpdateAsync(showVersionUpToDate);
if (_running is false || !versionTuple.HasValue)
return;

View File

@ -419,7 +419,7 @@ namespace Ryujinx.Ava.UI.Windows
.Catch(task => Logger.Error?.Print(LogClass.Application, $"Updater Error: {task.Exception}"));
break;
case UpdaterType.CheckInBackground:
if ((await Updater.CheckGitHubVersionAsync()).TryGet(out (Version Current, Version Incoming) versions))
if ((await Updater.CheckForUpdateAsync()).TryGet(out (Version Current, Version Incoming) versions))
{
Dispatcher.UIThread.Post(() => RyujinxApp.MainWindow.ViewModel.UpdateAvailable = versions.Current < versions.Incoming);
}