Browse Source

Restructure DB and function for converge AutomaticUpload

Marino Faggiana 8 years ago
parent
commit
637a359165

+ 16 - 16
Nextcloud.xcodeproj/project.pbxproj

@@ -126,10 +126,6 @@
 		F73CCE301DC13798007E38D8 /* UICKeyChainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CCE2A1DC13798007E38D8 /* UICKeyChainStore.m */; };
 		F73CCE321DC13798007E38D8 /* UICKeyChainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = F73CCE2A1DC13798007E38D8 /* UICKeyChainStore.m */; };
 		F749E4E91DC1FB38009BA2FD /* Share Ext Nextcloud.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = F7CE8AFB1DC1F8D8009CAE48 /* Share Ext Nextcloud.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
-		F74EF41D1E06C627009A6222 /* TableUpload+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F74EF41A1E06C627009A6222 /* TableUpload+CoreDataClass.m */; };
-		F74EF41E1E06C627009A6222 /* TableUpload+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F74EF41A1E06C627009A6222 /* TableUpload+CoreDataClass.m */; };
-		F74EF41F1E06C627009A6222 /* TableUpload+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F74EF41C1E06C627009A6222 /* TableUpload+CoreDataProperties.m */; };
-		F74EF4201E06C627009A6222 /* TableUpload+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F74EF41C1E06C627009A6222 /* TableUpload+CoreDataProperties.m */; };
 		F750374D1DBFA91A008FB480 /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F75037441DBFA91A008FB480 /* ALView+PureLayout.m */; };
 		F750374F1DBFA91A008FB480 /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F75037461DBFA91A008FB480 /* NSArray+PureLayout.m */; };
 		F75037511DBFA91A008FB480 /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F75037481DBFA91A008FB480 /* NSLayoutConstraint+PureLayout.m */; };
@@ -160,6 +156,10 @@
 		F7676A7F1D5CB2A400DF734C /* icon-info@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F7676A751D5CB2A400DF734C /* icon-info@2x.png */; };
 		F7676A811D5CB2A400DF734C /* icon-success.png in Resources */ = {isa = PBXBuildFile; fileRef = F7676A761D5CB2A400DF734C /* icon-success.png */; };
 		F7676A831D5CB2A400DF734C /* icon-success@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F7676A771D5CB2A400DF734C /* icon-success@2x.png */; };
+		F771CD5E1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F771CD5B1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m */; };
+		F771CD5F1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = F771CD5B1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m */; };
+		F771CD601E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F771CD5D1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m */; };
+		F771CD611E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = F771CD5D1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m */; };
 		F77B0DF01D118A16002130FE /* UIImage+Resizing.m in Sources */ = {isa = PBXBuildFile; fileRef = F70F04CA1C889184008DAB36 /* UIImage+Resizing.m */; };
 		F77B0DF21D118A16002130FE /* CCUploadFromOtherUpp.m in Sources */ = {isa = PBXBuildFile; fileRef = F7956FCA1B4886E60085DEA3 /* CCUploadFromOtherUpp.m */; };
 		F77B0DF41D118A16002130FE /* CCMain.m in Sources */ = {isa = PBXBuildFile; fileRef = F70211FB1BAC56E9003FC03E /* CCMain.m */; };
