From 1eae1706a95bed46fd840ac567c55407e209536c Mon Sep 17 00:00:00 2001 From: Mary Date: Fri, 27 Nov 2020 19:05:36 +0100 Subject: [PATCH] ui: Check last played datetime validity against current culture (#1730) This is an issue happening when you change your datetime format on your system and try to sort via last played datetime. DateTime.Parse use the current thread culture and will not parse date correctly, effectively causing a crash. As such, I added a check when loading the game list that ensure that the datetime is valid in current culture. Fix #1727. --- Ryujinx/Ui/ApplicationLibrary.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Ryujinx/Ui/ApplicationLibrary.cs b/Ryujinx/Ui/ApplicationLibrary.cs index fbf14e0eb..353b686e6 100644 --- a/Ryujinx/Ui/ApplicationLibrary.cs +++ b/Ryujinx/Ui/ApplicationLibrary.cs @@ -390,6 +390,13 @@ namespace Ryujinx.Ui ApplicationMetadata appMetadata = LoadAndSaveMetaData(titleId); + if (appMetadata.LastPlayed != "Never" && !DateTime.TryParse(appMetadata.LastPlayed, out _)) + { + Logger.Warning?.Print(LogClass.Application, $"Last played datetime \"{appMetadata.LastPlayed}\" is invalid for current system culture, skipping (did current culture change?)"); + + appMetadata.LastPlayed = "Never"; + } + ApplicationData data = new ApplicationData { Favorite = appMetadata.Favorite,