Marino Faggiana 6 years ago
parent
commit
f1f25993c9

+ 1 - 1
PickerFileProvider/FileProviderExtension+Actions.swift

@@ -456,7 +456,7 @@ extension FileProviderExtension {
         let item = FileProviderItem(metadata: metadataDB, parentItemIdentifier: parentItemIdentifier, providerData: self.providerData)
         
         DispatchQueue.main.sync {
-            uploadFile()
+            uploadFileImportDocument()
         }
         
         completionHandler(item, nil)

+ 25 - 2
PickerFileProvider/FileProviderExtension+Network.swift

@@ -204,7 +204,7 @@ extension FileProviderExtension {
                 fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
             }
             
-            uploadFile()
+            uploadFileImportDocument()
             
         } else {
             
@@ -214,6 +214,12 @@ extension FileProviderExtension {
                 NCManageDatabase.sharedInstance.unlockQueueUpload(assetLocalIdentifier: assetLocalIdentifier)
             }
             
+            // itemChanged
+            if (selectorPost == selectorPostItemChanged) {
+                
+                uploadFileItemChanged(for: metadata, url: url)
+            }
+            
             let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: providerData)
             
             queueTradeSafe.sync(flags: .barrier) {
@@ -225,7 +231,7 @@ extension FileProviderExtension {
         self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
     }
     
-    func uploadFile() {
+    func uploadFileImportDocument() {
         
         let queueInLock = NCManageDatabase.sharedInstance.getQueueUploadInLock()
         if queueInLock != nil && queueInLock!.count == 0 {
@@ -245,6 +251,23 @@ extension FileProviderExtension {
         }
     }
     
+    func uploadFileItemChanged(for metadata: tableMetadata, url: URL) {
+        
+        metadata.assetLocalIdentifier = ""
+        metadata.session = k_upload_session_extension
+        metadata.sessionID = metadata.fileID
+        metadata.sessionSelector = selectorUploadFile
+        metadata.sessionSelectorPost = selectorPostItemChanged
+        
+        guard let metadataForUpload = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
+            return
+        }
+        
+        _ = self.copyFile(url.path, toPath: providerData.directoryUser + "/" + metadata.fileID)
+        
+        CCNetworking.shared().uploadFileMetadata(metadataForUpload, taskStatus: Int(k_taskStatusResume), delegate: self)
+    }
+    
     func verifyUploadQueueInLock() {
         
         let tasks = CCNetworking.shared().getUploadTasksExtensionSession()

+ 2 - 14
PickerFileProvider/FileProviderExtension.swift

@@ -94,7 +94,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
                 timerUpload = Timer.init(timeInterval: TimeInterval(k_timerProcessAutoUploadExtension), repeats: true, block: { (Timer) in
                     
                     // new upload
-                    self.uploadFile()
+                    self.uploadFileImportDocument()
                 })
                 
                 RunLoop.main.add(timerUpload!, forMode: .defaultRunLoopMode)
@@ -472,19 +472,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
                 return
             }
             
-            metadata.assetLocalIdentifier = ""
-            metadata.session = k_upload_session_extension
-            metadata.sessionID = metadata.fileID
-            metadata.sessionSelector = selectorUploadFile
-            metadata.sessionSelectorPost = selectorPostItemChanged
-            
-            guard let metadataForUpload = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
-                return
-            }
-            
-            _ = self.copyFile(url.path, toPath: providerData.directoryUser + "/" + metadata.fileID)
-
-            CCNetworking.shared().uploadFileMetadata(metadataForUpload, taskStatus: Int(k_taskStatusResume), delegate: self)
+            uploadFileItemChanged(for: metadata, url: url)
             
         } else {