summaryrefslogtreecommitdiff
path: root/Sora/Data/Settings/SettingsManager.swift
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-02 06:48:51 -0700
committerFuwn <[email protected]>2025-07-02 06:48:51 -0700
commit097685b0ba6e9baabf55aa8140c49f18c2a361d0 (patch)
tree9e56ce24c49d8efe747f51dea3ff2219a646421a /Sora/Data/Settings/SettingsManager.swift
parentfeat: Development commit (diff)
downloadsora-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.swift21
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)