diff --git a/src/Ryujinx.HLE/FileSystem/ContentManager.cs b/src/Ryujinx.HLE/FileSystem/ContentManager.cs index d0fe0f1a7..6df359c56 100644 --- a/src/Ryujinx.HLE/FileSystem/ContentManager.cs +++ b/src/Ryujinx.HLE/FileSystem/ContentManager.cs @@ -1059,7 +1059,7 @@ namespace Ryujinx.HLE.FileSystem } } - public static bool AreKeysAlredyPresent(string pathToCheck) + public static bool AreKeysAlreadyPresent(string pathToCheck) { string[] fileNames = ["prod.keys", "title.keys", "console.keys", "dev.keys"]; foreach (string file in fileNames) diff --git a/src/Ryujinx/Systems/AppHost.cs b/src/Ryujinx/Systems/AppHost.cs index 693e40a0b..5779d261a 100644 --- a/src/Ryujinx/Systems/AppHost.cs +++ b/src/Ryujinx/Systems/AppHost.cs @@ -803,7 +803,7 @@ namespace Ryujinx.Ava.Systems if (!Device.LoadCart(ApplicationPath, romFsFiles[0])) { - ContentDialogHelper.CreateErrorDialog( + await ContentDialogHelper.CreateErrorDialog( "Please specify an unpacked game directory with a valid exefs or NSO/NRO."); Device.Dispose(); @@ -816,7 +816,7 @@ namespace Ryujinx.Ava.Systems Logger.Info?.Print(LogClass.Application, "Loading as cart WITHOUT RomFS."); if (!Device.LoadCart(ApplicationPath)) { - ContentDialogHelper.CreateErrorDialog( + await ContentDialogHelper.CreateErrorDialog( "Please specify an unpacked game directory with a valid exefs or NSO/NRO."); Device.Dispose(); cts.Cancel(); diff --git a/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs b/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs index a39a8b5cc..6513738cb 100644 --- a/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs +++ b/src/Ryujinx/Systems/AppLibrary/ApplicationLibrary.cs @@ -849,7 +849,8 @@ namespace Ryujinx.Ava.Systems.AppLibrary foreach (ApplicationData installedApplication in Applications.Items) { - temporary += LoadAndSaveMetaData(installedApplication.IdString).TimePlayed; + // this should always exist... should... + temporary += LoadAndSaveMetaData(installedApplication.IdString).Value.TimePlayed; } TotalTimePlayed = temporary; @@ -1159,9 +1160,8 @@ namespace Ryujinx.Ava.Systems.AppLibrary ApplicationCountUpdated?.Invoke(null, e); } - public static ApplicationMetadata? LoadAndSaveMetaData(string titleId, Action modifyFunction = null) + public static Gommon.Optional LoadAndSaveMetaData(string titleId, Action modifyFunction = null) { - if (titleId is null) { Logger.Warning?.PrintMsg(LogClass.Application, "Cannot save metadata because title ID is invalid."); diff --git a/src/Ryujinx/Systems/DiscordIntegrationModule.cs b/src/Ryujinx/Systems/DiscordIntegrationModule.cs index 5b61340b6..da6371682 100644 --- a/src/Ryujinx/Systems/DiscordIntegrationModule.cs +++ b/src/Ryujinx/Systems/DiscordIntegrationModule.cs @@ -82,7 +82,7 @@ namespace Ryujinx.Ava.Systems public static void Use(Optional titleId) { - if (titleId.TryGet(out string tid)) + if (titleId.TryGet(out string tid) && Switch.Shared.Processes.ActiveApplication is not null) SwitchToPlayingState( ApplicationLibrary.LoadAndSaveMetaData(tid), Switch.Shared.Processes.ActiveApplication diff --git a/src/Ryujinx/UI/Models/SaveModel.cs b/src/Ryujinx/UI/Models/SaveModel.cs index d245ed4d9..bd9c93f5d 100644 --- a/src/Ryujinx/UI/Models/SaveModel.cs +++ b/src/Ryujinx/UI/Models/SaveModel.cs @@ -57,8 +57,15 @@ namespace Ryujinx.Ava.UI.Models } else { - ApplicationMetadata appMetadata = ApplicationLibrary.LoadAndSaveMetaData(TitleIdString); - Title = appMetadata.Title ?? TitleIdString; + Gommon.Optional appMetadata = ApplicationLibrary.LoadAndSaveMetaData(TitleIdString); + if (appMetadata != null) + { + Title = appMetadata.Value.Title ?? TitleIdString; + } + else + { + Title = ""; + } } Task.Run(() => diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index d720568b7..568688bc4 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -1029,7 +1029,7 @@ namespace Ryujinx.Ava.UI.ViewModels string dialogMessage = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallMessage); - if (ContentManager.AreKeysAlredyPresent(systemDirectory)) + if (ContentManager.AreKeysAlreadyPresent(systemDirectory)) { dialogMessage += LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys