aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIsaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com>2024-07-25 20:44:33 +0100
committerGitHub <noreply@github.com>2024-07-25 16:44:33 -0300
commit6ce49a2dc7b3e844b7152fa720a0bc30840f7609 (patch)
tree84fbb01f82435d3fe7e5558fdb72d9194a275a70 /src
parentccd330ba0f1aa281725ae03a1dbd5cea744339da (diff)
Ava UI: Handle updates containing non numeric characters (#7043)1.1.1361
* Handle updates containing non numeric characters Smh Dont be stupid * Use Berry’s method * Thanks gdk * Remove using
Diffstat (limited to 'src')
-rw-r--r--src/Ryujinx/UI/Models/TitleUpdateModel.cs17
-rw-r--r--src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs23
2 files changed, 13 insertions, 27 deletions
diff --git a/src/Ryujinx/UI/Models/TitleUpdateModel.cs b/src/Ryujinx/UI/Models/TitleUpdateModel.cs
index cde37bf9..46f6f46d 100644
--- a/src/Ryujinx/UI/Models/TitleUpdateModel.cs
+++ b/src/Ryujinx/UI/Models/TitleUpdateModel.cs
@@ -1,21 +1,20 @@
-using LibHac.Ns;
using Ryujinx.Ava.Common.Locale;
namespace Ryujinx.Ava.UI.Models
{
public class TitleUpdateModel
{
- public ApplicationControlProperty Control { get; }
+ public uint Version { get; }
public string Path { get; }
+ public string Label { get; }
- public string Label => LocaleManager.Instance.UpdateAndGetDynamicValue(
- System.IO.Path.GetExtension(Path)?.ToLower() == ".xci" ? LocaleKeys.TitleBundledUpdateVersionLabel : LocaleKeys.TitleUpdateVersionLabel,
- Control.DisplayVersionString.ToString()
- );
-
- public TitleUpdateModel(ApplicationControlProperty control, string path)
+ public TitleUpdateModel(uint version, string displayVersion, string path)
{
- Control = control;
+ Version = version;
+ Label = LocaleManager.Instance.UpdateAndGetDynamicValue(
+ System.IO.Path.GetExtension(path)?.ToLower() == ".xci" ? LocaleKeys.TitleBundledUpdateVersionLabel : LocaleKeys.TitleUpdateVersionLabel,
+ displayVersion
+ );
Path = path;
}
}
diff --git a/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs b/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs
index 1acd9bee..e9b39dfe 100644
--- a/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/TitleUpdateViewModel.cs
@@ -131,26 +131,11 @@ namespace Ryujinx.Ava.UI.ViewModels
public void SortUpdates()
{
- var list = TitleUpdates.ToList();
-
- list.Sort((first, second) =>
- {
- if (string.IsNullOrEmpty(first.Control.DisplayVersionString.ToString()))
- {
- return -1;
- }
-
- if (string.IsNullOrEmpty(second.Control.DisplayVersionString.ToString()))
- {
- return 1;
- }
-
- return Version.Parse(first.Control.DisplayVersionString.ToString()).CompareTo(Version.Parse(second.Control.DisplayVersionString.ToString())) * -1;
- });
+ var sortedUpdates = TitleUpdates.OrderByDescending(update => update.Version);
Views.Clear();
Views.Add(new BaseModel());
- Views.AddRange(list);
+ Views.AddRange(sortedUpdates);
if (SelectedUpdate == null)
{
@@ -204,7 +189,9 @@ namespace Ryujinx.Ava.UI.ViewModels
controlNca.OpenFileSystem(NcaSectionType.Data, IntegrityCheckLevel.None).OpenFile(ref nacpFile.Ref, "/control.nacp".ToU8Span(), OpenMode.Read).ThrowIfFailure();
nacpFile.Get.Read(out _, 0, SpanHelpers.AsByteSpan(ref controlData), ReadOption.None).ThrowIfFailure();
- var update = new TitleUpdateModel(controlData, path);
+ var displayVersion = controlData.DisplayVersionString.ToString();
+ var update = new TitleUpdateModel(content.Version.Version, displayVersion, path);
+
TitleUpdates.Add(update);
if (selected)