Properly handle metadata delete after item deletion in FileProviderExtension
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 20 Mar 2023 13:56:41 +0000 (14:56 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 08:02:37 +0000 (16:02 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift

index 1a8bb0ba1e78341f05f714ab6eea87a657d644cf..67f27c5515eb0bd087df6b1ada43e8aab8a915e2 100644 (file)
@@ -580,11 +580,12 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm
             Logger.fileTransfer.info("Successfully deleted item with identifier: \(identifier.rawValue, privacy: .public) at: \(serverFileNameUrl, privacy: OSLogPrivacy.auto(mask: .hash))")
 
             if itemMetadata.directory {
-                dbManager.deleteDirectoryAndSubdirectoriesMetadata(ocId: ocId)
-            }
-
-            if dbManager.localFileMetadataFromOcId(ocId) != nil {
-                dbManager.deleteLocalFileMetadata(ocId: ocId)
+                _ = dbManager.deleteDirectoryAndSubdirectoriesMetadata(ocId: ocId)
+            } else {
+                dbManager.deleteItemMetadata(ocId: ocId)
+                if dbManager.localFileMetadataFromOcId(ocId) != nil {
+                    dbManager.deleteLocalFileMetadata(ocId: ocId)
+                }
             }
 
             completionHandler(nil)