Browse Source

remove: uploadingIdentifier

Marino Faggiana 7 years ago
parent
commit
9f4741bda6
2 changed files with 9 additions and 17 deletions
  1. 3 13
      PickerFileProvider/FileProvider.swift
  2. 6 4
      PickerFileProvider/FileProviderItem.swift

+ 3 - 13
PickerFileProvider/FileProvider.swift

@@ -40,10 +40,7 @@ var fileProviderStorageURL: URL?
 var importDocumentURL: URL?
 var changeDocumentURL: URL?
 
-// Array file in Upload
-var uploadingIdentifier = [String]()
-
-//
+// Item for refresh
 var updateItem: NSFileProviderItem?
 
 class FileProvider: NSFileProviderExtension {
@@ -354,12 +351,12 @@ class FileProvider: NSFileProviderExtension {
                     return
                 }
                 
-                DispatchQueue.main.async {
+                DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
 
                     // Copy file to Change Directory
                     _ = self.copyFile(url.path, toPath: changeDocumentPath)
                     
-                    let queue = NCManageDatabase.sharedInstance.getQueueUpload(predicate: NSPredicate(format: "account = %@ AND path = %@", account, url.path))
+                    let queue = NCManageDatabase.sharedInstance.getQueueUpload(predicate: NSPredicate(format: "account = %@ AND path = %@", account, changeDocumentPath))
                 
                     if queue?.count == 0 {
                     
@@ -861,9 +858,6 @@ class FileProvider: NSFileProviderExtension {
             
             _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
             
-            // remove identifier from array upload
-            uploadingIdentifier = uploadingIdentifier.filter() { $0 != identifier.rawValue }
-
             // Remove file *changeDocument
             _ = self.deleteFile(fileNameLocalPath)
             
@@ -871,16 +865,12 @@ class FileProvider: NSFileProviderExtension {
             self.refreshEnumerator(identifier: identifier, serverUrl: serverUrl)
             
         }, failure: { (message, errorCode) in
-            // remove identifier from array upload
-            uploadingIdentifier = uploadingIdentifier.filter() { $0 != identifier.rawValue }
             // unlock queueUpload
             NCManageDatabase.sharedInstance.unlockQueueUpload(assetLocalIdentifier: nil, path: fileNameLocalPath)
         })
         
         if (task != nil) {
             
-            uploadingIdentifier.append(identifier.rawValue)
-            
             if #available(iOSApplicationExtension 11.0, *) {
                 NSFileProviderManager.default.register(task!, forItemWithIdentifier: identifier) { (error) in
                     print("Registe download task")

+ 6 - 4
PickerFileProvider/FileProviderItem.swift

@@ -108,6 +108,7 @@ class FileProviderItem: NSObject, NSFileProviderItem {
             let identifierPathUrl = fileProviderStorageURL!.appendingPathComponent(metadata.fileID)
             let fileIdentifier = "\(identifierPathUrl.path)/\(metadata.fileNameView)"
             let fileDirectoryUser = "\(directoryUser)/\(metadata.fileID)"
+            let changeDocumentPath = changeDocumentURL!.path + "/" + metadata.fileNameView
             var fileSize = 0 as Double
 
             do {
@@ -146,12 +147,13 @@ class FileProviderItem: NSObject, NSFileProviderItem {
             }
             
             // Upload
-            if uploadingIdentifier.contains(metadata.fileID) {
-                self.isUploading = true
-                self.isUploaded = false
-            } else {
+            let queue = NCManageDatabase.sharedInstance.getQueueUpload(predicate: NSPredicate(format: "account = %@ AND path = %@", account, changeDocumentPath))
+            if queue?.count == 0 {
                 self.isUploading = false
                 self.isUploaded = true
+            } else {
+                self.isUploading = true
+                self.isUploaded = false
             }
         }