Marino Faggiana 6 жил өмнө
parent
commit
bb0742e847

+ 1 - 5
PickerFileProvider/FileProviderExtension+Network.swift

@@ -178,15 +178,11 @@ extension FileProviderExtension {
     //  MARK: - Upload
     // --------------------------------------------------------------------------------------------
     
-    func uploadStart(_ fileID: String!, task: URLSessionUploadTask!, serverUrl: String!) {
+    func uploadStart(_ metadata: tableMetadata!, task: URLSessionUploadTask!, serverUrl: String!) {
      
         /* ONLY iOS 11*/
         guard #available(iOS 11, *) else { return }
 
-        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID = %@", fileID)) else {
-            return
-        }
-        
         guard let parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata) else {
             return
         }

+ 3 - 3
iOSClient/AppDelegate.m

@@ -1511,12 +1511,12 @@
                 
             } else {
                 
-                [[CCNetworking sharedNetworking] uploadFile:metadataForUpload path:self.directoryUser taskStatus:k_taskStatusResume delegate:_activeMain];
+                metadataForUpload.status = k_metadataStatusInUpload;
+                tableMetadata *metadata = [[NCManageDatabase sharedInstance] addMetadata:metadataForUpload];
                 
-//                [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
+                [[CCNetworking sharedNetworking] uploadFile:metadata path:self.directoryUser taskStatus:k_taskStatusResume delegate:_activeMain];
             }
             
-            
             counterNewUpload++;
         }
         

+ 4 - 1
iOSClient/Main/CCMain.m

@@ -1267,9 +1267,12 @@
 #pragma mark ===== Upload new Photos/Videos =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)uploadStart:(NSString *)fileID task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl
+- (void)uploadStart:(tableMetadata *)metadata task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl
 {
     // Upload Start
+    metadata.status = k_metadataStatusUploading;
+    
+    (void)[[NCManageDatabase sharedInstance] addMetadata:metadata];
 }
 
 - (void)uploadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID assetLocalIdentifier:(NSString *)assetLocalIdentifier serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode

+ 1 - 1
iOSClient/Networking/CCNetworking.h

@@ -77,7 +77,7 @@
 
 @optional  - (void)downloadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 
-@optional - (void)uploadStart:(NSString *)fileID task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl;
+@optional - (void)uploadStart:(tableMetadata *)metadata task:(NSURLSessionUploadTask *)task serverUrl:(NSString *)serverUrl;
 @optional - (void)uploadFileSuccessFailure:(NSString *)fileName fileID:(NSString *)fileID assetLocalIdentifier:(NSString *)assetLocalIdentifier serverUrl:(NSString *)serverUrl selector:(NSString *)selector selectorPost:(NSString *)selectorPost errorMessage:(NSString *)errorMessage errorCode:(NSInteger)errorCode;
 
 @end

+ 13 - 17
iOSClient/Networking/CCNetworking.m

@@ -462,6 +462,7 @@
     if (!serverUrl) return;
     NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
     if (!directoryID) return;
+    NSString *fileID = [directoryID stringByAppendingString:fileName];
     tableMetadata *metadata;
     
     NSInteger errorCode;
@@ -537,11 +538,7 @@
     
     if ([task isKindOfClass:[NSURLSessionUploadTask class]]) {
         
-        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"session = %@ AND sessionTaskIdentifier = %i", session.sessionDescription, task.taskIdentifier]];
-        
-        if (!metadata)
-            metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID = %@ AND fileName = %@", directoryID, fileName]];
-
+        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND fileID = %@", _activeAccount, fileID]];
         if (metadata) {
             
             NSDictionary *fields = [httpResponse allHeaderFields];
@@ -1076,7 +1073,7 @@
 
     dispatch_async(dispatch_get_main_queue(), ^{
         if ([[self getDelegate:metadata.fileID] respondsToSelector:@selector(uploadStart:task:serverUrl:)]) {
-            [[self getDelegate:metadata.fileID] uploadStart:metadata.fileID task:uploadTask serverUrl:serverUrl];
+            [[self getDelegate:metadata.fileID] uploadStart:metadata task:uploadTask serverUrl:serverUrl];
         }
     });
     
@@ -1147,28 +1144,27 @@
     } else {
     
         // copy ico in new fileID
-        [CCUtility copyFileAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, tempFileID] toPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID]];
+//        [CCUtility copyFileAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, tempFileID] toPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID]];
         
-        // Add new metadata
-        metadata.fileID = fileID;
-        metadata.etag = etag;
+        // Replace Metadata
+        metadata.assetLocalIdentifier = @"";
         metadata.date = date;
         metadata.e2eEncrypted = false;
+        metadata.etag = etag;
+        metadata.fileID = fileID;
+        metadata.session = @"";
+        metadata.sessionError = @"";
         metadata.sessionTaskIdentifier = k_taskIdentifierDone;
-        metadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
         
-        // Delete old ID_UPLOAD_XXXXX metadata
+        metadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
         [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID = %@", tempFileID] clearDateReadDirectoryID:nil];
-    
+
+        
 #ifndef EXTENSION
         AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
         [appDelegate.listProgressMetadata removeObjectForKey:metadata.fileID];
 #endif
         
-        metadata.session = @"";
-        metadata.sessionError = @"";
-        metadata = [[NCManageDatabase sharedInstance] updateMetadata:metadata];
-    
         NSLog(@"[LOG] Insert new upload : %@ - fileID : %@", metadata.fileName, metadata.fileID);
 
         if ([CCUtility isFolderEncrypted:serverUrl account:_activeAccount]) {