[iOS & Android] iOS 1.3.0 & Android 1.8.0
All checks were successful
OpenClimb Docker Deploy / build-and-push (push) Successful in 2m13s
All checks were successful
OpenClimb Docker Deploy / build-and-push (push) Successful in 2m13s
This commit is contained in:
@@ -401,31 +401,35 @@ class SyncService: ObservableObject {
|
||||
let imagePathMapping = try await syncImagesFromServer(
|
||||
backup: serverBackup, dataManager: dataManager)
|
||||
|
||||
// Merge data additively - never remove existing local data
|
||||
// Merge deletion lists first to prevent resurrection of deleted items
|
||||
let localDeletions = dataManager.getDeletedItems()
|
||||
let allDeletions = localDeletions + serverBackup.deletedItems
|
||||
let uniqueDeletions = Array(Set(allDeletions))
|
||||
|
||||
print("Merging gyms...")
|
||||
let mergedGyms = mergeGyms(
|
||||
local: dataManager.gyms,
|
||||
server: serverBackup.gyms,
|
||||
deletedItems: serverBackup.deletedItems)
|
||||
deletedItems: uniqueDeletions)
|
||||
|
||||
print("Merging problems...")
|
||||
let mergedProblems = try mergeProblems(
|
||||
local: dataManager.problems,
|
||||
server: serverBackup.problems,
|
||||
imagePathMapping: imagePathMapping,
|
||||
deletedItems: serverBackup.deletedItems)
|
||||
deletedItems: uniqueDeletions)
|
||||
|
||||
print("Merging sessions...")
|
||||
let mergedSessions = try mergeSessions(
|
||||
local: dataManager.sessions,
|
||||
server: serverBackup.sessions,
|
||||
deletedItems: serverBackup.deletedItems)
|
||||
deletedItems: uniqueDeletions)
|
||||
|
||||
print("Merging attempts...")
|
||||
let mergedAttempts = try mergeAttempts(
|
||||
local: dataManager.attempts,
|
||||
server: serverBackup.attempts,
|
||||
deletedItems: serverBackup.deletedItems)
|
||||
deletedItems: uniqueDeletions)
|
||||
|
||||
// Update data manager with merged data
|
||||
dataManager.gyms = mergedGyms
|
||||
@@ -440,11 +444,6 @@ class SyncService: ObservableObject {
|
||||
dataManager.saveAttempts()
|
||||
dataManager.saveActiveSession()
|
||||
|
||||
// Merge deletion lists
|
||||
let localDeletions = dataManager.getDeletedItems()
|
||||
let allDeletions = localDeletions + serverBackup.deletedItems
|
||||
let uniqueDeletions = Array(Set(allDeletions))
|
||||
|
||||
// Update local deletions with merged list
|
||||
dataManager.clearDeletedItems()
|
||||
if let data = try? JSONEncoder().encode(uniqueDeletions) {
|
||||
|
||||
Reference in New Issue
Block a user