diff options
Diffstat (limited to 'Sora/Data/Settings/SettingsManager.swift')
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 22 |
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) |