diff options
| author | Fuwn <[email protected]> | 2025-07-02 06:48:51 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-07-02 06:48:51 -0700 |
| commit | 097685b0ba6e9baabf55aa8140c49f18c2a361d0 (patch) | |
| tree | 9e56ce24c49d8efe747f51dea3ff2219a646421a /Sora/Data/Settings/SettingsManager.swift | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-097685b0ba6e9baabf55aa8140c49f18c2a361d0.tar.xz sora-testing-097685b0ba6e9baabf55aa8140c49f18c2a361d0.zip | |
feat: Development commit
Diffstat (limited to 'Sora/Data/Settings/SettingsManager.swift')
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index ff284f3..fbd432e 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -44,6 +44,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l // MARK: - Private Properties private var bookmarksCache: [SettingsBookmark] = [] private var searchHistoryCache: [BooruSearchQuery] = [] + private var displayRatingsCache: [BooruRating] = [] // MARK: - Codable Properties @AppStorage("bookmarks") @@ -134,11 +135,13 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l } var displayRatings: [BooruRating] { - get { - Self.decode([BooruRating].self, from: displayRatingsData) ?? BooruRating.allCases - } + get { displayRatingsCache } - set { displayRatingsData = Self.encode(newValue) ?? displayRatingsData } + set { + displayRatingsData = Self.encode(newValue) ?? displayRatingsData + + loadDisplayRatingsCache() + } } var blurRatings: [BooruRating] { @@ -282,8 +285,10 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l ) { [weak self] _ in self?.syncFromCloud() } + loadBookmarksCache() loadSearchHistoryCache() + loadDisplayRatingsCache() } // MARK: - Private Helpers @@ -380,6 +385,14 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l ) } + private func loadDisplayRatingsCache() { + loadCache( + from: displayRatingsData, + sort: { $0 }, + assign: { [weak self] in self?.displayRatingsCache = $0 } + ) + } + // MARK: - Public Methods func appendToSearchHistory(_ query: BooruSearchQuery) { self.searchHistory.append(query) |