Ver Fonte

encrypted filename on view

Marino Faggiana há 7 anos atrás
pai
commit
cf49ea1625

+ 18 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -1052,6 +1052,24 @@ class NCManageDatabase: NSObject {
         return tableE2eEncryption.init(value: result)
     }
     
+    @objc func getE2eEncryptions(predicate: NSPredicate) -> [tableE2eEncryption]? {
+        
+        guard self.getAccountActive() != nil else {
+            return nil
+        }
+        
+        let realm = try! Realm()
+        let results : Results<tableE2eEncryption>
+        
+        results = realm.objects(tableE2eEncryption.self).filter(predicate)
+        
+        if (results.count > 0) {
+            return Array(results.map { tableE2eEncryption.init(value:$0) })
+        } else {
+            return nil
+        }
+    }
+    
     @objc func getE2eEncryptionTokenLock(serverUrl: String) -> String? {
         
         guard let tableAccount = self.getAccountActive() else {

+ 1 - 1
iOSClient/Favorites/CCFavorites.m

@@ -498,7 +498,7 @@
             recordsTableMetadata = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@", app.activeAccount, directoryID] sorted:sorted ascending:[CCUtility getAscendingSettings]];
     }
         
-    CCSectionDataSourceMetadata *sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:nil groupByField:nil activeAccount:app.activeAccount];
+    CCSectionDataSourceMetadata *sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:nil e2eEncryption:nil groupByField:nil activeAccount:app.activeAccount];
         
     NSArray *fileIDs = [sectionDataSource.sectionArrayRow objectForKey:@"_none_"];
     for (NSString *fileID in fileIDs)

+ 5 - 3
iOSClient/Main/CCMain.m

@@ -4177,7 +4177,7 @@
     // Search Mode
     if (_isSearchMode) {
         
-        _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:_searchResultMetadatas listProgressMetadata:nil groupByField:_directoryGroupBy activeAccount:app.activeAccount];
+        _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:_searchResultMetadatas listProgressMetadata:nil e2eEncryption:nil groupByField:_directoryGroupBy activeAccount:app.activeAccount];
 
         [self tableViewReloadData];
         
@@ -4240,9 +4240,11 @@
         if (directoryID) {
         
             NSArray *recordsTableMetadata = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND status = %i", app.activeAccount, directoryID, k_metadataStatusNormal] sorted:sorted ascending:[CCUtility getAscendingSettings]];
-        
+            
+            NSArray *recordsTableE2eEncryption = [[NCManageDatabase sharedInstance] getE2eEncryptionsWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", app.activeAccount, serverUrl]];
+                                                  
             _sectionDataSource = [CCSectionDataSourceMetadata new];
-            _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:nil groupByField:_directoryGroupBy activeAccount:app.activeAccount];
+            _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:nil e2eEncryption:recordsTableE2eEncryption groupByField:_directoryGroupBy activeAccount:app.activeAccount];
             
             // get auto upload folder
             _autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];

+ 1 - 1
iOSClient/Main/CCSection.h

@@ -42,7 +42,7 @@
 
 @interface CCSectionMetadata : NSObject
 
-+ (CCSectionDataSourceMetadata *)creataDataSourseSectionMetadata:(NSArray *)records listProgressMetadata:(NSMutableDictionary *)listProgressMetadata groupByField:(NSString *)groupByField activeAccount:(NSString *)activeAccount;
++ (CCSectionDataSourceMetadata *)creataDataSourseSectionMetadata:(NSArray *)records listProgressMetadata:(NSMutableDictionary *)listProgressMetadata e2eEncryption:(NSArray *)e2eEncryption groupByField:(NSString *)groupByField activeAccount:(NSString *)activeAccount;
 
 + (void)removeAllObjectsSectionDataSource:(CCSectionDataSourceMetadata *)sectionDataSource;
 

+ 3 - 1
iOSClient/Main/CCSection.m

@@ -54,7 +54,7 @@
 //
 // orderByField : nil, date, typeFile
 //
-+ (CCSectionDataSourceMetadata *)creataDataSourseSectionMetadata:(NSArray *)records listProgressMetadata:(NSMutableDictionary *)listProgressMetadata groupByField:(NSString *)groupByField activeAccount:(NSString *)activeAccount
++ (CCSectionDataSourceMetadata *)creataDataSourseSectionMetadata:(NSArray *)records listProgressMetadata:(NSMutableDictionary *)listProgressMetadata e2eEncryption:(NSArray *)e2eEncryption groupByField:(NSString *)groupByField activeAccount:(NSString *)activeAccount
 {
     id dataSection;
     long counterSessionDownload = 0;
@@ -74,7 +74,9 @@
     for (tableMetadata* metadata in records) {
         
         if ([listProgressMetadata objectForKey:metadata.fileID] && [groupByField isEqualToString:@"session"]) {
+            
             [copyRecords insertObject:metadata atIndex:0];
+            
         } else {
             
             if ([metadata.typeFile isEqualToString: k_metadataTypeFile_directory] && directoryOnTop) {

+ 1 - 1
iOSClient/Photos/CCPhotos.m

@@ -532,7 +532,7 @@
 
         _dateReadDataSource = [NSDate date];
         NSArray *results = [[NCManageDatabase sharedInstance] getTableMetadatasPhotosWithServerUrl:_directoryStartDatasource];
-        _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:results listProgressMetadata:nil groupByField:@"date" activeAccount:app.activeAccount];
+        _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:results listProgressMetadata:nil e2eEncryption:nil groupByField:@"date" activeAccount:app.activeAccount];
         
         [self reloadCollection];
     }

+ 4 - 1
iOSClient/Security/NCEntoToEndInterface.swift

@@ -418,7 +418,9 @@ class NCEntoToEndInterface : NSObject, OCNetworkingDelegate  {
             return
         }
         
-        if (decoderMetadata(metadataNet.encryptedMetadata, privateKey: privateKey, serverUrl: metadataNet.serverUrl) == false) {
+        let serverUrl = metadataNet.serverUrl + "/" + metadataNet.fileName
+        
+        if (decoderMetadata(metadataNet.encryptedMetadata, privateKey: privateKey, serverUrl: serverUrl) == false) {
             return
         }
 
@@ -445,6 +447,7 @@ class NCEntoToEndInterface : NSObject, OCNetworkingDelegate  {
         
         metadataNet.action = actionGetEndToEndMetadata;
         metadataNet.fileID = metadata.fileID;
+        metadataNet.fileName = metadata.fileName;
         
         guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID) else {
             

+ 1 - 1
iOSClient/Transfers/CCTransfers.m

@@ -311,7 +311,7 @@
     
     NSArray *recordsTableMetadata = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND ((session CONTAINS 'upload') OR (session CONTAINS 'download' AND (sessionSelector != 'loadPlist')))", app.activeAccount] sorted:@"sessionTaskIdentifier" ascending:YES];
     
-    _sectionDataSource  = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:app.listProgressMetadata groupByField:@"session" activeAccount:app.activeAccount];
+    _sectionDataSource  = [CCSectionMetadata creataDataSourseSectionMetadata:recordsTableMetadata listProgressMetadata:app.listProgressMetadata e2eEncryption:nil groupByField:@"session" activeAccount:app.activeAccount];
         
     [_tableView reloadData];    
 }