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()
}
}
func enumerator(for containerItemIdentifier: NSFileProviderItemIdentifier, request: NSFileProviderRequest) throws -> NSFileProviderEnumerator {
- return FileProviderEnumerator(enumeratedItemIdentifier: containerItemIdentifier)
+ return FileProviderEnumerator(enumeratedItemIdentifier: containerItemIdentifier, ncAccount: ncAccount)
}
// MARK: Nextcloud desktop client communication