From 097685b0ba6e9baabf55aa8140c49f18c2a361d0 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Wed, 2 Jul 2025 06:48:51 -0700 Subject: feat: Development commit --- Sora/Data/Settings/SettingsManager.swift | 21 +++++++++++++++++---- 1 file 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) -- cgit v1.2.3