From: Claudio Cambra Date: Thu, 9 Mar 2023 00:29:38 +0000 (+0100) Subject: Fix accidental purge of all metadatas caused by trying to call updateDirectoryMetadat... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~96^2^2~55^2~195 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=773431641672107dff06d1016be01745b33b243d;p=nextcloud-desktop.git Fix accidental purge of all metadatas caused by trying to call updateDirectoryMetadatasFromItemMetadatas when reading the root container Signed-off-by: Claudio Cambra --- diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift index 68dfeae64..e96ee7135 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift @@ -245,7 +245,11 @@ 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 - dbManager.updateDirectoryMetadatasFromItemMetadatas(account: ncKitAccount, parentDirectoryServerUrl: serverUrl, updatedDirectoryItemMetadatas: [directoryMetadata], recordEtag: true) + // 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 + if serverUrl != ncAccount.davFilesUrl { + dbManager.updateDirectoryMetadatasFromItemMetadatas(account: ncKitAccount, parentDirectoryServerUrl: serverUrl, updatedDirectoryItemMetadatas: [directoryMetadata], recordEtag: true) + } let receivedMetadataChanges = dbManager.updateItemMetadatas(account: ncKitAccount, serverUrl: serverUrl, updatedMetadatas: metadatas)