@@ -1126,10 +1126,6 @@
 		F744BE961BEBB31E004FFF66 /* ImagesIntro.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ImagesIntro.xcassets; sourceTree = "<group>"; };
 		F74D3DBD1BAC1941000BAE4B /* OCNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OCNetworking.h; sourceTree = "<group>"; };
 		F74D3DBE1BAC1941000BAE4B /* OCNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OCNetworking.m; sourceTree = "<group>"; };
-		F74EF4191E06C627009A6222 /* TableUpload+CoreDataClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableUpload+CoreDataClass.h"; sourceTree = "<group>"; };
-		F74EF41A1E06C627009A6222 /* TableUpload+CoreDataClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableUpload+CoreDataClass.m"; sourceTree = "<group>"; };
-		F74EF41B1E06C627009A6222 /* TableUpload+CoreDataProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableUpload+CoreDataProperties.h"; sourceTree = "<group>"; };
-		F74EF41C1E06C627009A6222 /* TableUpload+CoreDataProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableUpload+CoreDataProperties.m"; sourceTree = "<group>"; };
 		F75037431DBFA91A008FB480 /* ALView+PureLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ALView+PureLayout.h"; sourceTree = "<group>"; };
 		F75037441DBFA91A008FB480 /* ALView+PureLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ALView+PureLayout.m"; sourceTree = "<group>"; };
 		F75037451DBFA91A008FB480 /* NSArray+PureLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+PureLayout.h"; sourceTree = "<group>"; };
@@ -1276,6 +1272,10 @@
 		F76C3B841C6388BC00DC4301 /* CCGraphics.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCGraphics.m; sourceTree = "<group>"; };
 		F76C3B871C638A4C00DC4301 /* CCError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCError.h; sourceTree = "<group>"; };
 		F76C3B881C638A4C00DC4301 /* CCError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCError.m; sourceTree = "<group>"; };
+		F771CD5A1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableAutomaticUpload+CoreDataClass.h"; sourceTree = "<group>"; };
+		F771CD5B1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableAutomaticUpload+CoreDataClass.m"; sourceTree = "<group>"; };
+		F771CD5C1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TableAutomaticUpload+CoreDataProperties.h"; sourceTree = "<group>"; };
+		F771CD5D1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "TableAutomaticUpload+CoreDataProperties.m"; sourceTree = "<group>"; };
 		F776B0CB1BEA22F00081EFBA /* CCManageSynchronizations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCManageSynchronizations.h; sourceTree = "<group>"; };
 		F776B0CC1BEA22F00081EFBA /* CCManageSynchronizations.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCManageSynchronizations.m; sourceTree = "<group>"; };
 		F777F0301C29717F00CE81CB /* PHAsset+Utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "PHAsset+Utility.h"; sourceTree = "<group>"; };
@@ -2707,10 +2707,10 @@
 		F77F86401B4ABF6D009F0A10 /* Table */ = {
 			isa = PBXGroup;
 			children = (
-				F74EF4191E06C627009A6222 /* TableUpload+CoreDataClass.h */,
-				F74EF41A1E06C627009A6222 /* TableUpload+CoreDataClass.m */,
-				F74EF41B1E06C627009A6222 /* TableUpload+CoreDataProperties.h */,
-				F74EF41C1E06C627009A6222 /* TableUpload+CoreDataProperties.m */,
+				F771CD5A1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.h */,
+				F771CD5B1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m */,
+				F771CD5C1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.h */,
+				F771CD5D1E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m */,
 				F7994B731D5B854C008525D9 /* TableCertificates+CoreDataProperties.h */,
 				F7994B741D5B854C008525D9 /* TableCertificates+CoreDataProperties.m */,
 				F7994B751D5B854C008525D9 /* TableCertificates.h */,
@@ -3510,6 +3510,7 @@
 				F71459C31D12E3B700CAFEEC /* UIImage+Filtering.m in Sources */,
 				F71459C41D12E3B700CAFEEC /* UIImage+Saving.m in Sources */,
 				F71459C51D12E3B700CAFEEC /* UIImage+Rotating.m in Sources */,
+				F771CD611E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m in Sources */,
 				F71459C61D12E3B700CAFEEC /* CCMetadata.m in Sources */,
 				F71459C81D12E3B700CAFEEC /* TableLocalFile.m in Sources */,
 				F71459C91D12E3B700CAFEEC /* OCNetworking.m in Sources */,
@@ -3519,6 +3520,7 @@
 				F71459CF1D12E3B700CAFEEC /* BKPasscodeLockScreenManager.m in Sources */,
 				F71459D11D12E3B700CAFEEC /* BKPasscodeInputView.m in Sources */,
 				F71459D21D12E3B700CAFEEC /* CCUtility.m in Sources */,
+				F771CD5F1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m in Sources */,
 				F71459D31D12E3B700CAFEEC /* CCBKPasscode.m in Sources */,
 				F71459D51D12E3B700CAFEEC /* MBProgressHUD.m in Sources */,
 				F71459D61D12E3B700CAFEEC /* TableShare+CoreDataProperties.m in Sources */,
@@ -3535,7 +3537,6 @@
 				F71459E11D12E3B700CAFEEC /* CCHud.m in Sources */,
 				F71459E21D12E3B700CAFEEC /* TableAccount+CoreDataProperties.m in Sources */,
 				F71459E41D12E3B700CAFEEC /* RNDecryptor.m in Sources */,
-				F74EF41E1E06C627009A6222 /* TableUpload+CoreDataClass.m in Sources */,
 				F71459E61D12E3B700CAFEEC /* NYXImagesHelper.m in Sources */,
 				F71459E91D12E3B700CAFEEC /* UIImage+Enhancing.m in Sources */,
 				F71459EA1D12E3B700CAFEEC /* CCCellShareExt.m in Sources */,
@@ -3559,7 +3560,6 @@
 				F71459FF1D12E3B700CAFEEC /* RNCryptor.m in Sources */,
 				F7145A001D12E3B700CAFEEC /* CCGlobal.m in Sources */,
 				F7145A011D12E3B700CAFEEC /* UIImage+Blurring.m in Sources */,
-				F74EF4201E06C627009A6222 /* TableUpload+CoreDataProperties.m in Sources */,
 				F7145A021D12E3B700CAFEEC /* BKTouchIDManager.m in Sources */,
 				F7145A041D12E3B700CAFEEC /* CCloadItemData.swift in Sources */,
 				F7145A081D12E3B700CAFEEC /* PPCollectionViewCell.m in Sources */,
@@ -3587,6 +3587,7 @@
 				F73CCDED1DC13776007E38D8 /* XLFormSelectorCell.m in Sources */,
 				F7F06E931DBFACC600099AE9 /* NSNumberFormatter+CTAssetsPickerController.m in Sources */,
 				F77B0DF71D118A16002130FE /* UIXToolbarView.m in Sources */,
+				F771CD601E07F6620066F76D /* TableAutomaticUpload+CoreDataProperties.m in Sources */,
 				F77B0DF91D118A16002130FE /* TableMetadata.m in Sources */,
 				F77B0DFB1D118A16002130FE /* NYXProgressiveImageView.m in Sources */,
 				F7994B781D5B854C008525D9 /* TableCertificates+CoreDataProperties.m in Sources */,
@@ -3606,7 +3607,6 @@
 				F7659A681DC0B760004860C4 /* PSTCollectionViewUpdateItem.m in Sources */,
 				F77B0E071D118A16002130FE /* ioapi.c in Sources */,
 				F77B0E0D1D118A16002130FE /* CCSecurityOptions.m in Sources */,
-				F74EF41F1E06C627009A6222 /* TableUpload+CoreDataProperties.m in Sources */,
 				F73CCDF11DC13776007E38D8 /* XLFormStepCounterCell.m in Sources */,
 				F73CCE1F1DC13776007E38D8 /* XLForm.m in Sources */,
 				F77B0E0E1D118A16002130FE /* REMenuItemView.m in Sources */,
@@ -3745,7 +3745,6 @@
 				F77B0E831D118A16002130FE /* TableLocalFile.m in Sources */,
 				F77B0E851D118A16002130FE /* MWTapDetectingView.m in Sources */,
 				F75037511DBFA91A008FB480 /* NSLayoutConstraint+PureLayout.m in Sources */,
-				F74EF41D1E06C627009A6222 /* TableUpload+CoreDataClass.m in Sources */,
 				F73CCE151DC13776007E38D8 /* XLFormRowNavigationAccessoryView.m in Sources */,
 				F73CCDFB1DC13776007E38D8 /* XLFormOptionsViewController.m in Sources */,
 				F77B0E871D118A16002130FE /* NSData+Base64.m in Sources */,
@@ -3837,6 +3836,7 @@
 				F77B0ECF1D118A16002130FE /* CYRToken.m in Sources */,
 				F7F06EB11DBFACC600099AE9 /* CTAssetsGridView.m in Sources */,
 				F7D6A0931D82DBFA0045AD1A /* CCControlCenterCell.m in Sources */,
+				F771CD5E1E07F6620066F76D /* TableAutomaticUpload+CoreDataClass.m in Sources */,
 				F77B0ED11D118A16002130FE /* Acknowledgements.m in Sources */,
 				F77B0ED31D118A16002130FE /* PPImageScrollingCellView.m in Sources */,
 				F77B0ED41D118A16002130FE /* LMMediaPlayerHelper.m in Sources */,

+ 3 - 3
iOSClient/AppDelegate.h

@@ -89,9 +89,9 @@
 @property (nonatomic, strong) NSOperationQueue *netQueueDownloadWWan;
 @property (nonatomic, strong) NSOperationQueue *netQueueUpload;
 @property (nonatomic, strong) NSOperationQueue *netQueueUploadWWan;
-@property (nonatomic, strong) NSOperationQueue *netQueueUploadCameraAllPhoto;
+@property (nonatomic, strong) NSOperationQueue *netQueueUploadCamera;
 
-@property NSUInteger queueNunDownload, queueNumDownloadWWan, queueNumUpload, queueNumUploadWWan, queueNumUploadCameraAllPhoto;
+@property NSUInteger queueNunDownload, queueNumDownloadWWan, queueNumUpload, queueNumUploadWWan, queueNumUploadCamera;
 
 // Networking 
 @property (nonatomic, copy) void (^backgroundSessionCompletionHandler)(void);
@@ -182,7 +182,7 @@
 // Operation Networking
 - (void)cancelAllOperations;
 - (void)addNetworkingOperationQueue:(NSOperationQueue *)netQueue delegate:(id)delegate metadataNet:(CCMetadataNet *)metadataNet oneByOne:(BOOL)oneByOne;
-- (void)loadTableUploadQueue:(NSString *)queueName numeRecors:(NSUInteger)numRecords;
+- (void)loadTableAutomaticUploadForSelector:(NSString *)selector numeRecors:(NSUInteger)numRecords;
 - (BOOL)verifyExistsFileName:(NSString *)fileName withSelector:(NSString *)selector inOperationsQueue:(NSOperationQueue *)queue;
 
 - (void)dropCameraUploadAllPhoto;

+ 12 - 18
iOSClient/AppDelegate.m

@@ -127,9 +127,9 @@
     _netQueueUploadWWan.name = netQueueUploadWWanName;
     _netQueueUploadWWan.maxConcurrentOperationCount = maxConcurrentOperationDownloadUpload;
     
-    _netQueueUploadCameraAllPhoto = [[NSOperationQueue alloc] init];
-    _netQueueUploadCameraAllPhoto.name = netQueueUploadCameraAllPhotoName;
-    _netQueueUploadCameraAllPhoto.maxConcurrentOperationCount = maxConcurrentOperationUploadCameraAllPhoto;
+    _netQueueUploadCamera = [[NSOperationQueue alloc] init];
+    _netQueueUploadCamera.name = netQueueUploadCameraName;
+    _netQueueUploadCamera.maxConcurrentOperationCount = maxConcurrentOperationUploadCamera;
     
 #ifdef CC
     // Inizialize DBSession for Dropbox
@@ -686,7 +686,7 @@
     _queueNumUpload = [[CCCoreData getTableMetadataUploadAccount:self.activeAccount] count];
     _queueNumUploadWWan = [[CCCoreData getTableMetadataUploadWWanAccount:self.activeAccount] count];
     
-    _queueNumUploadCameraAllPhoto = 0;
+    _queueNumUploadCamera = 0;
     
     // Clear list folder in Synchronization
     [self.listFolderSynchronization removeAllObjects];
@@ -780,12 +780,12 @@
      }
 
     // netQueueUploadCameraAllPhoto
-    for (NSOperation *operation in [app.netQueueUploadCameraAllPhoto operations]) {
+    for (NSOperation *operation in [app.netQueueUploadCamera operations]) {
         
         /*** NEXTCLOUD OWNCLOUD ***/
         
         if ([app.typeCloud isEqualToString:typeCloudOwnCloud] || [app.typeCloud isEqualToString:typeCloudNextcloud])
-            if (((OCnetworking *)operation).isExecuting == NO) _queueNumUploadCameraAllPhoto++;
+            if (((OCnetworking *)operation).isExecuting == NO) _queueNumUploadCamera++;
         
 #ifdef CC
         
@@ -797,7 +797,7 @@
     }
 
     // Total
-    NSUInteger total = _queueNunDownload + _queueNumDownloadWWan + _queueNumUpload + _queueNumUploadWWan + _queueNumUploadCameraAllPhoto;
+    NSUInteger total = _queueNunDownload + _queueNumDownloadWWan + _queueNumUpload + _queueNumUploadWWan + _queueNumUploadCamera;
     
     [UIApplication sharedApplication].applicationIconBadgeNumber = total;
     
@@ -1021,7 +1021,7 @@
     [_netQueueDownloadWWan cancelAllOperations];
     [_netQueueUpload cancelAllOperations];
     [_netQueueUploadWWan cancelAllOperations];
-    [_netQueueUploadCameraAllPhoto cancelAllOperations];
+    [_netQueueUploadCamera cancelAllOperations];
     
     [self performSelector:@selector(updateApplicationIconBadgeNumber) withObject:nil afterDelay:0.5];
 }
@@ -1096,20 +1096,14 @@
     return NO;
 }
 
