|
@@ -469,250 +469,6 @@ import Alamofire
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- @objc func loadAutoUpload() {
|
|
|
|
-
|
|
|
|
- var counterUpload = 0
|
|
|
|
- var sizeUpload = 0
|
|
|
|
- var maxConcurrentOperationUpload = k_maxConcurrentOperation
|
|
|
|
-
|
|
|
|
- let metadatasUpload = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "status == %d OR status == %d", k_metadataStatusInUpload, k_metadataStatusUploading), freeze: true)
|
|
|
|
- counterUpload = metadatasUpload.count
|
|
|
|
-
|
|
|
|
- for metadata in metadatasUpload {
|
|
|
|
- sizeUpload = sizeUpload + Int(metadata.size)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- debugPrint("[LOG] PROCESS-AUTO-UPLOAD \(counterUpload)")
|
|
|
|
-
|
|
|
|
- // ------------------------- <selector Upload> -------------------------
|
|
|
|
-
|
|
|
|
- while counterUpload < maxConcurrentOperationUpload {
|
|
|
|
- if sizeUpload > k_maxSizeOperationUpload { break }
|
|
|
|
- var predicate = NSPredicate()
|
|
|
|
-
|
|
|
|
- if UIApplication.shared.applicationState == .background {
|
|
|
|
- predicate = NSPredicate(format: "sessionSelector == %@ AND status == %d AND typeFile != %@", selectorUploadFile, k_metadataStatusWaitUpload, k_metadataTypeFile_video)
|
|
|
|
- } else {
|
|
|
|
- predicate = NSPredicate(format: "sessionSelector == %@ AND status == %d", selectorUploadFile, k_metadataStatusWaitUpload)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: predicate, freeze: true) {
|
|
|
|
- NCManageDatabase.sharedInstance.setMetadataSession(ocId: metadata.ocId, status: Int(k_metadataStatusInUpload))
|
|
|
|
- self.upload(metadata: metadata, background: true) { (_, _) in }
|
|
|
|
- counterUpload += 1
|
|
|
|
- sizeUpload = sizeUpload + Int(metadata.size)
|
|
|
|
- } else {
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- DispatchQueue.main.asyncAfter(deadline: .now() + TimeInterval(k_timerAutoUpload)) {
|
|
|
|
- self.loadAutoUpload()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /*
|
|
|
|
- - (void)loadAutoUpload
|
|
|
|
- {
|
|
|
|
- if (self.activeAccount.length == 0 || self.maintenanceMode)
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
- tableMetadata *metadataForUpload;
|
|
|
|
- long counterUpload = 0;
|
|
|
|
- NSUInteger sizeUpload = 0;
|
|
|
|
- NSPredicate *predicate;
|
|
|
|
-
|
|
|
|
- long maxConcurrentOperationUpload = k_maxConcurrentOperation;
|
|
|
|
-
|
|
|
|
- NSArray *metadatasUpload = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"status == %d OR status == %d", k_metadataStatusInUpload, k_metadataStatusUploading] sorted:nil ascending:true];
|
|
|
|
-
|
|
|
|
- for(tableMetadata *metadata in metadatasUpload) {
|
|
|
|
- if ([CCUtility isFolderEncrypted:metadata.serverUrl e2eEncrypted:metadata.e2eEncrypted account:metadata.account]) return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // Counter
|
|
|
|
- counterUpload = [metadatasUpload count];
|
|
|
|
-
|
|
|
|
- // Size
|
|
|
|
- for (tableMetadata *metadata in metadatasUpload) {
|
|
|
|
- sizeUpload = sizeUpload + metadata.size;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- NSLog(@"%@", [NSString stringWithFormat:@"[LOG] PROCESS-AUTO-UPLOAD %ld - %@", counterUpload, [CCUtility transformedSize:sizeUpload]]);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- // ------------------------- <selector Upload> -------------------------
|
|
|
|
-
|
|
|
|
- while (counterUpload < maxConcurrentOperationUpload) {
|
|
|
|
-
|
|
|
|
- if (sizeUpload > k_maxSizeOperationUpload) {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d AND typeFile != %@", selectorUploadFile, k_metadataStatusWaitUpload, k_metadataTypeFile_video];
|
|
|
|
- } else {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d", selectorUploadFile, k_metadataStatusWaitUpload];
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:predicate sorted:@"date" ascending:YES];
|
|
|
|
-
|
|
|
|
- if (metadataForUpload) {
|
|
|
|
-
|
|
|
|
- if ([CCUtility isFolderEncrypted:metadataForUpload.serverUrl e2eEncrypted:metadataForUpload.e2eEncrypted account:metadataForUpload.account]) {
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { break; }
|
|
|
|
- maxConcurrentOperationUpload = 1;
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- counterUpload++;
|
|
|
|
- sizeUpload = sizeUpload + metadata.size;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // ------------------------- <selector Auto Upload> -------------------------
|
|
|
|
-
|
|
|
|
- while (counterUpload < maxConcurrentOperationUpload) {
|
|
|
|
-
|
|
|
|
- if (sizeUpload > k_maxSizeOperationUpload) {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d AND typeFile != %@", selectorUploadAutoUpload, k_metadataStatusWaitUpload, k_metadataTypeFile_video];
|
|
|
|
- } else {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d", selectorUploadAutoUpload, k_metadataStatusWaitUpload];
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:predicate sorted:@"date" ascending:YES];
|
|
|
|
- if (metadataForUpload) {
|
|
|
|
-
|
|
|
|
- if ([CCUtility isFolderEncrypted:metadataForUpload.serverUrl e2eEncrypted:metadataForUpload.e2eEncrypted account:metadataForUpload.account]) {
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { break; }
|
|
|
|
- maxConcurrentOperationUpload = 1;
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- counterUpload++;
|
|
|
|
- sizeUpload = sizeUpload + metadata.size;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // ------------------------- <selector Auto Upload All> ----------------------
|
|
|
|
-
|
|
|
|
- // Verify num error k_maxErrorAutoUploadAll after STOP (100)
|
|
|
|
- NSArray *metadatas = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %i", selectorUploadAutoUploadAll, k_metadataStatusUploadError] sorted:@"date" ascending:YES];
|
|
|
|
- NSInteger errorCount = [metadatas count];
|
|
|
|
-
|
|
|
|
- if (errorCount >= k_maxErrorAutoUploadAll) {
|
|
|
|
-
|
|
|
|
- [[NCContentPresenter shared] messageNotification:@"_error_" description:@"_too_errors_automatic_all_" delay:k_dismissAfterSecond type:messageTypeError errorCode:k_CCErrorInternalError];
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- while (counterUpload < maxConcurrentOperationUpload) {
|
|
|
|
-
|
|
|
|
- if (sizeUpload > k_maxSizeOperationUpload) {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d AND typeFile != %@", selectorUploadAutoUploadAll, k_metadataStatusWaitUpload, k_metadataTypeFile_video];
|
|
|
|
- } else {
|
|
|
|
- predicate = [NSPredicate predicateWithFormat:@"sessionSelector == %@ AND status == %d", selectorUploadAutoUploadAll, k_metadataStatusWaitUpload];
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:predicate sorted:@"session" ascending:YES];
|
|
|
|
- if (metadataForUpload) {
|
|
|
|
-
|
|
|
|
- if ([CCUtility isFolderEncrypted:metadataForUpload.serverUrl e2eEncrypted:metadataForUpload.e2eEncrypted account:metadataForUpload.account]) {
|
|
|
|
-
|
|
|
|
- if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { break; }
|
|
|
|
- maxConcurrentOperationUpload = 1;
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
-
|
|
|
|
- metadataForUpload.status = k_metadataStatusInUpload;
|
|
|
|
- tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
|
|
|
|
-
|
|
|
|
- [[NCNetworking shared] uploadWithMetadata:metadata background:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
|
|
|
|
-
|
|
|
|
- counterUpload++;
|
|
|
|
- sizeUpload = sizeUpload + metadata.size;
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // No upload available ? --> Retry Upload in Error
|
|
|
|
- if (counterUpload == 0) {
|
|
|
|
-
|
|
|
|
- NSArray *metadatas = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"status == %d", k_metadataStatusUploadError] sorted:nil ascending:NO];
|
|
|
|
- for (tableMetadata *metadata in metadatas) {
|
|
|
|
-
|
|
|
|
- metadata.session = NCCommunicationCommon.shared.sessionIdentifierBackground;
|
|
|
|
- metadata.sessionError = @"";
|
|
|
|
- metadata.sessionTaskIdentifier = 0;
|
|
|
|
- metadata.status = k_metadataStatusInUpload;
|
|
|
|
-
|
|
|
|
- [[NCManageDatabase sharedInstance] addMetadata:metadata];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // verify delete Asset Local Identifiers in auto upload (Photos album)
|
|
|
|
- if (counterUpload == 0 && self.passcodeViewController == nil) {
|
|
|
|
-
|
|
|
|
- [[NCUtility sharedInstance] deleteAssetLocalIdentifiersWithAccount:self.activeAccount sessionSelector:selectorUploadAutoUpload];
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- */
|
|
|
|
-
|
|
|
|
//MARK: - Download / Upload
|
|
//MARK: - Download / Upload
|
|
|
|
|
|
@objc func verifyTransfer() {
|
|
@objc func verifyTransfer() {
|