From: Claudio Cambra Date: Tue, 10 Jan 2023 19:25:26 +0000 (+0100) Subject: Complete FileProviderEnumerator init, get correct serverUrl for enumerator item ident... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~96^2^2~55^2~292 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9f6c2df4e367a9bd4bdf5a3c58d7115154c7e487;p=nextcloud-desktop.git Complete FileProviderEnumerator init, get correct serverUrl for enumerator item identifier Signed-off-by: Claudio Cambra --- diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift index 9cd356396..1b0fa2cb8 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift @@ -18,9 +18,25 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator { private let enumeratedItemIdentifier: NSFileProviderItemIdentifier private let anchor = NSFileProviderSyncAnchor("an anchor".data(using: .utf8)!) + let ncAccount: NextcloudAccount + var serverUrl: URL? - init(enumeratedItemIdentifier: NSFileProviderItemIdentifier) { + init(enumeratedItemIdentifier: NSFileProviderItemIdentifier, ncAccount: NextcloudAccount) { self.enumeratedItemIdentifier = enumeratedItemIdentifier + self.ncAccount = ncAccount + + if enumeratedItemIdentifier == .rootContainer { + self.serverUrl = ncAccount.serverUrl + } else { + let dbManager = NextcloudFilesDatabaseManager.shared + if let itemMetadata = dbManager.fileMetadataFromFileProviderItemIdentifier(enumeratedItemIdentifier), + let itemDirectoryMetadata = dbManager.directoryMetadataForFile(itemMetadata) { + + self.serverUrl = URL(string: itemDirectoryMetadata.serverUrl + "/" + itemMetadata.fileName) + } + + } + super.init() } diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift index 5cd2136a8..98116c0bd 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift @@ -101,7 +101,7 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension { } func enumerator(for containerItemIdentifier: NSFileProviderItemIdentifier, request: NSFileProviderRequest) throws -> NSFileProviderEnumerator { - return FileProviderEnumerator(enumeratedItemIdentifier: containerItemIdentifier) + return FileProviderEnumerator(enumeratedItemIdentifier: containerItemIdentifier, ncAccount: ncAccount) } // MARK: Nextcloud desktop client communication