Browse Source

remake protocol readFolderSuccessFailure

Marino Faggiana 7 years ago
parent
commit
45e1c927bf

+ 37 - 35
Picker/DocumentPickerViewController.swift

@@ -235,47 +235,49 @@ class DocumentPickerViewController: UIDocumentPickerExtensionViewController, CCN
         hud.visibleIndeterminateHud()
     }
     
-    func readFolderFailure(_ metadataNet: CCMetadataNet!, message: String!, errorCode: Int) {
+    func readFolderSuccessFailure(_ metadataNet: CCMetadataNet!, metadataFolder: tableMetadata?, metadatas: [Any]!, message: String!, errorCode: Int) {
         
-        hud.hideHud()
-        
-        let alert = UIAlertController(title: NSLocalizedString("_error_", comment: ""), message: message, preferredStyle: .alert)
-        alert.addAction(UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) { action in
-            self.dismissGrantingAccess(to: nil)
-        })
-        
-        self.present(alert, animated: true, completion: nil)
-    }
-    
-    func readFolderSuccess(_ metadataNet: CCMetadataNet!, metadataFolder: tableMetadata?, metadatas: [Any]!) {
-        
-        // remove all record
-        var predicate = NSPredicate(format: "account = %@ AND directoryID = %@ AND session = ''", activeAccount, metadataNet.directoryID!)
-        NCManageDatabase.sharedInstance.deleteMetadata(predicate: predicate, clearDateReadDirectoryID: metadataNet.directoryID!)
+        if (errorCode == 0) {
         
-        for metadata in metadatas as! [tableMetadata] {
+            // remove all record
+            var predicate = NSPredicate(format: "account = %@ AND directoryID = %@ AND session = ''", activeAccount, metadataNet.directoryID!)
+            NCManageDatabase.sharedInstance.deleteMetadata(predicate: predicate, clearDateReadDirectoryID: metadataNet.directoryID!)
             
-            // Only Directory ?
-            if (parameterMode == .moveToService || parameterMode == .exportToService) && metadata.directory == false {
-                continue
+            for metadata in metadatas as! [tableMetadata] {
+                
+                // Only Directory ?
+                if (parameterMode == .moveToService || parameterMode == .exportToService) && metadata.directory == false {
+                    continue
+                }
+                
+                // Add record
+                _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
             }
             
-            // Add record
-            _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
-        }
-        
-        predicate = NSPredicate(format: "account = %@ AND directoryID = %@", activeAccount, metadataNet.directoryID!)
-        recordsTableMetadata = NCManageDatabase.sharedInstance.getMetadatas(predicate: predicate, sorted: "fileName", ascending: true)
-        
-        autoUploadFileName = NCManageDatabase.sharedInstance.getAccountAutoUploadFileName()
-        autoUploadDirectory = NCManageDatabase.sharedInstance.getAccountAutoUploadDirectory(activeUrl)
-        
-        if (CCUtility.isEnd(toEndEnabled: activeAccount)) {
+            predicate = NSPredicate(format: "account = %@ AND directoryID = %@", activeAccount, metadataNet.directoryID!)
+            recordsTableMetadata = NCManageDatabase.sharedInstance.getMetadatas(predicate: predicate, sorted: "fileName", ascending: true)
+            
+            autoUploadFileName = NCManageDatabase.sharedInstance.getAccountAutoUploadFileName()
+            autoUploadDirectory = NCManageDatabase.sharedInstance.getAccountAutoUploadDirectory(activeUrl)
+            
+            if (CCUtility.isEnd(toEndEnabled: activeAccount)) {
+            }
+            
+            tableView.reloadData()
+            
+            hud.hideHud()
+            
+        } else {
+            
+            hud.hideHud()
+            
+            let alert = UIAlertController(title: NSLocalizedString("_error_", comment: ""), message: message, preferredStyle: .alert)
+            alert.addAction(UIAlertAction(title: NSLocalizedString("_ok_", comment: ""), style: .default) { action in
+                self.dismissGrantingAccess(to: nil)
+            })
+            
+            self.present(alert, animated: true, completion: nil)
         }
-        
-        tableView.reloadData()
-        
-        hud.hideHud()
     }
     
     //  MARK: - Download Thumbnail

+ 25 - 27
iOSClient/Main/CCMain.m

@@ -1714,40 +1714,38 @@
 #pragma mark ==== Read Folder ====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)readFolderSuccessFailure:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     // stoprefresh
     [_refreshControl endRefreshing];
     
-    _loadingFolder = NO;
-
     // Check Active Account
-    if (![metadataNet.account isEqualToString:appDelegate.activeAccount])
+    if (![metadataNet.account isEqualToString:metadataNet.account])
         return;
     
-    // Unauthorized
-    if (errorCode == kOCErrorServerUnauthorized) {
-        [appDelegate openLoginView:self loginType:loginModifyPasswordUser];
-    
-    } else {
-        [self tableViewReloadData];
+    // ERROR
+    if (errorCode != 0 || message != nil) {
         
-        [_ImageTitleHomeCryptoCloud setUserInteractionEnabled:YES];
-    
-        [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-    
-        [self reloadDatasource:metadataNet.serverUrl];
+        _loadingFolder = NO;
+        
+        // Check Active Account
+        if (![metadataNet.account isEqualToString:appDelegate.activeAccount])
+            return;
+        
+        // Unauthorized
+        if (errorCode == kOCErrorServerUnauthorized) {
+            [appDelegate openLoginView:self loginType:loginModifyPasswordUser];
+            
+        } else {
+            [self tableViewReloadData];
+            
+            [_ImageTitleHomeCryptoCloud setUserInteractionEnabled:YES];
+            
+            [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+            
+            [self reloadDatasource:metadataNet.serverUrl];
+        }
     }
-}
-
-- (void)readFolderSuccess:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas
-{
-    // stoprefresh
-    [_refreshControl endRefreshing];
-    
-    // Check Active Account
-    if (![metadataNet.account isEqualToString:metadataNet.account])
-        return;
     
     // save metadataFolder
     _metadataFolder = metadataFolder;
@@ -1968,7 +1966,7 @@
         metadataNet.selector = selectorSearchFiles;
         metadataNet.serverUrl = _serverUrl;
 
-        [self readFolderSuccess:metadataNet metadataFolder:nil metadatas:_searchResultMetadatas];
+        [self readFolderSuccessFailure:metadataNet metadataFolder:nil metadatas:_searchResultMetadatas message:nil errorCode:0];
     
         // Version >= 12
         if ([[NCManageDatabase sharedInstance] getServerVersion] >= 12) {
@@ -2000,7 +1998,7 @@
     if (errorCode == 0) {
     
         _searchResultMetadatas = [[NSMutableArray alloc] initWithArray:metadatas];
-        [self readFolderSuccess:metadataNet metadataFolder:nil metadatas:metadatas];
+        [self readFolderSuccessFailure:metadataNet metadataFolder:nil metadatas:metadatas message:nil errorCode:0];
         
     } else {
         

+ 36 - 34
iOSClient/Move/CCMove.m

@@ -305,44 +305,46 @@
 
 // MARK: - Read Folder
 
-- (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)readFolderSuccessFailure:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    _loadingFolder = NO;
-    self.move.enabled = NO;
-    
-    [self.tableView reloadData];
-    
-    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_",nil) message:message preferredStyle:UIAlertControllerStyleAlert];
-    
-    [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
-    }]];
-    
-    [self presentViewController:alertController animated:YES completion:nil];
-}
-
-- (void)readFolderSuccess:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas
-{
-    NSMutableArray *metadatasToInsertInDB = [NSMutableArray new];
- 
-    // Update directory etag
-    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];
-    
-    for (tableMetadata *metadata in metadatas) {
+    if (errorCode == 0 && message == nil) {
         
-        // Insert in Array
-        [metadatasToInsertInDB addObject:metadata];
-    }
+        NSMutableArray *metadatasToInsertInDB = [NSMutableArray new];
+     
+        // Update directory etag
+        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];
+        
+        for (tableMetadata *metadata in metadatas) {
+            
+            // Insert in Array
+            [metadatasToInsertInDB addObject:metadata];
+        }
 
-    // insert in Database
-    metadatas = [[NCManageDatabase sharedInstance] addMetadatas:metadatasToInsertInDB serverUrl:metadataNet.serverUrl];
+        // insert in Database
+        metadatas = [[NCManageDatabase sharedInstance] addMetadatas:metadatasToInsertInDB serverUrl:metadataNet.serverUrl];
 
-    // get auto upload folder
-    _autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
-    _autoUploadDirectory = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:activeUrl];
-    
-    _loadingFolder = NO;
-    
-    [self.tableView reloadData];
+        // get auto upload folder
+        _autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
+        _autoUploadDirectory = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:activeUrl];
+        
+        _loadingFolder = NO;
+        
+        [self.tableView reloadData];
+        
+    } else {
+        
+        _loadingFolder = NO;
+        self.move.enabled = NO;
+        
+        [self.tableView reloadData];
+        
+        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_",nil) message:message preferredStyle:UIAlertControllerStyleAlert];
+        
+        [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
+        }]];
+        
+        [self presentViewController:alertController animated:YES completion:nil];
+    }
 }
 
 - (void)readFolder

