Keep track of additional details about enumerating item in the FileProviderEnumerator
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 7 Mar 2023 22:30:50 +0000 (23:30 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:21:21 +0000 (13:21 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderEnumerator.swift

index 3ab5470d188222778681d8ef5462de7e89d32def..2431d5bf031bbf6ff13791cf0dc626f7e254c766 100644 (file)
@@ -18,18 +18,28 @@ import NextcloudKit
 class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
     
     private let enumeratedItemIdentifier: NSFileProviderItemIdentifier
+    private var enumeratedItemMetadata: NextcloudItemMetadataTable?
+    private var enumeratingSystemIdentifier: Bool {
+        return FileProviderEnumerator.isSystemIdentifier(enumeratedItemIdentifier)
+    }
     private let anchor = NSFileProviderSyncAnchor(Date().description.data(using: .utf8)!) // TODO: actually use this in NCKit and server requests
     private static let maxItemsPerFileProviderPage = 100
     let ncAccount: NextcloudAccount
     let ncKit: NextcloudKit
     var serverUrl: String = ""
+
+    private static func isSystemIdentifier(_ identifier: NSFileProviderItemIdentifier) -> Bool {
+        return identifier == .rootContainer ||
+            identifier == .trashContainer ||
+            identifier == .workingSet
+    }
     
     init(enumeratedItemIdentifier: NSFileProviderItemIdentifier, ncAccount: NextcloudAccount, ncKit: NextcloudKit) {
         self.enumeratedItemIdentifier = enumeratedItemIdentifier
         self.ncAccount = ncAccount
         self.ncKit = ncKit
 
-        if enumeratedItemIdentifier == .rootContainer || enumeratedItemIdentifier == .trashContainer || enumeratedItemIdentifier == .workingSet {
+        if FileProviderEnumerator.isSystemIdentifier(enumeratedItemIdentifier) {
             NSLog("Providing enumerator for a system defined container: %@", enumeratedItemIdentifier.rawValue)
             self.serverUrl = ncAccount.davFilesUrl
         } else {