From: Claudio Cambra Date: Thu, 12 Jan 2023 17:34:38 +0000 (+0100) Subject: Add convenience parentItemIdentifierFromMetadata convenience function to NextcloudFil... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~10^2~55^2~284 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1a27f3c2494f842b20eb414034595bfc083a3f6c;p=nextcloud-desktop.git Add convenience parentItemIdentifierFromMetadata convenience function to NextcloudFileProviderFilesUtils Signed-off-by: Claudio Cambra --- diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift index 0ec342292..fd64200c9 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFileProviderFilesUtils.swift @@ -88,3 +88,17 @@ func createFileOrDirectoryLocally(metadata: NextcloudFileMetadataTable) { print("Could not create NC file or directory locally, received error: %@", error) } } + +func parentItemIdentifierFromMetadata(_ metadata: NextcloudFileMetadataTable) -> NSFileProviderItemIdentifier? { + let homeServerFilesUrl = metadata.urlBase + "/remote.php/dav/files/" + metadata.userId + let ncDatabase = NextcloudFilesDatabaseManager.shared + + guard let itemParentDirectory = ncDatabase.directoryMetadataForFile(metadata) else { return nil } + if itemParentDirectory.serverUrl == homeServerFilesUrl { + return .rootContainer + } else if let parentDirectoryMetadata = ncDatabase.fileMetadataFromOcId(itemParentDirectory.ocId) { + return NSFileProviderItemIdentifier(parentDirectoryMetadata.ocId) + } + + return nil +}