Report deletedItemMetadatas in processItemMetadatasToDelete in NextcloudFilesDatabase...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 8 Mar 2023 16:43:55 +0000 (17:43 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:21 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift

index 04e582ca13598ca8fbe911e6fa2a36095b9323ae..f4edcbf6b9a21a6997534b4a2cf53a6674d61bf0 100644 (file)
@@ -110,14 +110,18 @@ class NextcloudFilesDatabaseManager : NSObject {
 
     private func processItemMetadatasToDelete(databaseToWriteTo: Realm,
                                               existingMetadatas: Results<NextcloudItemMetadataTable>,
-                                              updatedMetadatas: [NextcloudItemMetadataTable]) {
+                                              updatedMetadatas: [NextcloudItemMetadataTable]) -> [NextcloudItemMetadataTable] {
 
         assert(databaseToWriteTo.isInWriteTransaction)
 
+        var deletedMetadatas: [NextcloudItemMetadataTable] = []
+
         for existingMetadata in existingMetadatas {
             guard !updatedMetadatas.contains(where: { $0.ocId == existingMetadata.ocId }),
                     let metadataToDelete = itemMetadataFromOcId(existingMetadata.ocId) else { continue }
 
+            deletedMetadatas.append(metadataToDelete)
+
             NSLog("""
                     Deleting metadata.
                     ocID: %@,
@@ -129,6 +133,8 @@ class NextcloudFilesDatabaseManager : NSObject {
             // Can't pass copies, we need the originals from the database
             databaseToWriteTo.delete(ncDatabase().objects(NextcloudItemMetadataTable.self).filter("ocId == %@", metadataToDelete.ocId))
         }
+
+        return deletedMetadatas
     }
 
     private func processItemMetadatasToUpdate(databaseToWriteTo: Realm,