Fix accidental purge of all metadatas caused by trying to call updateDirectoryMetadatasFromItemMetadatas when reading the root container

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-03-09 01:29:38 +01:00
parent d478320dd3
commit 7734316416
No known key found for this signature in database
GPG key ID: C839200C384636B0

View file

@ -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)