Changed LastPlayed field from string to nullable DateTime (#4861)

* Changed LastPlayed field from string to nullable DateTime

Added ApplicationData.LastPlayedString property
Added NullableDateTimeConverter for the DateTime->string conversion in Avalonia

* Added migration from string-based last_played to DateTime-based last_played_utc

* Updated comment style

* Added MarkupExtension to NullableDateTimeConverter and changed its usage

Cleaned up leftover usings

* Missed one comment
This commit is contained in:
SamusAranX
2023-05-12 01:56:37 +02:00
committed by GitHub
parent 5cbdfbc7a4
commit 531da8a1c0
9 changed files with 113 additions and 43 deletions

View File

@ -1,4 +1,3 @@
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ui.App.Common;
using System;
using System.Collections.Generic;
@ -14,20 +13,20 @@ namespace Ryujinx.Ava.UI.Models.Generic
public int Compare(ApplicationData x, ApplicationData y)
{
string aValue = x.LastPlayed;
string bValue = y.LastPlayed;
var aValue = x.LastPlayed;
var bValue = y.LastPlayed;
if (aValue == LocaleManager.Instance[LocaleKeys.Never])
if (!aValue.HasValue)
{
aValue = DateTime.UnixEpoch.ToString();
aValue = DateTime.UnixEpoch;
}
if (bValue == LocaleManager.Instance[LocaleKeys.Never])
if (!bValue.HasValue)
{
bValue = DateTime.UnixEpoch.ToString();
bValue = DateTime.UnixEpoch;
}
return (IsAscending ? 1 : -1) * DateTime.Compare(DateTime.Parse(bValue), DateTime.Parse(aValue));
return (IsAscending ? 1 : -1) * DateTime.Compare(bValue.Value, aValue.Value);
}
}
}