From 74222daa2abbd38c737ab9f993b7876559a595c7 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Wed, 1 Feb 2023 18:14:33 +0100 Subject: [PATCH] Don't unnecessarily fail to provide parentItemIdentifier in NextcloudFileProviderFilesUtils when we can get the root container straight from the item metadata in question Signed-off-by: Claudio Cambra --- .../NextcloudFileProviderFilesUtils.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift index eaa4ce0de..0ffa48029 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift @@ -91,15 +91,22 @@ func createFileOrDirectoryLocally(metadata: NextcloudItemMetadataTable) { func parentItemIdentifierFromMetadata(_ metadata: NextcloudItemMetadataTable) -> NSFileProviderItemIdentifier? { let homeServerFilesUrl = metadata.urlBase + "/remote.php/dav/files/" + metadata.userId - let ncDatabase = NextcloudFilesDatabaseManager.shared - guard let itemParentDirectory = ncDatabase.parentDirectoryMetadataForItem(metadata) else { return nil } - if itemParentDirectory.serverUrl == homeServerFilesUrl { + if metadata.serverUrl == homeServerFilesUrl { return .rootContainer - } else if let parentDirectoryMetadata = ncDatabase.itemMetadataFromOcId(itemParentDirectory.ocId) { + } + + let ncDatabase = NextcloudFilesDatabaseManager.shared + guard let itemParentDirectory = ncDatabase.parentDirectoryMetadataForItem(metadata) else { + NSLog("Could not get item parent directory metadata for metadata with ocId: %@ and fileName: %@, returning nil", metadata.ocId, metadata.fileName) + return nil + } + + if let parentDirectoryMetadata = ncDatabase.itemMetadataFromOcId(itemParentDirectory.ocId) { return NSFileProviderItemIdentifier(parentDirectoryMetadata.ocId) } + NSLog("Could not get item parent directory item metadata for metadata with ocId: %@ and fileName: %@, returning nil", metadata.ocId, metadata.fileName) return nil } -- 2.30.2