Skip to content

Commit

Permalink
add new property which points to user configuration directory and use…
Browse files Browse the repository at this point in the history
… load / save settings into it
  • Loading branch information
Adrian Gaborek authored and Adrian Gaborek committed Feb 21, 2025
1 parent 30ae65e commit fbb2b91
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 14 deletions.
16 changes: 15 additions & 1 deletion src/UniGetUI.Core.Data/CoreData.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Diagnostics;
using System.Diagnostics;
using System.Net;
using System.Text.Json;
using System.Text.Json.Serialization.Metadata;
Expand Down Expand Up @@ -64,6 +64,20 @@ public static string UniGetUIDataDirectory
}
}

/// <summary>
/// The directory where the user configurations are stored. The directory is automatically created if it does not exist.
/// </summary>
public static string UniGetUIUserConfigurationDirectory
{
//TODO: add functionality to move old configurations to new location
get
{
string path = Path.Join(UniGetUIDataDirectory, "Configuration");
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
return path;
}
}

/// <summary>
/// The directory where the installation options are stored. The directory is automatically created if it does not exist.
/// </summary>
Expand Down
16 changes: 8 additions & 8 deletions src/UniGetUI.Core.Settings/SettingsEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public static bool Get(string setting, bool invert = false)
}

// Otherwise, load the value from disk and cache that setting
result = File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting));
result = File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
booleanSettings[setting] = result;
return result ^ invert;
}
Expand All @@ -30,17 +30,17 @@ public static void Set(string setting, bool value)
booleanSettings[setting] = value;

// Update changes on disk if applicable
if (value && !File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
if (value && !File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), "");
File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), "");
}
else if (!value)
{
valueSettings[setting] = "";

if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
File.Delete(Path.Join(CoreData.UniGetUIDataDirectory, setting));
File.Delete(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
}
}

Expand All @@ -61,9 +61,9 @@ public static string GetValue(string setting)

// Otherwise, load the setting from disk and cache that setting
value = "";
if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
value = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting));
value = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
}

valueSettings[setting] = value;
Expand All @@ -83,7 +83,7 @@ public static void SetValue(string setting, string value)
}
else
{
File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), value);
File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), value);
booleanSettings[setting] = true;
valueSettings[setting] = value;
}
Expand Down
6 changes: 3 additions & 3 deletions src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ public static partial class Settings

// Otherwise, load the setting from disk and cache that setting
Dictionary<K, V?> value = [];
if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json")))
if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json")))
{
string result = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"));
string result = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"));
try
{
if (result != "")
Expand Down Expand Up @@ -85,7 +85,7 @@ public static void SetDictionary<K, V>(string setting, Dictionary<K, V> value)
kvp => (object?)kvp.Value
);

var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json");
var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json");
try
{
if (value.Count != 0) File.WriteAllText(file, JsonSerializer.Serialize(value));
Expand Down
4 changes: 2 additions & 2 deletions src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static partial class Settings
// Otherwise, load the setting from disk and cache that setting
List<T> value = [];

var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json");
var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json");
if (File.Exists(file))
{
string result = File.ReadAllText(file);
Expand Down Expand Up @@ -73,7 +73,7 @@ public static partial class Settings
public static void SetList<T>(string setting, List<T> value)
{
listSettings[setting] = value.Cast<object>().ToList();
var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json");
var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json");
try
{
if (value.Count != 0) File.WriteAllText(file, JsonSerializer.Serialize(value));
Expand Down

0 comments on commit fbb2b91

Please sign in to comment.