Ensure no metadatas get deleted when updating metadata for scanned directory in FileP...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 10 Mar 2023 23:31:47 +0000 (00:31 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:26 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift

index e7e799fea7346747d5a6e16d1ffb68793098700e..d2b82daf35ef23001bfa149bde79e869ebe8dd3c 100644 (file)
@@ -513,11 +513,10 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
 
                         // STORE DATA FOR CURRENTLY SCANNED DIRECTORY
                         // We have now scanned this directory's contents, so update with etag in order to not check again if not needed
-                        // unless it's the root container -- this method deletes metadata for directories under the path that we do not
-                        // provide as the updatedDirectoryItemMetadatas, don't do this with root folder or we will purge metadatas wrongly
+                        // unless it's the root container
                         if serverUrl != ncAccount.davFilesUrl {
-                            // Don't use serverUrl here, get the parent serverUrl from retrieved metadata
-                            dbManager.updateDirectoryMetadatasFromItemMetadatas(account: ncKitAccount, parentDirectoryServerUrl: directoryMetadata.serverUrl, updatedDirectoryItemMetadatas: [directoryMetadata], recordEtag: true)
+                            let directoryItemMetadata = dbManager.directoryMetadataFromItemMetadata(directoryItemMetadata: directoryMetadata, recordEtag: true)
+                            dbManager.addDirectoryMetadata(directoryItemMetadata)
                         }
 
                         // STORE ETAG-LESS DIRECTORY METADATA FOR CHILD DIRECTORIES