diff options
Diffstat (limited to 'Sora/Data')
| -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() } } |