summaryrefslogtreecommitdiff
path: root/Sora/Data
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data')
-rw-r--r--Sora/Data/Settings/SettingsManager.swift27
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()
}
}