From 7904b2366a28fca2585b5f5ec0588412e10f0c94 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Mon, 23 Feb 2026 22:02:59 -0800 Subject: perf: cache danbooru page token floor and reuse search-history payloads --- Sora/Data/Settings/SettingsManager.swift | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'Sora/Data/Settings') diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index b07b38c..78aef7c 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -198,13 +198,17 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l defer { isUpdatingCache = false } + let sortedSearchHistory = newValue.sorted { $0.date > $1.date } + let payload = SettingsCodec.encodeOnce(sortedSearchHistory) + syncableData( key: "searchHistory", localData: $searchHistoryData, - newValue: newValue, - ) { $0.sorted { $0.date > $1.date } } + newValue: sortedSearchHistory, + encodedData: payload?.encodedData + ) { $0 } - searchHistoryCache = newValue.sorted { $0.date > $1.date } + searchHistoryCache = sortedSearchHistory pendingSyncKeys.insert(.searchHistory) triggerBatchedSync() @@ -427,13 +431,17 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l defer { isUpdatingCache = false } + let sortedSearchHistory = newValue.sorted { $0.date > $1.date } + let payload = SettingsCodec.encodeOnce(sortedSearchHistory) + syncableData( key: "searchHistory", localData: $searchHistoryData, - newValue: newValue, - ) { $0.sorted { $0.date > $1.date } } + newValue: sortedSearchHistory, + encodedData: payload?.encodedData + ) { $0 } - searchHistoryCache = newValue.sorted { $0.date > $1.date } + searchHistoryCache = sortedSearchHistory pendingSyncKeys.insert(.searchHistory) triggerBatchedSync() -- cgit v1.2.3