Эх сурвалжийг харах

change name selectorUploadAutomatic & All

Marino Faggiana 8 жил өмнө
parent
commit
bb8bf9e32b

+ 0 - 1
iOSClient/AppDelegate.h

@@ -182,7 +182,6 @@
 - (void)cancelAllOperations;
 - (void)addNetworkingOperationQueue:(NSOperationQueue *)netQueue delegate:(id)delegate metadataNet:(CCMetadataNet *)metadataNet oneByOne:(BOOL)oneByOne;
 - (void)loadTableAutomaticUploadForSelector:(NSString *)selector;
-- (BOOL)verifyExistsFileName:(NSString *)fileName withSelector:(NSString *)selector inOperationsQueue:(NSOperationQueue *)queue;
 
 - (void)dropAutomaticUploadWithSelector:(NSString *)selector;
 

+ 18 - 25
iOSClient/AppDelegate.m

@@ -248,7 +248,15 @@
 //
 - (void)applicationDidBecomeActive:(UIApplication *)application
 {
-    
+    // Verify if load new asset for Automatic Upload
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 3.0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+        
+        if ([self verifyExistsInQueue:_netQueueUpload selector:selectorUploadAutomatic] || [self verifyExistsInQueue:_netQueueUploadWWan selector:selectorUploadAutomatic])
+            [self loadTableAutomaticUploadForSelector:selectorUploadAutomatic];
+        
+        if ([self verifyExistsInQueue:_netQueueUpload selector:selectorUploadAutomaticAll])
+            [self loadTableAutomaticUploadForSelector:selectorUploadAutomaticAll];
+    });
 }
 
 //
@@ -772,7 +780,7 @@
      }
 
     // Total
-    NSUInteger total = _queueNunDownload + _queueNumDownloadWWan + _queueNumUpload + _queueNumUploadWWan + [CCCoreData countTableAutomaticUploadForAccount:self.activeAccount];
+    NSUInteger total = _queueNunDownload + _queueNumDownloadWWan + _queueNumUpload + _queueNumUploadWWan + [CCCoreData countTableAutomaticUploadForAccount:self.activeAccount selector:nil];
     
     [UIApplication sharedApplication].applicationIconBadgeNumber = total;
     
@@ -1005,21 +1013,6 @@
     id operation;
     BOOL activityIndicator = NO;
     
-    // Verify if already exists in queue but not in selectorUploadCameraAllPhoto
-    if ((metadataNet.fileName || metadataNet.metadata.fileName) && ![metadataNet.selector isEqualToString:selectorUploadCameraAllPhoto]) {
-        
-        NSString *fileName;
-        
-        if (metadataNet.fileName)
-            fileName = metadataNet.fileName;
-        
-        if (metadataNet.metadata.fileName)
-            fileName = metadataNet.metadata.fileName;
-        
-        if ([self verifyExistsFileName:fileName withSelector:metadataNet.selector inOperationsQueue:netQueue])
-            return;
-    }
-    
     // Activity Indicator
     if (netQueue == _netQueue)
         activityIndicator = YES;
@@ -1042,14 +1035,14 @@
     [netQueue addOperation:operation];
 }
 
