-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathJsonLoad.cs
60 lines (54 loc) · 2.61 KB
/
JsonLoad.cs
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
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 class Settings
{
public string Appearance { get; set; }
public bool AskDownloadBehavior { get; set; }
public string BackgroundImage { get; set; }
public string SearchEngine { get; set; }
public bool ShowBackground { get; set; }
public bool ShowFlyoutWhenStartDownloading { get; set; }
public bool ShowMicaIfEnabled { get; set; }
public bool ShowSuggestUri { get; set; }
public string SpecificUri { get; set; }
public int StartBehavior { get; set; }
public Dictionary<string, bool> ToolBar { get; set; }
public ObservableCollection<WebsiteInfo> Favorites { get; set; }
}
public class WebsiteInfo
{
public string Name { get; set; }
public string Icon { get; set; }
public Uri Uri { get; set; }
}
[JsonSourceGenerationOptions(WriteIndented = true)]
[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> SuggestWebsiteList = JsonSerializer.Deserialize(File.ReadAllText("./Data/SuggestWebsite.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;
}
}
}