Marino Faggiana %!s(int64=7) %!d(string=hai) anos
pai
achega
1a505b91e7

+ 16 - 13
iOSClient/Main/CCMain.m

@@ -1548,27 +1548,26 @@
 - (void)uploadFileAsset:(NSMutableArray *)assets serverUrl:(NSString *)serverUrl useSubFolder:(BOOL)useSubFolder session:(NSString *)session
 {
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){
-        [self performSelectorOnMainThread:@selector(uploadFileAssetBridge:) withObject:@[assets, serverUrl, [NSNumber numberWithBool:useSubFolder], session] waitUntilDone:NO];
+        
+        NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:app.activeUrl];
+
+        // if request create the folder for Photos &  the subfolders
+        if ([autoUploadPath isEqualToString:serverUrl])
+            if (![[NCAutoUpload sharedInstance] createFolderSubFolderAutoUploadFolderPhotos:autoUploadPath useSubFolder:useSubFolder assets:(PHFetchResult *)assets selector:selectorUploadFile])
+                return;
+        
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [self uploadFileAssetBridge:assets serverUrl:serverUrl useSubFolder:useSubFolder session:session];
+        });
     });
 }
 
-- (void)uploadFileAssetBridge:(NSArray *)arguments
+- (void)uploadFileAssetBridge:(NSArray *)assets serverUrl:(NSString *)serverUrl useSubFolder:(BOOL)useSubFolder session:(NSString *)session
 {
-    NSArray *assets = [arguments objectAtIndex:0];
-    NSString *serverUrl = [arguments objectAtIndex:1];
-    BOOL useSubFolder = [[arguments objectAtIndex:2] boolValue];
-    NSString *session = [arguments objectAtIndex:3];
-    
-    
     NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:app.activeUrl];
     NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
     if (!directoryID) return;
     
-    // if request create the folder for Photos &  the subfolders
-    if ([autoUploadPath isEqualToString:serverUrl])
-        if (![[NCAutoUpload sharedInstance] createFolderSubFolderAutoUploadFolderPhotos:autoUploadPath useSubFolder:useSubFolder assets:(PHFetchResult *)assets selector:selectorUploadFile])
-            return;
-    
     NSLog(@"[LOG] Asset N. %lu", (unsigned long)[assets count]);
     
     for (PHAsset *asset in assets) {
@@ -1590,6 +1589,10 @@
             serverUrl = [NSString stringWithFormat:@"%@/%@/%@", autoUploadPath, yearString, monthString];
         }
         
+        // Check il file already exists
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND fileNameView = %@", app.activeAccount, directoryID, fileName]];
+
+        
         // Check if is in upload 
         NSPredicate *predicate = [NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND fileName = %@ AND session != ''", app.activeAccount, directoryID, fileName];
         NSArray *isRecordInSessions = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:predicate sorted:nil ascending:NO];

+ 0 - 10
iOSClient/Main/CCSection.m

@@ -73,16 +73,6 @@
     
     for (tableMetadata* metadata in records) {
         
-        // Is a Encrypted metadata ?
-        for (tableE2eEncryption *e2eEncryption in e2eEncryptions) {
-            if ([metadata.fileName isEqualToString:e2eEncryption.fileNameIdentifier]) {
-                metadata.e2eEncrypted = true;
-                metadata.fileNameView = e2eEncryption.fileName;
-                [CCUtility insertTypeFileIconName:metadata.fileNameView metadata:metadata];
-                break;
-            }
-        }
-        
         if ([listProgressMetadata objectForKey:metadata.fileID] && [groupByField isEqualToString:@"session"]) {
             
             [copyRecords insertObject:metadata atIndex:0];

+ 7 - 1
iOSClient/Security/NCEndToEndMetadata.swift

@@ -192,8 +192,9 @@ class NCEndToEndMetadata : NSObject  {
                 do {
                     
                     let encryptedFileAttributes = try jsonDecoder.decode(e2eMetadata.encryptedFileAttributes.self, from: encryptedFileAttributesJson.data(using: .utf8)!)
+                    let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileName = %@", account, fileNameIdentifier))
                     
-                    if NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileName = %@", account, fileNameIdentifier)) != nil {
+                    if  metadata != nil {
                     
                         let object = tableE2eEncryption()
                     
@@ -214,6 +215,11 @@ class NCEndToEndMetadata : NSObject  {
                         if NCManageDatabase.sharedInstance.addE2eEncryption(object) == false {
                             return false
                         }
+                        
+                        // Update metadata on tableMetadata
+                        metadata?.fileNameView = encryptedFileAttributes.filename
+                        CCUtility.insertTypeFileIconName(encryptedFileAttributes.filename, metadata: metadata)
+                        let _ = NCManageDatabase.sharedInstance.addMetadata(metadata!)
                     }
                     
                 } catch let error {

+ 1 - 2
iOSClient/Security/NCEntoToEndInterface.swift

@@ -378,8 +378,7 @@ class NCEntoToEndInterface : NSObject, OCNetworkingDelegate  {
             return
         }
         
-        // Clear all date directory and reload data source
-        NCManageDatabase.sharedInstance.setClearAllDateReadDirectory()
+        // Reload data source
         main.reloadDatasource(serverUrl)
     }