diff options
| author | Fuwn <[email protected]> | 2025-07-21 17:57:28 +0200 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2025-07-21 17:57:28 +0200 |
| commit | 2c9040364881037501b759d290ad7f2c787fd2a4 (patch) | |
| tree | 4c25754b263409f5faed174cb456167458f01c41 | |
| parent | feat: Development commit (diff) | |
| download | sora-testing-2c9040364881037501b759d290ad7f2c787fd2a4.tar.xz sora-testing-2c9040364881037501b759d290ad7f2c787fd2a4.zip | |
feat: Development commit
| -rw-r--r-- | Sora/Data/Settings/SettingsManager.swift | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index 435df1c..c4f000c 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -85,7 +85,6 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l localData: $bookmarksData, newValue: newValue, sort: { $0.sorted { $0.date > $1.date } }, - identifier: { $0.id } ) loadBookmarksCache() backupBookmarks() @@ -139,7 +138,6 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l localData: $searchHistoryData, newValue: newValue, sort: { $0.sorted { $0.date > $1.date } }, - identifier: { $0.id } ) loadSearchHistoryCache() } @@ -169,7 +167,6 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l localData: $customProvidersData, newValue: newValue, sort: { $0 }, - identifier: { $0.id } ) } } @@ -189,8 +186,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l key: "folders", localData: $foldersData, newValue: newValue, - sort: { $0 }, - identifier: { $0.id } + sort: { $0 } ) } } @@ -220,8 +216,7 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l key: "providerAPIKeys", localData: $providerCredentialsData, newValue: mergedCredentials, - sort: { $0 }, - identifier: { $0.id } + sort: { $0 } ) } } @@ -315,28 +310,14 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l key: String, localData: Binding<Data>, newValue: [T], - sort: ([T]) -> [T], - identifier: (T) -> UUID + sort: ([T]) -> [T] ) { let sortedValues = sort(newValue) localData.wrappedValue = Self.encode(sortedValues) ?? Data() if enableSync { - var iCloudValues: [T] = [] - - if let iCloudData = NSUbiquitousKeyValueStore.default.data(forKey: key) { - iCloudValues = Self.decode([T].self, from: iCloudData) ?? [] - } - - let sortedValueIDs = Set(sortedValues.map { identifier($0) }) - let uniqueICloudValues = iCloudValues.filter { iCloudItem in - !sortedValueIDs.contains(identifier(iCloudItem)) - } - let mergedValues = sortedValues + uniqueICloudValues - let sortedMergedValues = sort(mergedValues) - - NSUbiquitousKeyValueStore.default.set(Self.encode(sortedMergedValues), forKey: key) + NSUbiquitousKeyValueStore.default.set(Self.encode(sortedValues), forKey: key) NSUbiquitousKeyValueStore.default.synchronize() } } |