aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs')
-rw-r--r--Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs30
1 files changed, 26 insertions, 4 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
index 535779d2..ec0b0a10 100644
--- a/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
+++ b/Ryujinx.HLE/HOS/Services/Account/Acc/AccountSaveDataManager.cs
@@ -1,11 +1,11 @@
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Logging;
using Ryujinx.Common.Utilities;
-using Ryujinx.HLE.HOS.Services.Account.Acc.Types;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
+using System.Text.Json.Serialization;
namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
@@ -13,7 +13,29 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
private readonly string _profilesJsonPath = Path.Join(AppDataManager.BaseDirPath, "system", "Profiles.json");
- private static readonly ProfilesJsonSerializerContext SerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
+ private struct ProfilesJson
+ {
+ [JsonPropertyName("profiles")]
+ public List<UserProfileJson> Profiles { get; set; }
+ [JsonPropertyName("last_opened")]
+ public string LastOpened { get; set; }
+ }
+
+ private struct UserProfileJson
+ {
+ [JsonPropertyName("user_id")]
+ public string UserId { get; set; }
+ [JsonPropertyName("name")]
+ public string Name { get; set; }
+ [JsonPropertyName("account_state")]
+ public AccountState AccountState { get; set; }
+ [JsonPropertyName("online_play_state")]
+ public AccountState OnlinePlayState { get; set; }
+ [JsonPropertyName("last_modified_timestamp")]
+ public long LastModifiedTimestamp { get; set; }
+ [JsonPropertyName("image")]
+ public byte[] Image { get; set; }
+ }
public UserId LastOpened { get; set; }
@@ -25,7 +47,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
{
try
{
- ProfilesJson profilesJson = JsonHelper.DeserializeFromFile(_profilesJsonPath, SerializerContext.ProfilesJson);
+ ProfilesJson profilesJson = JsonHelper.DeserializeFromFile<ProfilesJson>(_profilesJsonPath);
foreach (var profile in profilesJson.Profiles)
{
@@ -70,7 +92,7 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
});
}
- JsonHelper.SerializeToFile(_profilesJsonPath, profilesJson, SerializerContext.ProfilesJson);
+ File.WriteAllText(_profilesJsonPath, JsonHelper.Serialize(profilesJson, true));
}
}
} \ No newline at end of file