-- (void)loadTableUploadQueue:(NSString *)queueName numeRecors:(NSUInteger)numRecords
+- (void)loadTableAutomaticUploadForSelector:(NSString *)selector numeRecors:(NSUInteger)numRecords
 {
-    NSOperationQueue *netQueue;
-    
-    if ([queueName isEqualToString:netQueueUploadName]) netQueue = _netQueueUpload;
-    else if ([queueName isEqualToString:netQueueUploadWWanName]) netQueue = _netQueueUploadWWan;
-    else if ([queueName isEqualToString:netQueueUploadCameraAllPhotoName]) netQueue = _netQueueUploadCameraAllPhoto;
-
-    NSArray *metadatasNet = [CCCoreData getTableUploadFromAccount:self.activeAccount queueName:queueName numRecords:numRecords context:nil];
+    NSArray *metadatasNet = [CCCoreData getTableUploadFromAccount:self.activeAccount selector:selector numRecords:numRecords context:nil];
     
     // Add Network queue
 
     for (CCMetadataNet *metadataNet in metadatasNet)
-        [self addNetworkingOperationQueue:netQueue delegate:app.activeMain metadataNet:metadataNet oneByOne:YES];
+        [self addNetworkingOperationQueue:self.netQueueUploadCamera delegate:app.activeMain metadataNet:metadataNet oneByOne:YES];
 }
 
 - (void)verifyDownloadUploadInProgress
