summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-21 17:57:28 +0200
committerFuwn <[email protected]>2025-07-21 17:57:28 +0200
commit2c9040364881037501b759d290ad7f2c787fd2a4 (patch)
tree4c25754b263409f5faed174cb456167458f01c41
parentfeat: Development commit (diff)
downloadsora-testing-2c9040364881037501b759d290ad7f2c787fd2a4.tar.xz
sora-testing-2c9040364881037501b759d290ad7f2c787fd2a4.zip
feat: Development commit
-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()
}
}