-- (BOOL)verifyExistsFileName:(NSString *)fileName withSelector:(NSString *)selector inOperationsQueue:(NSOperationQueue *)queue
+- (BOOL)verifyExistsInQueue:(NSOperationQueue *)queue selector:(NSString *)selector
 {
     /*** NEXTCLOUD OWNCLOUD ***/
     
     if ([app.typeCloud isEqualToString:typeCloudOwnCloud] || [app.typeCloud isEqualToString:typeCloudNextcloud]) {
         
         for (OCnetworking *operation in [queue operations])
-            if ([operation.metadataNet.selector isEqualToString:selector] && ([operation.metadataNet.fileName isEqualToString:fileName] || [operation.metadataNet.metadata.fileName isEqualToString:fileName]))
+            if ([operation.metadataNet.selector isEqualToString:selector])
                 return YES;
     }
     
@@ -1060,9 +1053,8 @@
     if ([app.typeCloud isEqualToString:typeCloudDropbox]) {
         
         for (DBnetworking *operation in [queue operations])
-            if ([operation.metadataNet.selector isEqualToString:selector] && ([operation.metadataNet.fileName isEqualToString:fileName] || [operation.metadataNet.metadata.fileName isEqualToString:fileName]))
+            if ([operation.metadataNet.selector isEqualToString:selector])
                 return YES;
-
     }
     
 #endif
@@ -1072,10 +1064,11 @@
 
 - (void)loadTableAutomaticUploadForSelector:(NSString *)selector
 {
-    // Verify num error if selectorUploadCameraAllPhoto
-    if([selector isEqualToString:selectorUploadCameraAllPhoto]) {
+    // Verify num error if selectorUploadAutomaticAll
+    
+    if([selector isEqualToString:selectorUploadAutomaticAll]) {
     
-        NSUInteger count = [TableMetadata MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (sessionSelector == %@) AND ((sessionTaskIdentifier == %i) OR (sessionTaskIdentifierPlist == %i))", app.activeAccount, selectorUploadCameraAllPhoto,taskIdentifierError, taskIdentifierError]];
+        NSUInteger count = [TableMetadata MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (sessionSelector == %@) AND ((sessionTaskIdentifier == %i) OR (sessionTaskIdentifierPlist == %i))", app.activeAccount, selectorUploadAutomaticAll,taskIdentifierError, taskIdentifierError]];
         
         if (count >= 10) {
             [app messageNotification:@"Troppi errori, invio sospeso" description:@"" visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeError];
@@ -1086,7 +1079,7 @@
     
     // Add Network queue
     
-    NSArray *metadatasNet = [CCCoreData getTableAutomaticUploadForAccount:self.activeAccount selector:selector numRecords:1 context:nil];
+    NSArray *metadatasNet = [CCCoreData getTableAutomaticUploadForAccount:self.activeAccount selector:selector numRecords:maxConcurrentAutomaticUpload context:nil];
     
     for (CCMetadataNet *metadataNet in metadatasNet) {
         

+ 4 - 2
iOSClient/CCGlobal.h

@@ -197,6 +197,8 @@ extern NSString *const BKPasscodeKeychainServiceName;
 #define maxConcurrentOperation 10
 #define maxConcurrentOperationDownloadUpload 10
 
+#define maxConcurrentAutomaticUpload 1
+
 // Error
 #define CCErrorTaskNil -9999
 #define CCErrorTaskDownloadNotFound -9998
@@ -243,8 +245,8 @@ extern NSString *const BKPasscodeKeychainServiceName;
 #define selectorSynchronizedFolder      @"synchronizedFolder"
 #define selectorUnshare                 @"unshare"
 #define selectorUpdateShare             @"updateShare"
-#define selectorUploadCameraAllPhoto    @"uploadCameraAllPhoto"
-#define selectorUploadCameraSnapshot    @"uploadCameraSnapshot"
+#define selectorUploadAutomatic         @"uploadAutomatic"
+#define selectorUploadAutomaticAll      @"uploadAutomaticAll"
 #define selectorUploadFile              @"uploadFile"
 #define selectorUploadFileCrypto        @"uploadFileCrypto"
 #define selectorUploadFilePlist         @"uploadFilePlist"

+ 1 - 1
iOSClient/FileSystem/CCCoreData.h

@@ -180,7 +180,7 @@
 
 + (void)addTableAutomaticUpload:(CCMetadataNet *)metadataNet activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context;
 + (NSArray *)getTableAutomaticUploadForAccount:(NSString *)activeAccount selector:(NSString *)selector numRecords:(NSUInteger)numRecords context:(NSManagedObjectContext *)context;
-+ (NSUInteger)countTableAutomaticUploadForAccount:(NSString *)activeAccount;
++ (NSUInteger)countTableAutomaticUploadForAccount:(NSString *)activeAccount selector:(NSString *)selector;
 + (void)setTableAutomaticUploadIfExecutingForAccount:(NSString *)activeAccount fileName:(NSString *)fileName serverUrl:(NSString *)serverUrl selector:(NSString*)selector context:(NSManagedObjectContext *)context;
 + (void)deleteTableAutomaticUploadForAccount:(NSString *)activeAccount fileName:(NSString *)fileName serverUrl:(NSString *)serverUrl selector:(NSString*)selector context:(NSManagedObjectContext *)context;
 

+ 5 - 4
iOSClient/FileSystem/CCCoreData.m

@@ -1538,11 +1538,12 @@
     return metadatasNet;
 }
 
-+ (NSUInteger)countTableAutomaticUploadForAccount:(NSString *)activeAccount
++ (NSUInteger)countTableAutomaticUploadForAccount:(NSString *)activeAccount selector:(NSString *)selector
 {
-    NSUInteger count = [TableAutomaticUpload MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (isExecuting == 0)", activeAccount]];
-    
-    return count;
+    if (selector)
+        return [TableAutomaticUpload MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (isExecuting == 0) AND (selector == %@)", activeAccount, selector]];
+    else
+        return [TableAutomaticUpload MR_countOfEntitiesWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (isExecuting == 0)", activeAccount]];
 }
 
 + (void)setTableAutomaticUploadIfExecutingForAccount:(NSString *)activeAccount fileName:(NSString *)fileName serverUrl:(NSString *)serverUrl selector:(NSString*)selector context:(NSManagedObjectContext *)context

+ 3 - 3
iOSClient/Main/CCMain.m

@@ -1395,7 +1395,7 @@
     }
     
     // Automatic upload
-    if([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto]) {
+    if([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll]) {
         
         [CCCoreData deleteTableAutomaticUploadForAccount:app.activeAccount fileName:metadata.fileNamePrint serverUrl:serverUrl selector:selector context:nil];
         [app loadTableAutomaticUploadForSelector:selector];
@@ -1409,7 +1409,7 @@
     CCMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", fileID, app.activeAccount] context:nil];
     
     // Automatic upload
-    if([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto]) {
+    if([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll]) {
         
         [CCCoreData deleteTableAutomaticUploadForAccount:app.activeAccount fileName:metadata.fileNamePrint serverUrl:serverUrl selector:selector context:nil];
         [app loadTableAutomaticUploadForSelector:selector];
@@ -3191,7 +3191,7 @@
     if (app.reSelectMenu.isOpen || app.reMainMenu.isOpen)
         return;
     
-    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [CCCoreData countTableAutomaticUploadForAccount:app.activeAccount] > 0) {
+    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [CCCoreData countTableAutomaticUploadForAccount:app.activeAccount selector:nil] > 0) {
         
         [app messageNotification:@"_transfers_in_queue_" description:nil visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeInfo];
         return;

+ 12 - 12
iOSClient/Networking/CCNetworking.m

@@ -817,7 +817,7 @@
     if (assetMediaType == PHAssetMediaTypeVideo) {
         
         // Automatic Upload video encrypted ?
-        if ([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto])
+        if ([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll])
             cryptated = [CCCoreData getCameraUploadCryptatedVideoActiveAccount:_activeAccount];
         
         @autoreleasepool {
@@ -860,7 +860,7 @@
     if (assetMediaType == PHAssetMediaTypeImage) {
     
         // Automatic Upload photo encrypted ?
-        if ([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto])
+        if ([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll])
             cryptated = [CCCoreData getCameraUploadCryptatedPhotoActiveAccount:_activeAccount];
 
         @autoreleasepool {
@@ -991,7 +991,7 @@
         
             NSString *fileNameForCrypto;
         
-            if ([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto])
+            if ([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll])
                 fileNameForCrypto = [NSString stringWithFormat:@"%@%@", assetTemplateFileName, assetDate];
             else
                 fileNameForCrypto = fileName;
@@ -1055,8 +1055,8 @@
                     
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
-                        // Change Asset Data only for snapshot photo
-                        if ([selector isEqualToString:selectorUploadCameraSnapshot])
+                        // Change Asset Data only for automatic upload
+                        if ([selector isEqualToString:selectorUploadAutomatic])
                             [CCCoreData setCameraUploadDateAssetType:assetMediaType assetDate:assetDate activeAccount:_activeAccount];
                         
                         // Error for uploadFileFailure
@@ -1143,8 +1143,8 @@
                 
                 dispatch_async(dispatch_get_main_queue(), ^{
                     
-                    // Change Asset Data only for snapshot photo
-                    if ([selector isEqualToString:selectorUploadCameraSnapshot])
+                    // Change Asset Data only for automatic upload
+                    if ([selector isEqualToString:selectorUploadAutomatic])
                         [CCCoreData setCameraUploadDateAssetType:assetMediaType assetDate:assetDate activeAccount:_activeAccount];
                 
                     // Error for uploadFileFailure
@@ -1351,15 +1351,15 @@
         
         [CCCoreData setMetadataSession:session sessionError:@"" sessionSelector:nil sessionSelectorPost:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist predicate:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount] context:_context];
         
-        // Change Asset Data only for snapshot photo 
-        if ([selector isEqualToString:selectorUploadCameraSnapshot])
+        // Change Asset Data only for Automatic Upload
+        if ([selector isEqualToString:selectorUploadAutomatic])
             [CCCoreData setCameraUploadDateAssetType:assetMediaType assetDate:assetDate activeAccount:_activeAccount];
         
         NSLog(@"[LOG] Upload file %@ - %@ TaskIdentifier %lu", fileName,fileNamePrint, (unsigned long)uploadTask.taskIdentifier);
     }
 
     // Automatic upload set YES isExecuting
-    if([selector isEqualToString:selectorUploadCameraSnapshot] || [selector isEqualToString:selectorUploadCameraAllPhoto])
+    if([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll])
         [CCCoreData setTableAutomaticUploadIfExecutingForAccount:_activeAccount fileName:fileNamePrint serverUrl:serverUrl selector:selector context:_context];
     
     dispatch_async(dispatch_get_main_queue(), ^{
@@ -1516,8 +1516,8 @@
         if ([CCUtility getUploadAndRemovePhoto] || [metadata.sessionSelectorPost isEqualToString:selectorUploadRemovePhoto])
             [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@/%@", _directoryUser, metadata.fileID] error:nil];
         
-        // Copy photo or video in the photo album
-        if ([metadata.localIdentifier length] > 0 && [CCCoreData getCameraUploadSaveAlbumActiveAccount:_activeAccount] && ([metadata.sessionSelector isEqualToString:selectorUploadCameraSnapshot] || [metadata.sessionSelector isEqualToString:selectorUploadCameraAllPhoto])) {
+        // Copy photo or video in the photo album for automatic upload
+        if ([metadata.localIdentifier length] > 0 && [CCCoreData getCameraUploadSaveAlbumActiveAccount:_activeAccount] && [metadata.sessionSelector isEqualToString:selectorUploadAutomatic]) {
             
             PHAsset *asset;
             PHFetchResult *result = [PHAsset fetchAssetsWithLocalIdentifiers:@[metadata.localIdentifier] options:nil];

+ 4 - 4
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -1238,11 +1238,11 @@
         metadataNet.action = actionUploadAsset;
         metadataNet.assetLocalItentifier = asset.localIdentifier;
         if (assetsFull) {
-            metadataNet.selector = selectorUploadCameraAllPhoto;
+            metadataNet.selector = selectorUploadAutomaticAll;
             metadataNet.selectorPost = selectorUploadRemovePhoto;
             metadataNet.priority = NSOperationQueuePriorityLow;
         } else {
-            metadataNet.selector = selectorUploadCameraSnapshot;
+            metadataNet.selector = selectorUploadAutomatic;
             metadataNet.selectorPost = nil;
             metadataNet.priority = NSOperationQueuePriorityHigh;
         }
@@ -1256,9 +1256,9 @@
     
     // start upload
     if (assetsFull)
-        [app loadTableAutomaticUploadForSelector:selectorUploadCameraAllPhoto];
+        [app loadTableAutomaticUploadForSelector:selectorUploadAutomaticAll];
     else
-        [app loadTableAutomaticUploadForSelector:selectorUploadCameraSnapshot];
+        [app loadTableAutomaticUploadForSelector:selectorUploadAutomatic];
 
     // end loading
     [self endLoadingAssets];

+ 1 - 1
iOSClient/Settings/CCManageAccount.m

@@ -326,7 +326,7 @@
 
 - (void)ChangeDefaultAccount:(NSString *)account
 {
-    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [CCCoreData countTableAutomaticUploadForAccount:app.activeAccount] > 0) {
+    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [CCCoreData countTableAutomaticUploadForAccount:app.activeAccount selector:nil] > 0) {
         
         [app messageNotification:@"_transfers_in_queue_" description:nil visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeInfo];
         [self UpdateForm];

+ 3 - 3
iOSClient/Settings/CCManageCameraUpload.m

@@ -234,8 +234,8 @@
             [CCCoreData setCameraUploadDateVideo:NULL];
 
             // remove
-            [app dropAutomaticUploadWithSelector:selectorUploadCameraSnapshot];
-            [app dropAutomaticUploadWithSelector:selectorUploadCameraAllPhoto];
+            [app dropAutomaticUploadWithSelector:selectorUploadAutomatic];
+            [app dropAutomaticUploadWithSelector:selectorUploadAutomaticAll];
         }
         
         // Initialize Camera Upload
@@ -282,7 +282,7 @@
             
         } else {
             
-            [app dropAutomaticUploadWithSelector:selectorUploadCameraAllPhoto];
+            [app dropAutomaticUploadWithSelector:selectorUploadAutomaticAll];
             [CCCoreData setCameraUploadFullPhotosActiveAccount:NO activeAccount:app.activeAccount];
         }
     }