Browse Source

fix Upload

Marino Faggiana 6 years ago
parent
commit
7b73fca342
2 changed files with 22 additions and 10 deletions
  1. 11 1
      PickerFileProvider/FileProvider.swift
  2. 11 9
      iOSClient/AppDelegate.m

+ 11 - 1
PickerFileProvider/FileProvider.swift

@@ -316,9 +316,19 @@ class FileProvider: NSFileProviderExtension {
             var fileSize : UInt64 = 0
             let pathComponents = url.pathComponents
             let identifier = NSFileProviderItemIdentifier(pathComponents[pathComponents.count - 2])
+            let fileName = url.lastPathComponent
             var localEtag = ""
             var localEtagFPE = ""
-
+            let changeDocumentPath = changeDocumentURL!.path + "/" + fileName
+            let importDocumentPath = importDocumentURL!.path + "/" + fileName
+            
+            // Verify is in Upload
+            let queue = NCManageDatabase.sharedInstance.getQueueUpload(predicate: NSPredicate(format: "account = %@ AND (path = %@ || path = %@)", account, changeDocumentPath, importDocumentPath))
+            if queue != nil && queue!.count > 0{
+                completionHandler(nil)
+                return
+            }
+            
             guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", account, identifier.rawValue)) else {
                 completionHandler(NSFileProviderError(.noSuchItem))
                 return

+ 11 - 9
iOSClient/AppDelegate.m

@@ -1489,22 +1489,24 @@
     
     if (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload && counterUploadInLock < 1) {
         
-        metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadFile];
+        metadataNet = [[NCManageDatabase sharedInstance] getQueueUpload];
         if (metadataNet) {
             
             if (metadataNet.path == nil)  {
-                
+                metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadFile];
                 [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
-
+                counterNewUpload++;
             } else {
-                
-                [CCUtility copyFileAtPath:metadataNet.path toPath:[NSString stringWithFormat:@"%@/%@", self.directoryUser, metadataNet.fileName]];
-                [[CCNetworking sharedNetworking] uploadFile:metadataNet.fileName serverUrl:metadataNet.serverUrl assetLocalIdentifier:metadataNet.assetLocalIdentifier session:metadataNet.session taskStatus:k_taskStatusResume selector:metadataNet.selector selectorPost:metadataNet.selectorPost errorCode:0 delegate:nil];
+                if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateBackground) {
+                    metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadFile];
+                    NSString *toPath = [NSString stringWithFormat:@"%@/%@", self.directoryUser, metadataNet.fileName];
+                    [CCUtility copyFileAtPath:metadataNet.path toPath:toPath];
+                    [[CCNetworking sharedNetworking] uploadFile:metadataNet.fileName serverUrl:metadataNet.serverUrl assetLocalIdentifier:metadataNet.assetLocalIdentifier session:metadataNet.session taskStatus:k_taskStatusResume selector:metadataNet.selector selectorPost:metadataNet.selectorPost errorCode:0 delegate:nil];
+                    counterNewUpload++;
+                }
             }
-            
-            counterNewUpload++;
         }
-                
+        
         counterUploadInSessionAndInLock = [[[NCManageDatabase sharedInstance] getTableMetadataUpload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataUploadWWan] count] + [[[NCManageDatabase sharedInstance] getQueueUploadInLock] count];
     }