summaryrefslogtreecommitdiff
path: root/Sora/Data/Settings/SettingsManager.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Settings/SettingsManager.swift')
-rw-r--r--Sora/Data/Settings/SettingsManager.swift22
1 files changed, 19 insertions, 3 deletions
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift
index f4273ef..984ffbe 100644
--- a/Sora/Data/Settings/SettingsManager.swift
+++ b/Sora/Data/Settings/SettingsManager.swift
@@ -14,9 +14,6 @@ class SettingsManager: ObservableObject {
@AppStorage("thumbnailGridColumns")
var thumbnailGridColumns = 2
- @AppStorage("preferredBooru")
- var preferredBooruData = Data()
-
@AppStorage("enableShareShortcut")
var enableShareShortcut = false
@@ -44,6 +41,12 @@ class SettingsManager: ObservableObject {
@AppStorage("searchHistory")
private var searchHistoryData = Data()
+ @AppStorage("preferredBooru")
+ private var preferredBooruData = Data()
+
+ @AppStorage("customProviders")
+ private var customProvidersData = Data()
+
// MARK: - Computed Properties
var bookmarks: [SettingsBookmark] {
get {
@@ -85,6 +88,19 @@ class SettingsManager: ObservableObject {
set { preferredBooruData = Self.encode(newValue) ?? preferredBooruData }
}
+ var customProviders: [BooruProviderCustom] {
+ get {
+ Self.decode(
+ [BooruProviderCustom].self,
+ from: customProvidersData
+ ) ?? []
+ }
+
+ set {
+ customProvidersData = Self.encode(newValue) ?? customProvidersData
+ }
+ }
+
// MARK: - Private Helpers
private static func encode<T: Encodable>(_ value: T) -> Data? {
try? JSONEncoder().encode(value)