@@ -1249,7 +1243,7 @@
 
 - (void)dropCameraUploadAllPhoto
 {
-    [_netQueueUploadCameraAllPhoto cancelAllOperations];
+    [_netQueueUploadCamera cancelAllOperations];
     
     [CCCoreData deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (session != NULL) AND (session != '') AND ((sessionSelector == %@))", self.activeAccount, selectorUploadCameraAllPhoto]];
     

+ 10 - 10
iOSClient/CCGlobal.h

@@ -151,7 +151,7 @@ extern NSString *const BKPasscodeKeychainServiceName;
 #define k_share_link_middle_part_url_before_version_8   @"public.php?service=files&t="
 #define k_share_link_middle_part_url_after_version_8    @"index.php/s/"
 
-//Constants to identify the different permissions of a file
+// Constants to identify the different permissions of a file
 #define k_permission_shared @"S"
 #define k_permission_can_share @"R"
 #define k_permission_mounted @"M"
@@ -162,7 +162,7 @@ extern NSString *const BKPasscodeKeychainServiceName;
 #define k_permission_can_rename @"N"
 #define k_permission_can_move @"V"
 
-// session
+// Session
 #define download_session                @"it.twsweb.download.session"
 #define download_session_foreground     @"it.twsweb.download.sessionforeground"
 #define download_session_wwan           @"it.twsweb.download.sessionwwan"
@@ -187,17 +187,17 @@ extern NSString *const BKPasscodeKeychainServiceName;
 
 #define timerVerifySession 15.0
 
-#define netQueueName                     @"it.twsweb.cryptocloud.queue"
-#define netQueueDownloadName             @"it.twsweb.cryptocloud.queueDownload"
-#define netQueueDownloadWWanName         @"it.twsweb.cryptocloud.queueDownloadWWan"
-#define netQueueUploadName               @"it.twsweb.cryptocloud.queueUpload"
-#define netQueueUploadWWanName           @"it.twsweb.cryptocloud.queueUploadWWan"
-#define netQueueUploadCameraAllPhotoName @"it.twsweb.cryptocloud.queueUploadCameraAllPhoto"
-
+// OperationQueue
+#define netQueueName                    @"it.twsweb.cryptocloud.queue"
+#define netQueueDownloadName            @"it.twsweb.cryptocloud.queueDownload"
+#define netQueueDownloadWWanName        @"it.twsweb.cryptocloud.queueDownloadWWan"
+#define netQueueUploadName              @"it.twsweb.cryptocloud.queueUpload"
+#define netQueueUploadWWanName          @"it.twsweb.cryptocloud.queueUploadWWan"
+#define netQueueUploadCameraName        @"it.twsweb.cryptocloud.queueUploadCamera"
 
 #define maxConcurrentOperation 10
 #define maxConcurrentOperationDownloadUpload 10
-#define maxConcurrentOperationUploadCameraAllPhoto 1
+#define maxConcurrentOperationUploadCamera 1
 
 // Error
 #define CCErrorTaskNil -9999

+ 2 - 2
iOSClient/FileSystem/CCCoreData.h

@@ -40,7 +40,7 @@
 #import "TableLocalFile.h"
 #import "TableGPS.h"
 #import "TableShare.h"
-#import "TableUpload+CoreDataClass.h"
+#import "TableAutomaticUpload+CoreDataClass.h"
 
 @interface CCCoreData : NSObject
 
@@ -179,7 +179,7 @@
 // ===== Upload =====
 
 + (void)addUpload:(CCMetadataNet *)metadataNet activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context;
-+ (NSArray *)getTableUploadFromAccount:(NSString *)activeAccount queueName:(NSString *)queueName numRecords:(NSUInteger)numRecords context:(NSManagedObjectContext *)context;
++ (NSArray *)getTableUploadFromAccount:(NSString *)activeAccount selector:(NSString *)selector numRecords:(NSUInteger)numRecords context:(NSManagedObjectContext *)context;
 
 // ===== GPS =====
 

+ 12 - 15
iOSClient/FileSystem/CCCoreData.m

@@ -1475,38 +1475,34 @@
 
 + (void)addUpload:(CCMetadataNet *)metadataNet activeAccount:(NSString *)activeAccount context:(NSManagedObjectContext *)context
 {
-    TableUpload *record;
+    TableAutomaticUpload *record;
     
     if (context == nil)
         context = [NSManagedObjectContext MR_context];
     
     
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (fileName == %@) AND (serverUrl == %@)", activeAccount, metadataNet.fileName, metadataNet.serverUrl];
-    record = [TableUpload MR_findFirstWithPredicate:predicate inContext:context];
+    record = [TableAutomaticUpload MR_findFirstWithPredicate:predicate inContext:context];
     
-    if (record) {
-        
-        // removed
-        
-    } else {
+    if (!record) {
     
-        record = [TableUpload MR_createEntityInContext:context];
+        record = [TableAutomaticUpload MR_createEntityInContext:context];
         
         record.account = activeAccount;
         record.assetLocalItentifier = metadataNet.assetLocalItentifier;
         record.date = [NSDate date];
         record.fileName = metadataNet.fileName;
-        record.queueName = metadataNet.queue.name;
         record.selector = metadataNet.selector;
         record.selectorPost = metadataNet.selectorPost;
         record.serverUrl = metadataNet.serverUrl;
         record.session = metadataNet.session;
+        record.priority = [NSNumber numberWithLong:metadataNet.priority];
+        
+        [context MR_saveToPersistentStoreAndWait];
     }
-    
-    [context MR_saveToPersistentStoreAndWait];
 }
 
-+ (NSArray *)getTableUploadFromAccount:(NSString *)activeAccount queueName:(NSString *)queueName numRecords:(NSUInteger)numRecords context:(NSManagedObjectContext *)context
++ (NSArray *)getTableUploadFromAccount:(NSString *)activeAccount selector:(NSString *)selector numRecords:(NSUInteger)numRecords context:(NSManagedObjectContext *)context
 {
     if (numRecords == 0)
         return nil;
@@ -1517,10 +1513,10 @@
     if (context == nil)
         context = [NSManagedObjectContext MR_context];
     
-    NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"(account == %@) AND (queueName == %@) AND (startUpload == 0)", activeAccount, queueName, taskIdentifierDone];
-    NSArray *records = [TableUpload MR_findAllWithPredicate:peopleFilter];
+    NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"(account == %@) AND (selector == %@) AND (startUpload == 0)", activeAccount, selector, taskIdentifierDone];
+    NSArray *records = [TableAutomaticUpload MR_findAllWithPredicate:peopleFilter];
     
-    for (TableUpload *record in records) {
+    for (TableAutomaticUpload *record in records) {
         
         CCMetadataNet *metadataNet = [[CCMetadataNet alloc] init];
         
@@ -1530,6 +1526,7 @@
         metadataNet.selectorPost = record.selectorPost;
         metadataNet.serverUrl = record.serverUrl;
         metadataNet.session = record.session;
+        metadataNet.priority = [record.priority longValue];
         
         [metadatasNet addObject:metadataNet];
         

+ 4 - 4
iOSClient/FileSystem/TableUpload+CoreDataClass.h → iOSClient/FileSystem/TableAutomaticUpload+CoreDataClass.h

@@ -1,8 +1,8 @@
 //
-//  TableUpload+CoreDataClass.h
+//  TableAutomaticUpload+CoreDataClass.h
 //  Nextcloud
 //
-//  Created by Marino Faggiana on 18/12/16.
+//  Created by Marino Faggiana on 19/12/16.
 //  Copyright © 2016 TWS. All rights reserved.
 //
 
@@ -11,10 +11,10 @@
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface TableUpload : NSManagedObject
+@interface TableAutomaticUpload : NSManagedObject
 
 @end
 
 NS_ASSUME_NONNULL_END
 
-#import "TableUpload+CoreDataProperties.h"
+#import "TableAutomaticUpload+CoreDataProperties.h"

+ 13 - 0
iOSClient/FileSystem/TableAutomaticUpload+CoreDataClass.m

@@ -0,0 +1,13 @@
+//
+//  TableAutomaticUpload+CoreDataClass.m
+//  Nextcloud
+//
+//  Created by Marino Faggiana on 19/12/16.
+//  Copyright © 2016 TWS. All rights reserved.
+//
+
+#import "TableAutomaticUpload+CoreDataClass.h"
+
+@implementation TableAutomaticUpload
+
+@end

+ 7 - 7
iOSClient/FileSystem/TableUpload+CoreDataProperties.h → iOSClient/FileSystem/TableAutomaticUpload+CoreDataProperties.h

@@ -1,30 +1,30 @@
 //
-//  TableUpload+CoreDataProperties.h
+//  TableAutomaticUpload+CoreDataProperties.h
 //  Nextcloud
 //
-//  Created by Marino Faggiana on 18/12/16.
+//  Created by Marino Faggiana on 19/12/16.
 //  Copyright © 2016 TWS. All rights reserved.
 //
 
-#import "TableUpload+CoreDataClass.h"
+#import "TableAutomaticUpload+CoreDataClass.h"
 
 
 NS_ASSUME_NONNULL_BEGIN
 
-@interface TableUpload (CoreDataProperties)
+@interface TableAutomaticUpload (CoreDataProperties)
 
-+ (NSFetchRequest<TableUpload *> *)fetchRequest;
++ (NSFetchRequest<TableAutomaticUpload *> *)fetchRequest;
 
 @property (nullable, nonatomic, copy) NSString *account;
 @property (nullable, nonatomic, copy) NSString *assetLocalItentifier;
 @property (nullable, nonatomic, copy) NSDate *date;
 @property (nullable, nonatomic, copy) NSString *fileName;
-@property (nullable, nonatomic, copy) NSString *queueName;
 @property (nullable, nonatomic, copy) NSString *selector;
 @property (nullable, nonatomic, copy) NSString *selectorPost;
 @property (nullable, nonatomic, copy) NSString *serverUrl;
 @property (nullable, nonatomic, copy) NSString *session;
-@property (nullable, nonatomic, retain) NSNumber *startUpload;
+@property (nullable, nonatomic, copy) NSNumber *startUpload;
+@property (nullable, nonatomic, copy) NSNumber *priority;
 
 @end
 

+ 28 - 0
iOSClient/FileSystem/TableAutomaticUpload+CoreDataProperties.m

@@ -0,0 +1,28 @@
+//
+//  TableAutomaticUpload+CoreDataProperties.m
+//  Nextcloud
+//
+//  Created by Marino Faggiana on 19/12/16.
+//  Copyright © 2016 TWS. All rights reserved.
+//
+
+#import "TableAutomaticUpload+CoreDataProperties.h"
+
+@implementation TableAutomaticUpload (CoreDataProperties)
+
++ (NSFetchRequest<TableAutomaticUpload *> *)fetchRequest {
+	return [[NSFetchRequest alloc] initWithEntityName:@"TableAutomaticUpload"];
+}
+
+@dynamic account;
+@dynamic assetLocalItentifier;
+@dynamic date;
+@dynamic fileName;
+@dynamic selector;
+@dynamic selectorPost;
+@dynamic serverUrl;
+@dynamic session;
+@dynamic startUpload;
+@dynamic priority;
+
+@end

+ 0 - 13
iOSClient/FileSystem/TableUpload+CoreDataClass.m

@@ -1,13 +0,0 @@
-//
-//  TableUpload+CoreDataClass.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 18/12/16.
-//  Copyright © 2016 TWS. All rights reserved.
-//
-
-#import "TableUpload+CoreDataClass.h"
-
-@implementation TableUpload
-
-@end

+ 0 - 28
iOSClient/FileSystem/TableUpload+CoreDataProperties.m

@@ -1,28 +0,0 @@
-//
-//  TableUpload+CoreDataProperties.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 18/12/16.
-//  Copyright © 2016 TWS. All rights reserved.
-//
-
-#import "TableUpload+CoreDataProperties.h"
-
-@implementation TableUpload (CoreDataProperties)
-
-+ (NSFetchRequest<TableUpload *> *)fetchRequest {
-	return [[NSFetchRequest alloc] initWithEntityName:@"TableUpload"];
-}
-
-@dynamic account;
-@dynamic assetLocalItentifier;
-@dynamic date;
-@dynamic fileName;
-@dynamic queueName;
-@dynamic selector;
-@dynamic selectorPost;
-@dynamic serverUrl;
-@dynamic session;
-@dynamic startUpload;
-
-@end

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -3181,7 +3181,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 || [app.netQueueUploadCameraAllPhoto operationCount] > 0) {
+    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [app.netQueueUploadCamera operationCount] > 0) {
         
         [app messageNotification:@"_transfers_in_queue_" description:nil visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeInfo];
         return;

+ 9 - 8
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -1249,9 +1249,11 @@
         if (assetsFull) {
             metadataNet.selector = selectorUploadCameraAllPhoto;
             metadataNet.selectorPost = selectorUploadRemovePhoto;
+            metadataNet.priority = NSOperationQueuePriorityLow;
         } else {
             metadataNet.selector = selectorUploadCameraSnapshot;
             metadataNet.selectorPost = nil;
+            metadataNet.priority = NSOperationQueuePriorityHigh;
         }
         metadataNet.fileName = fileNameUpload;
         metadataNet.serverUrl = serverUrl;
@@ -1260,22 +1262,21 @@
         
         // Select type of queue
         if (assetsFull)
-            queue = app.netQueueUploadCameraAllPhoto;
+            queue = app.netQueueUploadCamera;
         else if ([session containsString:@"wwan"])
             queue = app.netQueueUploadWWan;
         else
             queue = app.netQueueUpload;
         
-        if (assetsFull)
-            [CCCoreData addUpload:metadataNet activeAccount:app.activeAccount context:nil];
-        else
-            [app addNetworkingOperationQueue:queue delegate:app.activeMain metadataNet:metadataNet oneByOne:YES];
+        [CCCoreData addUpload:metadataNet activeAccount:app.activeAccount context:nil];
     }
     
-    // start for AssetsFull
+    // start upload
     if (assetsFull)
-        [app loadTableUploadQueue:netQueueUploadCameraAllPhotoName numeRecors:(maxConcurrentOperationUploadCameraAllPhoto - [app.netQueueUploadCameraAllPhoto operationCount])];
-        
+        [app loadTableAutomaticUploadForSelector:selectorUploadCameraAllPhoto numeRecors:(maxConcurrentOperationUploadCamera - [app.netQueueUploadCamera operationCount])];
+    else
+        [app loadTableAutomaticUploadForSelector:selectorUploadCameraSnapshot numeRecors:(maxConcurrentOperationUploadCamera - [app.netQueueUploadCamera operationCount])];
+
     // 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 || [app.netQueueUploadCameraAllPhoto operationCount] > 0) {
+    if ([app.netQueue operationCount] > 0 || [app.netQueueDownload operationCount] > 0 || [app.netQueueDownloadWWan operationCount] > 0 || [app.netQueueUpload operationCount] > 0 || [app.netQueueUploadWWan operationCount] > 0 || [app.netQueueUploadCamera operationCount] > 0) {
         
         [app messageNotification:@"_transfers_in_queue_" description:nil visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeInfo];
         [self UpdateForm];

+ 13 - 13
iOSClient/cryptocloud.xcdatamodeld/cryptocloud 5.xcdatamodel/contents

@@ -27,6 +27,18 @@
         <attribute name="url" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="user" optional="YES" attributeType="String" syncable="YES"/>
     </entity>
+    <entity name="TableAutomaticUpload" representedClassName="TableAutomaticUpload" syncable="YES">
+        <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="assetLocalItentifier" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
+        <attribute name="fileName" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="priority" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
+        <attribute name="selector" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="selectorPost" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="serverUrl" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="session" optional="YES" attributeType="String" syncable="YES"/>
+        <attribute name="startUpload" optional="YES" attributeType="Boolean" defaultValueString="-1" usesScalarValueType="NO" syncable="YES"/>
+    </entity>
     <entity name="TableCertificates" representedClassName="TableCertificates" syncable="YES">
         <attribute name="certificateLocation" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="dateRecord" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
@@ -111,18 +123,6 @@
         <attribute name="shareLink" optional="YES" attributeType="String" syncable="YES"/>
         <attribute name="shareUserAndGroup" optional="YES" attributeType="String" syncable="YES"/>
     </entity>
-    <entity name="TableUpload" representedClassName="TableUpload" syncable="YES">
-        <attribute name="account" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="assetLocalItentifier" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="date" optional="YES" attributeType="Date" usesScalarValueType="NO" syncable="YES"/>
-        <attribute name="fileName" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="queueName" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="selector" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="selectorPost" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="serverUrl" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="session" optional="YES" attributeType="String" syncable="YES"/>
-        <attribute name="startUpload" optional="YES" attributeType="Boolean" defaultValueString="-1" usesScalarValueType="NO" syncable="YES"/>
-    </entity>
     <elements>
         <element name="TableAccount" positionX="-6174" positionY="153" width="171" height="420"/>
         <element name="TableCertificates" positionX="-5976" positionY="297" width="128" height="75"/>
@@ -131,6 +131,6 @@
         <element name="TableLocalFile" positionX="-5472" positionY="153" width="135" height="225"/>
         <element name="TableMetadata" positionX="-5949" positionY="162" width="162" height="525"/>
         <element name="TableShare" positionX="-5976" positionY="297" width="128" height="135"/>
-        <element name="TableUpload" positionX="-5967" positionY="306" width="128" height="195"/>
+        <element name="TableAutomaticUpload" positionX="-5967" positionY="306" width="128" height="195"/>
     </elements>
 </model>