+ 1 - 2
iOSClient/Networking/OCNetworking.h

@@ -50,8 +50,7 @@
 
 - (void)downloadThumbnailSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
-- (void)readFolderSuccess:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas;
-- (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+- (void)readFolderSuccessFailure:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)createFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 

+ 11 - 11
iOSClient/Networking/OCNetworking.m

@@ -217,8 +217,8 @@
         // Test active account
         tableAccount *recordAccount = [[NCManageDatabase sharedInstance] getAccountActive];
         if (![recordAccount.account isEqualToString:_metadataNet.account]) {
-            if ([self.delegate respondsToSelector:@selector(readFolderFailure:message:errorCode:)])
-                [self.delegate readFolderFailure:_metadataNet message:NSLocalizedStringFromTable(@"_error_user_not_available_", @"Error", nil) errorCode:k_CCErrorUserNotAvailble];
+            if ([self.delegate respondsToSelector:@selector(readFolderSuccessFailure:metadataFolder:metadatas:message:errorCode:)])
+                [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:nil metadatas:nil message:NSLocalizedStringFromTable(@"_error_user_not_available_", @"Error", nil) errorCode:k_CCErrorUserNotAvailble];
             
             [self complete];
             return;
@@ -239,8 +239,8 @@
 
             dispatch_async(dispatch_get_main_queue(), ^{
                 
-                if ([self.delegate respondsToSelector:@selector(readFolderSuccess:metadataFolder:metadatas:)])
-                    [self.delegate readFolderSuccess:_metadataNet metadataFolder:nil metadatas:metadatas];
+                if ([self.delegate respondsToSelector:@selector(readFolderSuccessFailure:metadataFolder:metadatas:message:errorCode:)])
+                    [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:nil metadatas:metadatas message:nil errorCode:0];
             });
 
             [self complete];
@@ -284,8 +284,8 @@
                 if (!directoryIDFolder) {
                     dispatch_async(dispatch_get_main_queue(), ^{
                         
-                        if ([self.delegate respondsToSelector:@selector(readFolderSuccess:metadataFolder:metadatas:)])
-                            [self.delegate readFolderSuccess:_metadataNet metadataFolder:metadataFolder metadatas:metadatas];
+                        if ([self.delegate respondsToSelector:@selector(readFolderSuccessFailure:metadataFolder:metadatas:message:errorCode:)])
+                            [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:metadataFolder metadatas:metadatas message:nil errorCode:0];
                     });
                 }
                 metadataFolder = [CCUtility trasformedOCFileToCCMetadata:itemDtoFolder fileName:[_metadataNet.serverUrl lastPathComponent] serverUrl:serverUrlFolder directoryID:directoryIDFolder autoUploadFileName:autoUploadFileName autoUploadDirectory:autoUploadDirectory activeAccount:_metadataNet.account directoryUser:directoryUser isFolderEncrypted:isFolderEncrypted];
@@ -334,8 +334,8 @@
             
             dispatch_async(dispatch_get_main_queue(), ^{
                 
-                if ([self.delegate respondsToSelector:@selector(readFolderSuccess:metadataFolder:metadatas:)])
-                    [self.delegate readFolderSuccess:_metadataNet metadataFolder:metadataFolder metadatas:metadatas];
+                if ([self.delegate respondsToSelector:@selector(readFolderSuccessFailure:metadataFolder:metadatas:message:errorCode:)])
+                    [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:metadataFolder metadatas:metadatas message:nil errorCode:0];
             });
         });
         
