marinofaggiana 4 年之前
父節點
當前提交
f0a1bf7b8c
共有 2 個文件被更改,包括 18 次插入14 次删除
  1. 12 10
      File Provider Extension/FileProviderData.swift
  2. 6 4
      File Provider Extension/FileProviderExtension.swift

+ 12 - 10
File Provider Extension/FileProviderData.swift

@@ -29,6 +29,9 @@ class fileProviderData: NSObject {
         return instance
     }()
         
+    var domain: NSFileProviderDomain?
+    var fileProviderManager: NSFileProviderManager = NSFileProviderManager.default
+    
     var account = ""
     var accountUrlBase = ""
     var homeServerUrl = ""
@@ -64,6 +67,13 @@ class fileProviderData: NSObject {
         if CCUtility.getDisableFilesApp() || NCBrandOptions.sharedInstance.disable_openin_file {
             return nil
         }
+        
+        self.domain = domain
+        if domain != nil {
+            if let fileProviderManager = NSFileProviderManager.init(for: domain!) {
+                self.fileProviderManager = fileProviderManager
+            }
+        }
                 
         // NO DOMAIN -> Set default account
         if domain == nil {
@@ -136,18 +146,10 @@ class fileProviderData: NSObject {
         
         if update || delete {
             currentAnchor += 1
-            NSFileProviderManager.default.signalEnumerator(for: parentItemIdentifier) { error in
-                if let error = error {
-                    print("SignalEnumerator returned error: \(error)")
-                }
-            }
+            fileProviderManager.signalEnumerator(for: parentItemIdentifier) { _ in }
         }
         
-        NSFileProviderManager.default.signalEnumerator(for: .workingSet) { error in
-            if let error = error {
-                print("SignalEnumerator returned error: \(error)")
-            }
-        }
+        fileProviderManager.signalEnumerator(for: .workingSet) { _ in }
         
         return item
     }

+ 6 - 4
File Provider Extension/FileProviderExtension.swift

@@ -140,7 +140,7 @@ class FileProviderExtension: NSFileProviderExtension {
         
         // in this implementation, all paths are structured as <base storage directory>/<item identifier>/<item file name>
         
-        let manager = NSFileProviderManager.default
+        let manager = fileProviderData.sharedInstance.fileProviderManager
         var url = manager.documentStorageURL.appendingPathComponent(identifier.rawValue, isDirectory: true)
         
         if item.typeIdentifier == (kUTTypeFolder as String) {
@@ -226,7 +226,8 @@ class FileProviderExtension: NSFileProviderExtension {
             if task == nil && downloadRequest?.task != nil {
                 task = downloadRequest?.task
                 self.outstandingSessionTasks[url] = task
-                NSFileProviderManager.default.register(task!, forItemWithIdentifier: NSFileProviderItemIdentifier(identifier.rawValue)) { (error) in }
+                
+                fileProviderData.sharedInstance.fileProviderManager.register(task!, forItemWithIdentifier: NSFileProviderItemIdentifier(identifier.rawValue)) { (error) in }
             }
             
         }) { (account, etag, date, length, error, errorCode, errorDescription) in
@@ -290,7 +291,7 @@ class FileProviderExtension: NSFileProviderExtension {
         
         if let task = NCCommunicationBackground.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: nil, dateModificationFile: nil, description: metadata.ocId, session: NCNetworking.shared.sessionManagerBackgroundExtension) {
             
-            NSFileProviderManager.default.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(metadata.fileId)) { (error) in }
+            fileProviderData.sharedInstance.fileProviderManager.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(metadata.fileId)) { (error) in }
         }
     }
     
@@ -378,7 +379,8 @@ class FileProviderExtension: NSFileProviderExtension {
                 if let task = NCCommunicationBackground.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: nil, dateModificationFile: nil, description: ocIdTemp, session: NCNetworking.shared.sessionManagerBackgroundExtension) {
                     
                     self.outstandingSessionTasks[URL(fileURLWithPath: fileNameLocalPath)] = task as URLSessionTask
-                    NSFileProviderManager.default.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(ocIdTemp)) { (error) in }
+                    
+                    fileProviderData.sharedInstance.fileProviderManager.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(ocIdTemp)) { (error) in }
                 }
                 
                 let item = FileProviderItem(metadata: tableMetadata.init(value: metadata), parentItemIdentifier: parentItemIdentifier)