Marino Faggiana 6 жил өмнө
parent
commit
afedfcea7a

+ 1 - 1
iOSClient/AppDelegate.h

@@ -153,7 +153,7 @@
 
 // Task Networking
 - (void)addNetworkingOperationQueue:(NSOperationQueue *)netQueue delegate:(id)delegate metadataNet:(CCMetadataNet *)metadataNet;
-- (void)loadAutoDownloadUpload:(NSNumber *)maxConcurrent;
+- (void)loadAutoDownloadUpload;
 
 // Maintenance Mode
 - (void)maintenanceMode:(BOOL)mode;

+ 12 - 29
iOSClient/AppDelegate.m

@@ -1396,17 +1396,17 @@
         
         // ONLY BACKGROUND
         NSLog(@"[LOG] -PROCESS-AUTO-UPLOAD-");
-        [self performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUploadBackground] waitUntilDone:NO];
+        [self performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
         
     } else {
         
         // ONLY FOREFROUND
         NSLog(@"[LOG] -PROCESS-AUTO-UPLOAD-");
-        [self performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
+        [self performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
     }
 }
 
-- (void)loadAutoDownloadUpload:(NSNumber *)maxConcurrent
+- (void)loadAutoDownloadUpload
 {
     CCMetadataNet *metadataNet;
     tableMetadata *metadataForUpload;
@@ -1424,17 +1424,12 @@
     // Stop Timer
     [_timerProcessAutoDownloadUpload invalidate];
     
-    NSInteger maxConcurrentDownloadUpload = [maxConcurrent integerValue];
-    
     NSInteger counterDownloadInSession = [[[NCManageDatabase sharedInstance] getTableMetadataDownload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataDownloadWWan] count];
-    NSInteger counterUploadInSessionAndInLock = [[[NCManageDatabase sharedInstance] getTableMetadataUpload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataUploadWWan] count] + [[[NCManageDatabase sharedInstance] getQueueUploadInLock] count];
-    NSInteger counterUploadInLock = [[[NCManageDatabase sharedInstance] getQueueUploadWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND lock = true", self.activeAccount]] count];
-
-    NSInteger counterNewUpload = 0;
-    
+    NSInteger counterUpload = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND (status = %d || status = %d)", self.activeAccount, k_metadataStatusInUpload, k_metadataStatusUploading] sorted:@"fileName" ascending:true] count];
+  
     // ------------------------- <selector Auto Download> -------------------------
     
-    while (counterDownloadInSession < maxConcurrentDownloadUpload) {
+    while (counterDownloadInSession < k_maxConcurrentOperationDownload) {
         
         metadataNet = [[NCManageDatabase sharedInstance] getQueueDownload];
         if (metadataNet) {
@@ -1446,27 +1441,23 @@
         
         counterDownloadInSession = [[[NCManageDatabase sharedInstance] getTableMetadataDownload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataDownloadWWan] count];
     }
-    
+  
     // ------------------------- <selector Auto Upload> -------------------------
     
-    if (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload && counterUploadInLock < 1) {
+    if (counterUpload < k_maxConcurrentOperationUpload) {
         
         metadataNet = [[NCManageDatabase sharedInstance] lockQueueUploadWithSelector:selectorUploadAutoUpload session:nil];
         if (metadataNet) {
             
 //            [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
             
-            counterNewUpload++;
         }
-        
-        counterUploadInSessionAndInLock = [[[NCManageDatabase sharedInstance] getTableMetadataUpload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataUploadWWan] count] + [[[NCManageDatabase sharedInstance] getQueueUploadInLock] count];
     }
-    
+  
     // ------------------------- <selector Auto Upload All> ----------------------
     
     // Verify num error k_maxErrorAutoUploadAll after STOP (100)
     NSArray *metadatas = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND sessionSelector = %@ AND sessionTaskIdentifier = %i", _activeAccount, selectorUploadAutoUploadAll, k_taskIdentifierError] sorted:nil ascending:NO];
-    
     NSInteger errorCount = [metadatas count];
     
     if (errorCount >= k_maxErrorAutoUploadAll) {
@@ -1477,23 +1468,19 @@
 
     } else {
         
-        if (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload && counterUploadInLock < 1) {
+        if (counterUpload < k_maxConcurrentOperationUpload) {
             
             metadataNet = [[NCManageDatabase sharedInstance] lockQueueUploadWithSelector:selectorUploadAutoUploadAll session:nil];
             if (metadataNet) {
                 
 //                [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
-                
-                counterNewUpload++;
             }
-            
-            counterUploadInSessionAndInLock = [[[NCManageDatabase sharedInstance] getTableMetadataUpload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataUploadWWan] count] + [[[NCManageDatabase sharedInstance] getQueueUploadInLock] count];
         }
     }
-    
+  
     // ------------------------- <selector Upload File> -------------------------
     
-    if (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload && counterUploadInLock < 1) {
+    if (counterUpload < k_maxConcurrentOperationUpload) {
         
         metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND status = %d", _activeAccount, k_metadataStatusWaitUpload]];
         if (metadataForUpload) {
@@ -1516,11 +1503,7 @@
                 
                 [[CCNetworking sharedNetworking] uploadFile:metadata path:self.directoryUser taskStatus:k_taskStatusResume delegate:_activeMain];
             }
-            
-            counterNewUpload++;
         }
-        
-        counterUploadInSessionAndInLock = [[[NCManageDatabase sharedInstance] getTableMetadataUpload] count] + [[[NCManageDatabase sharedInstance] getTableMetadataUploadWWan] count] + [[[NCManageDatabase sharedInstance] getQueueUploadInLock] count];
     }
     
     // Start Timer

+ 3 - 3
iOSClient/CCGlobal.h

@@ -137,9 +137,9 @@ extern NSString *const flowEndpoint;
 #define k_timerProcessAutoDownloadUpload                5
 #define k_timerUpdateApplicationIconBadgeNumber         3
 
-#define k_maxConcurrentOperation                         10
-#define k_maxConcurrentOperationDownloadUpload           10
-#define k_maxConcurrentOperationDownloadUploadBackground 1
+#define k_maxConcurrentOperation                        10
+#define k_maxConcurrentOperationDownload                10
+#define k_maxConcurrentOperationUpload                  1
 
 // Error
 #define k_CCErrorTaskNil                                -9999

+ 6 - 24
iOSClient/Main/CCMain.m

@@ -735,7 +735,7 @@
                     // Add Medtadata for upload
                     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
                     // Start upload now
-                    [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
+                    [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
                     
                 } else {
                     
@@ -1188,16 +1188,7 @@
             [self downloadFileSuccessFailure:fileName fileID:fileID serverUrl:serverUrl selector:selectorPost selectorPost:nil errorMessage:@"" errorCode:0];
         
         // Auto Download Upload
-        if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
-            
-            // ONLY BACKGROUND
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUploadBackground] waitUntilDone:NO];
-            
-        } else {
-            
-            // ONLY FOREFROUND
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
-        }
+        [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
         
     } else {
         
@@ -1297,16 +1288,7 @@
     if (errorCode == 0) {
         
         // Auto Download Upload
-        if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
-            
-            // ONLY BACKGROUND
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUploadBackground] waitUntilDone:NO];
-            
-        } else {
-            
-            // ONLY FOREFROUND
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
-        }
+        [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
         
     } else {
         
@@ -1406,7 +1388,7 @@
                 // Add Medtadata for upload
                 (void)[[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
                 // Start upload now
-                [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
+                [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
             }];
             
             [alertController addAction:cancelAction];
@@ -1423,7 +1405,7 @@
             // Add Medtadata for upload
             (void)[[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
             // Start upload now
-            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
+            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
         }
     }
 }
@@ -3542,7 +3524,7 @@
                             // Add Medtadata for upload
                             (void)[[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
                             // Start upload now
-                            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
+                            [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
                         });
                         
                         timer += 0.1;

+ 2 - 2
iOSClient/Main/CCSection.m

@@ -148,14 +148,14 @@
         // how many download underway (only for groupSession)
         if ([metadata.session containsString:@"download"] && [groupByField isEqualToString:@"session"]) {
             counterSessionDownload++;
-            if (counterSessionDownload > k_maxConcurrentOperationDownloadUpload)
+            if (counterSessionDownload > 10)
                 continue;
         }
 
         // how many upload underway (only for groupSession)
         if ([metadata.session containsString:@"upload"] && [groupByField isEqualToString:@"session"]) {
             counterSessionUpload++;
-            if (counterSessionUpload > k_maxConcurrentOperationDownloadUpload)
+            if (counterSessionUpload > 10)
                 continue;
         }
         

+ 2 - 13
iOSClient/Networking/CCNetworking.m

@@ -811,10 +811,7 @@
 - (void)uploadFile:(tableMetadata *)metadata path:(NSString *)path taskStatus:(NSInteger)taskStatus delegate:(id)delegate
 {
     //delegate
-    if (delegate)
-        [_delegates setObject:delegate forKey:metadata.fileID];
-    else
-        delegate = self.delegate;
+    [_delegates setObject:delegate forKey:metadata.fileID];
     
     NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
     
@@ -1057,15 +1054,7 @@
     
              // *** PLAIN ***
              [[NCManageDatabase sharedInstance] setMetadataSession:metadata.session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:uploadTask.taskIdentifier predicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND account = %@", metadata.fileID, _activeAccount]];
-             
-#ifndef EXTENSION
-             // OK remove record on tableQueueUpload but NOT for EXTENSION Upload
-             //[[NCManageDatabase sharedInstance] deleteQueueUploadWithAssetLocalIdentifier:assetLocalIdentifier selector:selector];
-             
-             // Next tableQueueUpload
-//             [(AppDelegate *)[[UIApplication sharedApplication] delegate] performSelectorOnMainThread:@selector(loadAutoDownloadUpload:) withObject:[NSNumber numberWithInt:k_maxConcurrentOperationDownloadUpload] waitUntilDone:NO];
-#endif
-             
+                          
              // Manage uploadTask cancel,suspend,resume
              if (taskStatus == k_taskStatusCancel) [uploadTask cancel];
              else if (taskStatus == k_taskStatusSuspend) [uploadTask suspend];