From 3249f8ff41446b47cf458bbc04f8c27e005889aa Mon Sep 17 00:00:00 2001 From: Andrey Sukharev Date: Mon, 3 Apr 2023 13:14:19 +0300 Subject: Source generated json serializers (#4582) * Use source generated json serializers in order to improve code trimming * Use strongly typed github releases model to fetch updates instead of raw Newtonsoft.Json parsing * Use separate model for LogEventArgs serialization * Make dynamic object formatter static. Fix string builder pooling. * Do not inherit json version of LogEventArgs from EventArgs * Fix extra space in object formatting * Write log json directly to stream instead of using buffer writer * Rebase fixes * Rebase fixes * Rebase fixes * Enforce block-scoped namespaces in the solution. Convert style for existing code * Apply suggestions from code review Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Rebase indent fix * Fix indent * Delete unnecessary json properties * Rebase fix * Remove overridden json property names as they are handled in the options * Apply suggestions from code review Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Use default json options in github api calls * Indentation and spacing fixes * Fix json serialization * Fix missing JsonConverter for config enums * Add double \n\n after the whole string, not inside join --------- Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> --- Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs') diff --git a/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs b/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs index 35256b3b..dd261b10 100644 --- a/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs +++ b/Ryujinx.Ava/UI/ViewModels/ControllerSettingsViewModel.cs @@ -51,6 +51,8 @@ namespace Ryujinx.Ava.UI.ViewModels private bool _isLoaded; private readonly UserControl _owner; + private static readonly InputConfigJsonSerializerContext SerializerContext = new(JsonHelper.GetDefaultSerializerOptions()); + public IGamepadDriver AvaloniaKeyboardDriver { get; } public IGamepad SelectedGamepad { get; private set; } @@ -706,10 +708,7 @@ namespace Ryujinx.Ava.UI.ViewModels try { - using (Stream stream = File.OpenRead(path)) - { - config = JsonHelper.Deserialize(stream); - } + config = JsonHelper.DeserializeFromFile(path, SerializerContext.InputConfig); } catch (JsonException) { } catch (InvalidOperationException) @@ -775,7 +774,7 @@ namespace Ryujinx.Ava.UI.ViewModels config.ControllerType = Controllers[_controller].Type; - string jsonString = JsonHelper.Serialize(config, true); + string jsonString = JsonHelper.Serialize(config, SerializerContext.InputConfig); await File.WriteAllTextAsync(path, jsonString); -- cgit v1.2.3