-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathJsonLoad.cs
More file actions
72 lines (65 loc) · 2.9 KB
/
JsonLoad.cs
File metadata and controls
72 lines (65 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Edge
{
public enum Effect
{
Mica,
MicaAlt,
Acrylic,
None
}
public class Settings
{
public string Appearance { get; set; }
public bool AskDownloadBehavior { get; set; }
public Effect BackgroundEffect { get; set; }
public string BackgroundImage { get; set; }
public string MenuStatus { get; set; }
public string SearchEngine { get; set; }
public bool ShowBackground { get; set; }
public bool ShowFlyoutWhenStartDownloading { get; set; }
public string SpecificUri { get; set; }
public int StartBehavior { get; set; }
public bool DisableGpu { get; set; }
public bool DisableBackgroundTimerThrottling { get; set; }
public bool InjectExtensionsStore { get; set; }
public Dictionary<string, bool> ToolBar { get; set; }
}
public class WebsiteInfo
{
public string Name { get; set; }
public bool CustomIcon { get; set; }
public Uri Icon { get; set; }
public Uri Uri { get; set; }
}
[JsonSourceGenerationOptions(WriteIndented = true, UseStringEnumConverter = true)]
[JsonSerializable(typeof(List<GitHubRelease>))]
[JsonSerializable(typeof(Settings))]
[JsonSerializable(typeof(ObservableCollection<WebsiteInfo>))]
[JsonSerializable(typeof(List<WebsiteInfo>))]
[JsonSerializable(typeof(Dictionary<string, string>))]
internal partial class JsonContext : JsonSerializerContext { }
public static class Info
{
public static Dictionary<string, string> LanguageDict = JsonSerializer.Deserialize(File.ReadAllText("./Data/LanguageType.json"), JsonContext.Default.DictionaryStringString);
public static Dictionary<string, string> ImageDict = JsonSerializer.Deserialize(File.ReadAllText("./Data/ImageType.json"), JsonContext.Default.DictionaryStringString);
public static List<WebsiteInfo> SearchEngineList = JsonSerializer.Deserialize(File.ReadAllText("./Data/SearchEngine.json"), JsonContext.Default.ListWebsiteInfo);
public static ObservableCollection<WebsiteInfo> Favorites = JsonSerializer.Deserialize(File.ReadAllText("./Data/Favorites.json"), JsonContext.Default.ObservableCollectionWebsiteInfo);
public static Settings LoadSettings(bool overwrite = false)
{
string settingsFile = "./settings.json";
string defaultSettingsPath = "./Data/DefaultSettings.json";
if (!File.Exists(settingsFile) || overwrite)
{
File.Copy(defaultSettingsPath, settingsFile, overwrite);
}
Settings settings = JsonSerializer.Deserialize(File.ReadAllText(settingsFile), JsonContext.Default.Settings);
return settings;
}
}
}