Przeglądaj źródła

improvement Auto Upload

Marino Faggiana 7 lat temu
rodzic
commit
00a0a9a180

+ 1 - 1
iOSClient/AutoUpload/NCAutoUpload.m

@@ -596,7 +596,7 @@
         if (result.count > 0) {
             
             [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet.assetLocalIdentifier fileName:metadataNet.fileName serverUrl:metadataNet.serverUrl cryptated:metadataNet.cryptated session:metadataNet.session taskStatus:metadataNet.taskStatus selector:metadataNet.selector selectorPost:metadataNet.selectorPost errorCode:metadataNet.errorCode delegate:app.activeMain];
-            
+                            
         } else {
             
             [[NCManageDatabase sharedInstance] addActivityClient:metadataNet.fileName fileID:metadataNet.assetLocalIdentifier action:k_activityDebugActionUpload selector:selectorUploadAutoUploadAll note:@"Internal error image/video not found [0]" type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:app.activeUrl];

+ 1 - 1
iOSClient/CCGlobal.h

@@ -132,7 +132,7 @@ extern NSString *const urlBaseUploadDB;
 
 #define k_maxConcurrentOperation                         10
 #define k_maxConcurrentOperationDownloadUpload           10
-#define k_maxConcurrentOperationDownloadUploadBackground 1
+#define k_maxConcurrentOperationDownloadUploadBackground 2
 
 // Error
 #define k_CCErrorTaskNil                                -9999

+ 11 - 2
iOSClient/Utility/NCRequestAsset.m

@@ -37,9 +37,11 @@
     
     // VIDEO
     if (assetMediaType == PHAssetMediaTypeVideo) {
-        
+
         @autoreleasepool {
-                        
+            
+            dispatch_semaphore_t semaphoreGroup = dispatch_semaphore_create(0);
+
             PHVideoRequestOptions *options = [PHVideoRequestOptions new];
             options.networkAccessAllowed = true;
             
@@ -57,6 +59,8 @@
                     
                     [_exportSession exportAsynchronouslyWithCompletionHandler:^{
                         
+                        dispatch_semaphore_signal(semaphoreGroup);
+                        
                         if (AVAssetExportSessionStatusCompleted == _exportSession.status) {
                             
                             //OK selectorUploadAutoUpload
@@ -91,6 +95,8 @@
                     
                 } else {
                     
+                    dispatch_semaphore_signal(semaphoreGroup);
+                    
                     // Delete record on Table Auto Upload
                     if ([selector isEqualToString:selectorUploadAutoUpload] || [selector isEqualToString:selectorUploadAutoUploadAll])
                         [[NCManageDatabase sharedInstance] deleteAutoUploadWithAssetLocalIdentifier:assetLocalIdentifier];
@@ -106,6 +112,9 @@
                     });
                 }
             }];
+            
+            while (dispatch_semaphore_wait(semaphoreGroup, DISPATCH_TIME_NOW))
+                [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
         }
     }