aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Ava/Modules/Updater/Updater.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Ava/Modules/Updater/Updater.cs')
-rw-r--r--src/Ryujinx.Ava/Modules/Updater/Updater.cs162
1 files changed, 70 insertions, 92 deletions
diff --git a/src/Ryujinx.Ava/Modules/Updater/Updater.cs b/src/Ryujinx.Ava/Modules/Updater/Updater.cs
index 5fa5241d..af7608d3 100644
--- a/src/Ryujinx.Ava/Modules/Updater/Updater.cs
+++ b/src/Ryujinx.Ava/Modules/Updater/Updater.cs
@@ -82,12 +82,9 @@ namespace Ryujinx.Modules
{
Logger.Error?.Print(LogClass.Application, "Failed to convert the current Ryujinx version!");
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
- LocaleManager.Instance[LocaleKeys.DialogUpdaterConvertFailedMessage],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterCancelUpdateMessage]);
- });
+ await ContentDialogHelper.CreateWarningDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterConvertFailedMessage],
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterCancelUpdateMessage]);
_running = false;
@@ -114,10 +111,9 @@ namespace Ryujinx.Modules
{
if (showVersionUpToDate)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateUpdaterInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage], "");
- });
+ await ContentDialogHelper.CreateUpdaterInfoDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
+ "");
}
_running = false;
@@ -134,10 +130,9 @@ namespace Ryujinx.Modules
{
if (showVersionUpToDate)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateUpdaterInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage], "");
- });
+ await ContentDialogHelper.CreateUpdaterInfoDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
+ "");
}
_running = false;
@@ -149,10 +144,8 @@ namespace Ryujinx.Modules
{
Logger.Error?.Print(LogClass.Application, exception.Message);
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUpdaterFailedToGetVersionMessage]);
- });
+ await ContentDialogHelper.CreateErrorDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterFailedToGetVersionMessage]);
_running = false;
@@ -167,12 +160,9 @@ namespace Ryujinx.Modules
{
Logger.Error?.Print(LogClass.Application, "Failed to convert the received Ryujinx version from Github!");
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
- LocaleManager.Instance[LocaleKeys.DialogUpdaterConvertFailedGithubMessage],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterCancelUpdateMessage]);
- });
+ await ContentDialogHelper.CreateWarningDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterConvertFailedGithubMessage],
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterCancelUpdateMessage]);
_running = false;
@@ -183,10 +173,9 @@ namespace Ryujinx.Modules
{
if (showVersionUpToDate)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateUpdaterInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage], "");
- });
+ await ContentDialogHelper.CreateUpdaterInfoDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
+ "");
}
_running = false;
@@ -212,7 +201,7 @@ namespace Ryujinx.Modules
_buildSize = -1;
}
- Dispatcher.UIThread.Post(async () =>
+ await Dispatcher.UIThread.InvokeAsync(async () =>
{
// Show a message asking the user if they want to update
var shouldUpdate = await ContentDialogHelper.CreateChoiceDialog(
@@ -222,7 +211,7 @@ namespace Ryujinx.Modules
if (shouldUpdate)
{
- UpdateRyujinx(mainWindow, _buildUrl);
+ await UpdateRyujinx(mainWindow, _buildUrl);
}
else
{
@@ -241,7 +230,7 @@ namespace Ryujinx.Modules
return result;
}
- private static async void UpdateRyujinx(Window parent, string downloadUrl)
+ private static async Task UpdateRyujinx(Window parent, string downloadUrl)
{
_updateSuccessful = false;
@@ -579,27 +568,24 @@ namespace Ryujinx.Modules
}
}
- private static async void InstallUpdate(TaskDialog taskDialog, string updateFile)
+ private static void InstallUpdate(TaskDialog taskDialog, string updateFile)
{
// Extract Update
taskDialog.SubHeader = LocaleManager.Instance[LocaleKeys.UpdaterExtracting];
taskDialog.SetProgressBarState(0, TaskDialogProgressState.Normal);
- await Task.Run(() =>
+ if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
{
- if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
- {
- ExtractTarGzipFile(taskDialog, updateFile, _updateDir);
- }
- else if (OperatingSystem.IsWindows())
- {
- ExtractZipFile(taskDialog, updateFile, _updateDir);
- }
- else
- {
- throw new NotSupportedException();
- }
- });
+ ExtractTarGzipFile(taskDialog, updateFile, _updateDir);
+ }
+ else if (OperatingSystem.IsWindows())
+ {
+ ExtractZipFile(taskDialog, updateFile, _updateDir);
+ }
+ else
+ {
+ throw new NotSupportedException();
+ }
// Delete downloaded zip
File.Delete(updateFile);
@@ -613,36 +599,33 @@ namespace Ryujinx.Modules
if (!OperatingSystem.IsMacOS())
{
// Replace old files
- await Task.Run(() =>
+ double count = 0;
+ foreach (string file in allFiles)
{
- double count = 0;
- foreach (string file in allFiles)
+ count++;
+ try
{
- count++;
- try
- {
- File.Move(file, file + ".ryuold");
+ File.Move(file, file + ".ryuold");
- Dispatcher.UIThread.Post(() =>
- {
- taskDialog.SetProgressBarState(GetPercentage(count, allFiles.Count), TaskDialogProgressState.Normal);
- });
- }
- catch
+ Dispatcher.UIThread.InvokeAsync(() =>
{
- Logger.Warning?.Print(LogClass.Application, LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.UpdaterRenameFailed, file));
- }
+ taskDialog.SetProgressBarState(GetPercentage(count, allFiles.Count), TaskDialogProgressState.Normal);
+ });
}
-
- Dispatcher.UIThread.Post(() =>
+ catch
{
- taskDialog.SubHeader = LocaleManager.Instance[LocaleKeys.UpdaterAddingFiles];
- taskDialog.SetProgressBarState(0, TaskDialogProgressState.Normal);
- });
+ Logger.Warning?.Print(LogClass.Application, LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.UpdaterRenameFailed, file));
+ }
+ }
- MoveAllFilesOver(_updatePublishDir, _homeDir, taskDialog);
+ Dispatcher.UIThread.InvokeAsync(() =>
+ {
+ taskDialog.SubHeader = LocaleManager.Instance[LocaleKeys.UpdaterAddingFiles];
+ taskDialog.SetProgressBarState(0, TaskDialogProgressState.Normal);
});
+ MoveAllFilesOver(_updatePublishDir, _homeDir, taskDialog);
+
Directory.Delete(_updateDir, true);
}
@@ -658,12 +641,11 @@ namespace Ryujinx.Modules
{
if (showWarnings)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
+ Dispatcher.UIThread.InvokeAsync(() =>
+ ContentDialogHelper.CreateWarningDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterArchNotSupportedMessage],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterArchNotSupportedSubMessage]);
- });
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterArchNotSupportedSubMessage])
+ );
}
return false;
@@ -673,12 +655,11 @@ namespace Ryujinx.Modules
{
if (showWarnings)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
+ Dispatcher.UIThread.InvokeAsync(() =>
+ ContentDialogHelper.CreateWarningDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterNoInternetMessage],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterNoInternetSubMessage]);
- });
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterNoInternetSubMessage])
+ );
}
return false;
@@ -688,12 +669,11 @@ namespace Ryujinx.Modules
{
if (showWarnings)
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
+ Dispatcher.UIThread.InvokeAsync(() =>
+ ContentDialogHelper.CreateWarningDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterDirtyBuildMessage],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterDirtyBuildSubMessage]);
- });
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterDirtyBuildSubMessage])
+ );
}
return false;
@@ -705,21 +685,19 @@ namespace Ryujinx.Modules
{
if (ReleaseInformation.IsFlatHubBuild())
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
+ Dispatcher.UIThread.InvokeAsync(() =>
+ ContentDialogHelper.CreateWarningDialog(
LocaleManager.Instance[LocaleKeys.UpdaterDisabledWarningTitle],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterFlatpakNotSupportedMessage]);
- });
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterFlatpakNotSupportedMessage])
+ );
}
else
{
- Dispatcher.UIThread.Post(async () =>
- {
- await ContentDialogHelper.CreateWarningDialog(
+ Dispatcher.UIThread.InvokeAsync(() =>
+ ContentDialogHelper.CreateWarningDialog(
LocaleManager.Instance[LocaleKeys.UpdaterDisabledWarningTitle],
- LocaleManager.Instance[LocaleKeys.DialogUpdaterDirtyBuildSubMessage]);
- });
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterDirtyBuildSubMessage])
+ );
}
}