mirror of
https://github.com/GreemDev/Ryujinx.git
synced 2024-11-24 02:00:11 +01:00
UI: Add a show changelog button in the Updater, for new updates & when you're on the latest version.
This commit is contained in:
parent
e2b7738465
commit
f8d63f9a2f
@ -38,7 +38,7 @@
|
||||
<PackageVersion Include="Ryujinx.Graphics.Nvdec.Dependencies" Version="5.0.3-build14" />
|
||||
<PackageVersion Include="Ryujinx.Graphics.Vulkan.Dependencies.MoltenVK" Version="1.2.0" />
|
||||
<PackageVersion Include="Ryujinx.SDL2-CS" Version="2.30.0-build32" />
|
||||
<PackageVersion Include="Gommon" Version="2.6.5" />
|
||||
<PackageVersion Include="Gommon" Version="2.6.6" />
|
||||
<PackageVersion Include="securifybv.ShellLink" Version="0.1.0" />
|
||||
<PackageVersion Include="shaderc.net" Version="0.1.0" />
|
||||
<PackageVersion Include="SharpZipLib" Version="1.4.2" />
|
||||
|
@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Ryujinx.Common
|
||||
@ -35,5 +36,13 @@ namespace Ryujinx.Common
|
||||
public static bool IsReleaseBuild => IsValid && ReleaseChannelName.Equals(ReleaseChannel);
|
||||
|
||||
public static string Version => IsValid ? BuildVersion : Assembly.GetEntryAssembly()!.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
|
||||
|
||||
public static string GetChangelogUrl(Version currentVersion, Version newVersion) =>
|
||||
IsCanaryBuild
|
||||
? $"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelSourceRepo}/compare/Canary-{currentVersion}...Canary-{newVersion}"
|
||||
: $"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelSourceRepo}/releases/tag/{newVersion}";
|
||||
|
||||
public static string GetChangelogForVersion(Version version) =>
|
||||
$"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelRepo}/releases/tag/{version}";
|
||||
}
|
||||
}
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "جاري استخراج التحديث...",
|
||||
"DialogUpdaterRenamingMessage": "إعادة تسمية التحديث...",
|
||||
"DialogUpdaterAddingFilesMessage": "إضافة تحديث جديد...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "اكتمل التحديث",
|
||||
"DialogUpdaterRestartMessage": "هل تريد إعادة تشغيل ريوجينكس الآن؟",
|
||||
"DialogUpdaterNoInternetMessage": "أنت غير متصل بالإنترنت.",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Update wird entpackt...",
|
||||
"DialogUpdaterRenamingMessage": "Update wird umbenannt...",
|
||||
"DialogUpdaterAddingFilesMessage": "Update wird hinzugefügt...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Update abgeschlossen!",
|
||||
"DialogUpdaterRestartMessage": "Ryujinx jetzt neu starten?",
|
||||
"DialogUpdaterNoInternetMessage": "Es besteht keine Verbindung mit dem Internet!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Εξαγωγή Ενημέρωσης...",
|
||||
"DialogUpdaterRenamingMessage": "Μετονομασία Ενημέρωσης...",
|
||||
"DialogUpdaterAddingFilesMessage": "Προσθήκη Νέας Ενημέρωσης...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Η Ενημέρωση Ολοκληρώθηκε!",
|
||||
"DialogUpdaterRestartMessage": "Θέλετε να επανεκκινήσετε το Ryujinx τώρα;",
|
||||
"DialogUpdaterNoInternetMessage": "Δεν είστε συνδεδεμένοι στο Διαδίκτυο!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Extracting Update...",
|
||||
"DialogUpdaterRenamingMessage": "Renaming Update...",
|
||||
"DialogUpdaterAddingFilesMessage": "Adding New Update...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Update Complete!",
|
||||
"DialogUpdaterRestartMessage": "Do you want to restart Ryujinx now?",
|
||||
"DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Extrayendo actualización...",
|
||||
"DialogUpdaterRenamingMessage": "Renombrando actualización...",
|
||||
"DialogUpdaterAddingFilesMessage": "Aplicando actualización...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "¡Actualización completa!",
|
||||
"DialogUpdaterRestartMessage": "¿Quieres reiniciar Ryujinx?",
|
||||
"DialogUpdaterNoInternetMessage": "¡No estás conectado a internet!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Extraction de la mise à jour…",
|
||||
"DialogUpdaterRenamingMessage": "Renommage de la mise à jour...",
|
||||
"DialogUpdaterAddingFilesMessage": "Ajout d'une nouvelle mise à jour...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Mise à jour terminée !",
|
||||
"DialogUpdaterRestartMessage": "Voulez-vous redémarrer Ryujinx maintenant ?",
|
||||
"DialogUpdaterNoInternetMessage": "Vous n'êtes pas connecté à Internet !",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "מחלץ עדכון...",
|
||||
"DialogUpdaterRenamingMessage": "משנה את שם העדכון...",
|
||||
"DialogUpdaterAddingFilesMessage": "מוסיף עדכון חדש...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "העדכון הושלם!",
|
||||
"DialogUpdaterRestartMessage": "האם אתם רוצים להפעיל מחדש את ריוג'ינקס עכשיו?",
|
||||
"DialogUpdaterNoInternetMessage": "אתם לא מחוברים לאינטרנט!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Estrazione dell'aggiornamento...",
|
||||
"DialogUpdaterRenamingMessage": "Rinominazione dell'aggiornamento...",
|
||||
"DialogUpdaterAddingFilesMessage": "Aggiunta del nuovo aggiornamento...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Aggiornamento completato!",
|
||||
"DialogUpdaterRestartMessage": "Vuoi riavviare Ryujinx adesso?",
|
||||
"DialogUpdaterNoInternetMessage": "Non sei connesso ad Internet!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "アップデートを展開中...",
|
||||
"DialogUpdaterRenamingMessage": "アップデートをリネーム中...",
|
||||
"DialogUpdaterAddingFilesMessage": "新規アップデートを追加中...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "アップデート完了!",
|
||||
"DialogUpdaterRestartMessage": "すぐに Ryujinx を再起動しますか?",
|
||||
"DialogUpdaterNoInternetMessage": "インターネットに接続されていません!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "업데이트 추출 중...",
|
||||
"DialogUpdaterRenamingMessage": "이름 변경 업데이트...",
|
||||
"DialogUpdaterAddingFilesMessage": "새 업데이트 추가 중...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "업데이트가 완료되었습니다!",
|
||||
"DialogUpdaterRestartMessage": "지금 Ryujinx를 다시 시작하시겠습니까?",
|
||||
"DialogUpdaterNoInternetMessage": "인터넷에 연결되어 있지 않습니다!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Wypakowywanie Aktualizacji...",
|
||||
"DialogUpdaterRenamingMessage": "Zmiana Nazwy Aktualizacji...",
|
||||
"DialogUpdaterAddingFilesMessage": "Dodawanie Nowej Aktualizacji...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Aktualizacja Zakończona!",
|
||||
"DialogUpdaterRestartMessage": "Czy chcesz teraz zrestartować Ryujinx?",
|
||||
"DialogUpdaterNoInternetMessage": "Nie masz połączenia z Internetem!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Extraindo atualização...",
|
||||
"DialogUpdaterRenamingMessage": "Renomeando atualização...",
|
||||
"DialogUpdaterAddingFilesMessage": "Adicionando nova atualização...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Atualização concluída!",
|
||||
"DialogUpdaterRestartMessage": "Deseja reiniciar o Ryujinx agora?",
|
||||
"DialogUpdaterNoInternetMessage": "Você não está conectado à Internet!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Извлечение обновления...",
|
||||
"DialogUpdaterRenamingMessage": "Переименование обновления...",
|
||||
"DialogUpdaterAddingFilesMessage": "Добавление нового обновления...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Обновление завершено",
|
||||
"DialogUpdaterRestartMessage": "Перезапустить Ryujinx?",
|
||||
"DialogUpdaterNoInternetMessage": "Вы не подключены к интернету",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "กำลังแตกไฟล์อัปเดต...",
|
||||
"DialogUpdaterRenamingMessage": "กำลังลบไฟล์เก่า...",
|
||||
"DialogUpdaterAddingFilesMessage": "กำลังเพิ่มไฟล์อัปเดตใหม่...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "อัปเดตเสร็จสมบูรณ์แล้ว!",
|
||||
"DialogUpdaterRestartMessage": "คุณต้องการรีสตาร์ท Ryujinx ตอนนี้หรือไม่?",
|
||||
"DialogUpdaterNoInternetMessage": "คุณไม่ได้เชื่อมต่อกับอินเทอร์เน็ต!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Güncelleme Ayıklanıyor...",
|
||||
"DialogUpdaterRenamingMessage": "Güncelleme Yeniden Adlandırılıyor...",
|
||||
"DialogUpdaterAddingFilesMessage": "Yeni Güncelleme Ekleniyor...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Güncelleme Tamamlandı!",
|
||||
"DialogUpdaterRestartMessage": "Ryujinx'i şimdi yeniden başlatmak istiyor musunuz?",
|
||||
"DialogUpdaterNoInternetMessage": "İnternete bağlı değilsiniz!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "Видобування оновлення...",
|
||||
"DialogUpdaterRenamingMessage": "Перейменування оновлення...",
|
||||
"DialogUpdaterAddingFilesMessage": "Додавання нового оновлення...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "Оновлення завершено!",
|
||||
"DialogUpdaterRestartMessage": "Перезапустити Ryujinx зараз?",
|
||||
"DialogUpdaterNoInternetMessage": "Ви не підключені до Інтернету!",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "正在提取更新...",
|
||||
"DialogUpdaterRenamingMessage": "正在重命名更新...",
|
||||
"DialogUpdaterAddingFilesMessage": "安装更新中...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "更新成功!",
|
||||
"DialogUpdaterRestartMessage": "是否立即重启 Ryujinx 模拟器?",
|
||||
"DialogUpdaterNoInternetMessage": "没有连接到网络",
|
||||
|
@ -457,6 +457,7 @@
|
||||
"DialogUpdaterExtractionMessage": "正在提取更新...",
|
||||
"DialogUpdaterRenamingMessage": "重新命名更新...",
|
||||
"DialogUpdaterAddingFilesMessage": "加入新更新...",
|
||||
"DialogUpdaterShowChangelogMessage": "Show Changelog",
|
||||
"DialogUpdaterCompleteMessage": "更新成功!",
|
||||
"DialogUpdaterRestartMessage": "您現在要重新啟動 Ryujinx 嗎?",
|
||||
"DialogUpdaterNoInternetMessage": "您沒有連線到網際網路!",
|
||||
|
@ -262,6 +262,16 @@ namespace Ryujinx.Ava.UI.Helpers
|
||||
LocaleManager.Instance[LocaleKeys.InputDialogOk],
|
||||
(int)Symbol.Important);
|
||||
|
||||
internal static async Task<UserResult> CreateUpdaterUpToDateInfoDialog(string primary, string secondaryText)
|
||||
=> await ShowTextDialog(
|
||||
LocaleManager.Instance[LocaleKeys.DialogUpdaterTitle],
|
||||
primary,
|
||||
secondaryText,
|
||||
LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
|
||||
string.Empty,
|
||||
LocaleManager.Instance[LocaleKeys.InputDialogOk],
|
||||
(int)Symbol.Important);
|
||||
|
||||
internal static async Task CreateWarningDialog(string primary, string secondaryText)
|
||||
=> await ShowTextDialog(
|
||||
LocaleManager.Instance[LocaleKeys.DialogWarningTitle],
|
||||
@ -310,6 +320,30 @@ namespace Ryujinx.Ava.UI.Helpers
|
||||
return response == UserResult.Yes;
|
||||
}
|
||||
|
||||
internal static async Task<UserResult> CreateUpdaterChoiceDialog(string title, string primary, string secondaryText)
|
||||
{
|
||||
if (_isChoiceDialogOpen)
|
||||
{
|
||||
return UserResult.Cancel;
|
||||
}
|
||||
|
||||
_isChoiceDialogOpen = true;
|
||||
|
||||
UserResult response = await ShowTextDialog(
|
||||
title,
|
||||
primary,
|
||||
secondaryText,
|
||||
LocaleManager.Instance[LocaleKeys.InputDialogYes],
|
||||
LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
|
||||
LocaleManager.Instance[LocaleKeys.InputDialogNo],
|
||||
(int)Symbol.Help,
|
||||
UserResult.Yes);
|
||||
|
||||
_isChoiceDialogOpen = false;
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
internal static async Task<bool> CreateExitDialog()
|
||||
{
|
||||
return await CreateChoiceDialog(
|
||||
|
@ -176,9 +176,14 @@ namespace Ryujinx.Ava
|
||||
{
|
||||
if (showVersionUpToDate)
|
||||
{
|
||||
await ContentDialogHelper.CreateUpdaterInfoDialog(
|
||||
UserResult userResult = await ContentDialogHelper.CreateUpdaterUpToDateInfoDialog(
|
||||
LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
|
||||
string.Empty);
|
||||
|
||||
if (userResult is UserResult.Yes)
|
||||
{
|
||||
OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion));
|
||||
}
|
||||
}
|
||||
|
||||
_running = false;
|
||||
@ -206,19 +211,29 @@ namespace Ryujinx.Ava
|
||||
|
||||
await Dispatcher.UIThread.InvokeAsync(async () =>
|
||||
{
|
||||
string newVersionString = ReleaseInformation.IsCanaryBuild
|
||||
? $"Canary {currentVersion} -> Canary {newVersion}"
|
||||
: $"{currentVersion} -> {newVersion}";
|
||||
|
||||
RequestUserToUpdate:
|
||||
// Show a message asking the user if they want to update
|
||||
var shouldUpdate = await ContentDialogHelper.CreateChoiceDialog(
|
||||
UserResult shouldUpdate = await ContentDialogHelper.CreateUpdaterChoiceDialog(
|
||||
LocaleManager.Instance[LocaleKeys.RyujinxUpdater],
|
||||
LocaleManager.Instance[LocaleKeys.RyujinxUpdaterMessage],
|
||||
$"{Program.Version} -> {newVersion}");
|
||||
newVersionString);
|
||||
|
||||
if (shouldUpdate)
|
||||
switch (shouldUpdate)
|
||||
{
|
||||
await UpdateRyujinx(mainWindow, _buildUrl);
|
||||
}
|
||||
else
|
||||
{
|
||||
_running = false;
|
||||
case UserResult.Yes:
|
||||
await UpdateRyujinx(mainWindow, _buildUrl);
|
||||
break;
|
||||
// Secondary button maps to no, which in this case is the show changelog button.
|
||||
case UserResult.No:
|
||||
OpenHelper.OpenUrl(ReleaseInformation.GetChangelogUrl(currentVersion, newVersion));
|
||||
goto RequestUserToUpdate;
|
||||
default:
|
||||
_running = false;
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user