Skip to content

Commit b5ceb29

Browse files
committed
Revert "convert to System.Text.Json for all Config load/save"
This reverts commit 9670845.
1 parent a996ac8 commit b5ceb29

1 file changed

Lines changed: 37 additions & 5 deletions

File tree

Project-Aurora/Project-Aurora/Settings/ConfigManager.cs

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
using System.Diagnostics;
44
using System.IO;
55
using System.Text;
6-
using System.Text.Json;
76
using System.Threading.Tasks;
87
using System.Windows;
98
using AuroraRgb.Modules.Gamebar;
109
using AuroraRgb.Modules.Logitech;
1110
using AuroraRgb.Modules.Razer;
1211
using AuroraRgb.Utils;
12+
using AuroraRgb.Utils.Json;
1313
using Common.Devices;
1414
using Common.Utils;
15+
using Newtonsoft.Json;
16+
using JsonSerializer = System.Text.Json.JsonSerializer;
1517

1618
namespace AuroraRgb.Settings;
1719

@@ -66,7 +68,12 @@ private static async Task<Configuration> Parse()
6668
return await CreateDefaultConfigurationFile();
6769

6870
var content = await File.ReadAllTextAsync(Configuration.ConfigFile, Encoding.UTF8);
69-
return JsonSerializer.Deserialize<Configuration>(content) ?? await CreateDefaultConfigurationFile();
71+
return JsonConvert.DeserializeObject<Configuration>(content,
72+
new JsonSerializerSettings
73+
{
74+
ObjectCreationHandling = ObjectCreationHandling.Replace,
75+
TypeNameHandling = TypeNameHandling.All,
76+
}) ?? await CreateDefaultConfigurationFile();
7077
}
7178

7279
public static async Task<DeviceConfig> LoadDeviceConfig()
@@ -92,14 +99,19 @@ private static async Task<DeviceConfig> TryLoadDevice()
9299
{
93100
if (!File.Exists(DeviceConfig.ConfigFile))
94101
{
102+
if (File.Exists(Configuration.ConfigFile))
103+
// v194 Migration
104+
return await MigrateDeviceConfig();
105+
95106
// first time start
96107
var deviceConfig = new DeviceConfig();
97108
await SaveAsync(deviceConfig);
98109
return deviceConfig;
110+
99111
}
100112

101113
var content = await File.ReadAllTextAsync(DeviceConfig.ConfigFile, Encoding.UTF8);
102-
return JsonSerializer.Deserialize(content, CommonSourceGenerationContext.Default.DeviceConfig) ?? new DeviceConfig();
114+
return JsonSerializer.Deserialize(content, CommonSourceGenerationContext.Default.DeviceConfig) ?? await MigrateDeviceConfig();
103115
}
104116

105117
public static async Task<GamebarConfig> LoadGamebarConfig()
@@ -201,7 +213,10 @@ public static void Save(IAuroraConfig configuration)
201213

202214
LastSaveTimes[path] = currentTime;
203215

204-
var content = JsonSerializer.Serialize(configuration);
216+
var content = JsonConvert.SerializeObject(configuration, Formatting.Indented, new JsonSerializerSettings
217+
{
218+
TypeNameHandling = TypeNameHandling.Auto, SerializationBinder = new AuroraSerializationBinder()
219+
});
205220

206221
Directory.CreateDirectory(Path.GetDirectoryName(path));
207222
File.WriteAllText(path, content, Encoding.UTF8);
@@ -216,7 +231,10 @@ public static async Task SaveAsync(IAuroraConfig configuration)
216231

217232
LastSaveTimes[path] = currentTime;
218233

219-
var content = JsonSerializer.Serialize(configuration);
234+
var content = JsonConvert.SerializeObject(configuration, Formatting.Indented, new JsonSerializerSettings
235+
{
236+
TypeNameHandling = TypeNameHandling.Auto, SerializationBinder = new AuroraSerializationBinder()
237+
});
220238

221239
Directory.CreateDirectory(Path.GetDirectoryName(path));
222240
await File.WriteAllTextAsync(path, content, Encoding.UTF8);
@@ -230,6 +248,20 @@ private static async Task<Configuration> CreateDefaultConfigurationFile()
230248
return config;
231249
}
232250

251+
private static async Task<DeviceConfig> MigrateDeviceConfig()
252+
{
253+
Global.logger.Information("Migrating default device configuration");
254+
var content = await File.ReadAllTextAsync(Configuration.ConfigFile, Encoding.UTF8);
255+
var config = JsonConvert.DeserializeObject<DeviceConfig>(content,
256+
new JsonSerializerSettings
257+
{
258+
ObjectCreationHandling = ObjectCreationHandling.Replace,
259+
SerializationBinder = new AuroraSerializationBinder(),
260+
}) ?? new DeviceConfig();
261+
File.Copy(Configuration.ConfigFile, Configuration.ConfigFile + ".v194", true);
262+
return config;
263+
}
264+
233265
public static async Task<SensitiveData> LoadSensitiveData()
234266
{
235267
var exists = File.Exists(SensitiveData.ConfigFile);

0 commit comments

Comments
 (0)