@@ -348,12 +348,12 @@
             errorCode = error.code;
         
         // Error
-        if ([self.delegate respondsToSelector:@selector(readFolderFailure:message:errorCode:)]) {
+        if ([self.delegate respondsToSelector:@selector(readFolderSuccessFailure:metadataFolder:metadatas:message:errorCode:)]) {
             
             if (errorCode == 503)
-                [self.delegate readFolderFailure:_metadataNet message:NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil) errorCode:errorCode];
+                [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:nil metadatas:nil message:NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil) errorCode:errorCode];
             else
-                [self.delegate readFolderFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
+                [self.delegate readFolderSuccessFailure:_metadataNet metadataFolder:nil metadatas:nil message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
         // Request trusted certificated

+ 13 - 14
iOSClient/Synchronize/CCSynchronize.m

@@ -79,31 +79,30 @@
     NSLog(@"[LOG] %@ directory : %@", selector, serverUrl);
 }
 
-- (void)readFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+// MULTI THREAD
+- (void)readFolderSuccessFailure:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     // Check Active Account
     if (![metadataNet.account isEqualToString:appDelegate.activeAccount])
         return;
     
-    // Folder not present, remove it
-    if (errorCode == 404) {
+    // ERROR
+    if (errorCode != 0 || message != nil) {
+        
+        // Folder not present, remove it
+        if (errorCode == 404) {
+            
+            [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:metadataNet.serverUrl];
+            [appDelegate.activeMain reloadDatasource:metadataNet.serverUrl];
+        }
         
-        [[NCManageDatabase sharedInstance] deleteDirectoryAndSubDirectoryWithServerUrl:metadataNet.serverUrl];
-        [appDelegate.activeMain reloadDatasource:metadataNet.serverUrl];
+        return;
     }
-}
-
-// MULTI THREAD
-- (void)readFolderSuccess:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas
-{
+    
     // Add/update self Folder
     if (!metadataFolder || !metadatas || [metadatas count] == 0)
         return;
     
-    // Check Active Account
-    if (![metadataNet.account isEqualToString:appDelegate.activeAccount])
-        return;
-    
     // Add metadata and update etag Directory
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder];
     [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];