Marino Faggiana 6 years ago
parent
commit
d961d25d09
3 changed files with 25 additions and 24 deletions
  1. 4 4
      iOSClient/AppDelegate.m
  2. 20 3
      iOSClient/Main/CCMain.m
  3. 1 17
      iOSClient/Networking/CCNetworking.m

+ 4 - 4
iOSClient/AppDelegate.m

@@ -273,7 +273,7 @@
         return;
     
     // verify Upload
-    [self verifyUploadInErrorOrWait];
+//    [self verifyUploadInErrorOrWait];
     
     // middelware ping
     if ([[NCBrandOptions sharedInstance] use_middlewarePing]) {
@@ -813,7 +813,7 @@
     if (self.maintenanceMode)
         return;
     
-    NSInteger counterDownload = [[CCNetworking sharedNetworking] getNumDownloadInProgressWWan:NO] + [[CCNetworking sharedNetworking] getNumDownloadInProgressWWan:YES];
+    NSInteger counterDownload = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND (status = %d || status = %d || status = %d)", self.activeAccount, k_metadataStatusWaitDownload, k_metadataStatusInDownload, k_metadataStatusDownloading] sorted:@"fileName" ascending:true] count];
     NSInteger counterUpload = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND (status = %d || status = %d || status = %d)", self.activeAccount, k_metadataStatusWaitUpload, k_metadataStatusInUpload, k_metadataStatusUploading] sorted:@"fileName" ascending:true] count];
 
     NSInteger total = counterDownload + counterUpload;
@@ -1425,7 +1425,7 @@
   
     // ------------------------- <selector Auto Download> -------------------------
     
-    while (counterDownload < k_maxConcurrentOperationDownload) {
+    if (counterDownload < k_maxConcurrentOperationDownload) {
         
         metadataForDownload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND status = %d", _activeAccount, k_metadataStatusWaitDownload]];
         if (metadataForDownload) {
@@ -1434,7 +1434,7 @@
             tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForDownload];
             
             [[CCNetworking sharedNetworking] downloadFile:metadata path:self.directoryUser taskStatus:k_taskStatusResume delegate:_activeMain];
-        }
+        }  
     }
   
     // ------------------------- <selector Auto Upload> -------------------------

+ 20 - 3
iOSClient/Main/CCMain.m

@@ -1069,6 +1069,16 @@
 #pragma mark ==== Download ====
 #pragma --------------------------------------------------------------------------------------------
 
+- (void)downloadStart:(tableMetadata *)metadata task:(NSURLSessionDownloadTask *)task serverUrl:(NSString *)serverUrl
+{
+    metadata.status = k_metadataStatusDownloading;
+    (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
+    
+    [self reloadDatasource: serverUrl];
+    
+    [appDelegate updateApplicationIconBadgeNumber];
+}
+
 - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode
 {
     tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", fileID]];
@@ -1279,7 +1289,6 @@
 
 - (void)uploadStart:(tableMetadata *)metadata task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl
 {
-    // Upload Start
     metadata.status = k_metadataStatusUploading;
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
     
@@ -5010,8 +5019,16 @@
                 
             } else {
             
-//                [[CCNetworking sharedNetworking] downloadFile:_metadata.fileName fileID:_metadata.fileID serverUrl:serverUrl selector:selectorLoadFileView selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self];
-            
+                _metadata.session = k_download_session;
+                _metadata.sessionError = @"";
+                _metadata.sessionSelector = selectorLoadFileView;
+                _metadata.sessionSelectorPost = @"";
+                _metadata.status = k_metadataStatusWaitDownload;
+                
+                // Add Metadata for Download
+                (void)[[NCManageDatabase sharedInstance] addMetadata:_metadata];
+                [appDelegate performSelectorOnMainThread:@selector(loadAutoDownloadUpload) withObject:nil waitUntilDone:YES];
+                            
                 NSIndexPath *indexPath = [_sectionDataSource.fileIDIndexPath objectForKey:_metadata.fileID];
                 if (indexPath) [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationAutomatic];
             }

+ 1 - 17
iOSClient/Networking/CCNetworking.m

@@ -589,15 +589,6 @@
     
     NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
 
-    // it's in download
-    tableMetadata *result = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@ AND session CONTAINS 'download' AND sessionTaskIdentifier >= 0", metadata.fileID]];
-        
-    if (result) {
-            
-        [delegate downloadFileSuccessFailure:metadata.fileName fileID:metadata.fileID serverUrl:serverUrl selector:metadata.sessionSelector selectorPost:metadata.sessionSelectorPost errorMessage:@"File already in download" errorCode:k_CCErrorFileAlreadyInDownload];
-        return;
-    }
-        
     // File exists ?
     tableLocalFile *localfile = [[NCManageDatabase sharedInstance] getTableLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", metadata.fileID]];
         
@@ -659,14 +650,6 @@
             [[self getDelegate:metadata.fileID] downloadStart:metadata task:downloadTask serverUrl:serverUrl];
         }
     });
-    
-    // Refresh datasource if is not a Plist
-    if ([_delegate respondsToSelector:@selector(reloadDatasource:)])
-        [_delegate reloadDatasource:serverUrl];
-        
-#ifndef EXTENSION
-        [(AppDelegate *)[[UIApplication sharedApplication] delegate] updateApplicationIconBadgeNumber];
-#endif
 }
 
 - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
@@ -765,6 +748,7 @@
         metadata.sessionError = @"";
         metadata.sessionSelector = @"";
         metadata.sessionSelectorPost = @"";
+        metadata.status = k_metadataStatusNormal;
         metadata.sessionTaskIdentifier = k_taskIdentifierDone;
             
         metadata = [[NCManageDatabase sharedInstance] updateMetadata:metadata];