瀏覽代碼

Improvements

Marino Faggiana 7 年之前
父節點
當前提交
94d7d71de9

+ 1 - 1
Share/ShareViewController.m

@@ -204,7 +204,7 @@
     self.navigationItem.hidesBackButton = YES;
 }
 
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
 {
     if (serverUrlTo)
         _serverUrl = serverUrlTo;

+ 2 - 2
iOSClient/Create/CCCreateCloud.swift

@@ -444,8 +444,8 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
 
     // MARK: - Action
 
-    func moveServerUrl(to serverUrlTo: String!, title: String!, selectedMetadatas: [Any]!) {
-        
+    func moveServerUrl(to serverUrlTo: String!, title: String!) {
+    
         self.serverUrl = serverUrlTo
         
         if title == nil {

+ 144 - 103
iOSClient/Main/CCMain.m

@@ -242,9 +242,6 @@
 {
     [super viewDidAppear:animated];
     
-    // Active Main
-    app.activeMain = self;
-    
     // Test viewDidLoad
     if (_isViewDidLoad) {
         
@@ -252,7 +249,7 @@
         
     } else {
         
-        if (app.activeAccount.length > 0) {
+        if (app.activeAccount.length > 0 && app.activeMain != self) {
             
             // Load Datasource
             [self reloadDatasource:_serverUrl];
@@ -261,6 +258,9 @@
             [self readFileReloadFolder];
         }
     }
+    
+    // Active Main
+    app.activeMain = self;
 
     // Title
     [self setTitle];
@@ -2223,28 +2223,31 @@
     [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_delete_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
 }
 
-- (void)deleteSelectionFile
+- (void)deleteFile
 {
     [_queueSelector removeAllObjects];
     
-    _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
-    
-    if ([_selectedFileIDsMetadatas count] > 0) {
+    if (self.tableView.editing) {
+        
+        // ON : Editing Mode
+        
+        if ([_selectedFileIDsMetadatas count] > 0) {
+        
+            _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
+            NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
+            [self deleteFileOrFolder:[metadatas objectAtIndex:0] numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
+        }
+        
+    } else {
         
-        NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
-        [self deleteFileOrFolder:[metadatas objectAtIndex:0] numFile:[_selectedFileIDsMetadatas count] ofFile:_numSelectedFileIDsMetadatas];
+        // OFF : Editing Mode
+        
+        [_selectedFileIDsMetadatas removeAllObjects];
+        _numSelectedFileIDsMetadatas = 1;
+        [self deleteFileOrFolder:_metadata numFile:1 ofFile:_numSelectedFileIDsMetadatas];
     }
 }
 
-- (void)deleteFile
-{
-    [_queueSelector removeAllObjects];
-    [_selectedFileIDsMetadatas removeAllObjects];
-    _numSelectedFileIDsMetadatas = 1;
-    
-    [self deleteFileOrFolder:_metadata numFile:1 ofFile:_numSelectedFileIDsMetadatas];
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Rename / Move =====
 #pragma --------------------------------------------------------------------------------------------
@@ -2298,7 +2301,16 @@
             [app messageNotification:@"_move_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
         
         [_selectedMetadatas removeAllObjects];
-        [_queueSelector removeAllObjects];
+        
+        // End Select Table View
+        [self tableViewSelect:NO];
+        
+        // reload Datasource
+        if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
+            [self readFolder:metadataNet.serverUrl];
+        else
+            [self reloadDatasource];
+
     }
 }
 
@@ -2339,111 +2351,141 @@
             (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:newDirectory permissions:@""];
         }
     
-        // reload Datasource
-        if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
-            [self readFolder:metadataNet.serverUrl];
-        else
-            [self reloadDatasource];
-
-        // Next file
-        [_selectedMetadatas removeObjectAtIndex:0];
-        [self performSelectorOnMainThread:@selector(moveFileOrFolder:) withObject:metadataNet.serverUrlTo waitUntilDone:NO];
+        // next
+        [_selectedFileIDsMetadatas removeObjectForKey:metadataNet.fileID];
+        
+        if ([_selectedFileIDsMetadatas count] > 0) {
+        
+            NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
+            
+            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+            
+        } else {
+            
+            // End Select Table View
+            [self tableViewSelect:NO];
+            
+            // reload Datasource
+            if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced] || _isSearchMode)
+                [self readFolder:metadataNet.serverUrl];
+            else
+                [self reloadDatasource];
+        }
     }
 }
 
-- (void)moveFileOrFolder:(NSString *)serverUrlTo
+- (void)moveFileOrFolderMetadata:(NSArray *)arguments
 {
-    if ([_selectedMetadatas count] > 0) {
-        
-        tableMetadata *metadata = [_selectedMetadatas objectAtIndex:0];
-        
-        // Plain
-        if (metadata.cryptated == NO) {
+    tableMetadata *metadata = [arguments objectAtIndex:0];
+    NSString *serverUrlTo = [arguments objectAtIndex:1];
+    NSInteger numFile = [[arguments objectAtIndex:2] integerValue];
+    NSInteger ofFile = [[arguments objectAtIndex:3] integerValue];
+    
+    // Plain
+    if (metadata.cryptated == NO) {
             
-            OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:app.activeUser withPassword:app.activePassword withUrl:app.activeUrl isCryptoCloudMode:NO];
+        OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:app.activeUser withPassword:app.activePassword withUrl:app.activeUrl isCryptoCloudMode:NO];
             
-            NSError *error = [ocNetworking readFileSync:[NSString stringWithFormat:@"%@/%@", serverUrlTo, metadata.fileName]];
+        NSError *error = [ocNetworking readFileSync:[NSString stringWithFormat:@"%@/%@", serverUrlTo, metadata.fileName]];
             
-            if(!error) {
+        if(!error) {
                 
-                dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
+            dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
                     
-                    UIAlertController * alert= [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_", nil) message:NSLocalizedString(@"_file_already_exists_", nil) preferredStyle:UIAlertControllerStyleAlert];
-                    UIAlertAction* ok = [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
-                    }];
-                    [alert addAction:ok];
-                    [self presentViewController:alert animated:YES completion:nil];
-                });
-                
-                return;
-            }
+                UIAlertController * alert= [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_", nil) message:NSLocalizedString(@"_file_already_exists_", nil) preferredStyle:UIAlertControllerStyleAlert];
+                UIAlertAction* ok = [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
+                }];
+                [alert addAction:ok];
+                [self presentViewController:alert animated:YES completion:nil];
+            });
             
-            CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
+            // End Select Table View
+            [self tableViewSelect:NO];
             
-            metadataNet.action = actionMoveFileOrFolder;
-            metadataNet.directory = metadata.directory;
-            metadataNet.fileID = metadata.fileID;
-            metadataNet.directoryID = metadata.directoryID;
-            metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
-            metadataNet.fileName = metadata.fileName;
-            metadataNet.fileNamePrint = metadataNet.fileNamePrint;
-            metadataNet.fileNameTo = metadata.fileName;
-            metadataNet.etag = metadata.etag;
-            metadataNet.selector = selectorMove;
-            metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
-            metadataNet.serverUrlTo = serverUrlTo;
-            
-            [_queueSelector addObject:metadataNet.selector];
+            // reload Datasource
+            [self readFileReloadFolder];
             
-            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+            return;
         }
+            
+        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
         
-        // cyptated
-        if (metadata.cryptated == YES) {
+        metadataNet.action = actionMoveFileOrFolder;
+        metadataNet.directory = metadata.directory;
+        metadataNet.fileID = metadata.fileID;
+        metadataNet.directoryID = metadata.directoryID;
+        metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
+        metadataNet.fileName = metadata.fileName;
+        metadataNet.fileNamePrint = metadataNet.fileNamePrint;
+        metadataNet.fileNameTo = metadata.fileName;
+        metadataNet.etag = metadata.etag;
+        metadataNet.selector = selectorMove;
+        metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
+        metadataNet.serverUrlTo = serverUrlTo;
             
-            CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
+        [_queueSelector addObject:metadataNet.selector];
             
-            metadataNet.action = actionMoveFileOrFolder;
-            metadataNet.directory = metadata.directory;
-            metadataNet.fileID = metadata.fileID;
-            metadataNet.directoryID = metadata.directoryID;
-            metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
-            metadataNet.fileNamePrint = metadata.fileNamePrint;
-            metadataNet.etag = metadata.etag;
-            metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
-            metadataNet.serverUrlTo = serverUrlTo;
-            
-            // data
-            metadataNet.fileName = metadata.fileNameData;
-            metadataNet.fileNameTo = metadata.fileNameData;
-            metadataNet.selector = selectorMoveCrypto;
-            
-            [_queueSelector addObject:metadataNet.selector];
-            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+    }
+        
+    // cyptated
+    if (metadata.cryptated == YES) {
             
-            // plist
-            metadataNet.fileName = metadata.fileName;
-            metadataNet.fileNameTo = metadata.fileName;
-            metadataNet.selector = selectorMovePlist;
+        CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
             
-            [_queueSelector addObject:metadataNet.selector];
-            [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
-        }
-        
-        [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_move_file_n_", nil), _numSelectedMetadatas - [_selectedMetadatas count] + 1, _numSelectedMetadatas] mode:MBProgressHUDModeIndeterminate color:nil];
+        metadataNet.action = actionMoveFileOrFolder;
+        metadataNet.directory = metadata.directory;
+        metadataNet.fileID = metadata.fileID;
+        metadataNet.directoryID = metadata.directoryID;
+        metadataNet.directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
+        metadataNet.fileNamePrint = metadata.fileNamePrint;
+        metadataNet.etag = metadata.etag;
+        metadataNet.serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
+        metadataNet.serverUrlTo = serverUrlTo;
+            
+        // data
+        metadataNet.fileName = metadata.fileNameData;
+        metadataNet.fileNameTo = metadata.fileNameData;
+        metadataNet.selector = selectorMoveCrypto;
+            
+        [_queueSelector addObject:metadataNet.selector];
+        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
+            
+        // plist
+        metadataNet.fileName = metadata.fileName;
+        metadataNet.fileNameTo = metadata.fileName;
+        metadataNet.selector = selectorMovePlist;
+            
+        [_queueSelector addObject:metadataNet.selector];
+        [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
     }
+        
+    [_hud visibleHudTitle:[NSString stringWithFormat:NSLocalizedString(@"_move_file_n_", nil), ofFile - numFile + 1, ofFile] mode:MBProgressHUDModeIndeterminate color:nil];
 }
 
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
 {
-    [_selectedMetadatas removeAllObjects];
     [_queueSelector removeAllObjects];
     
-    _selectedMetadatas = [[NSMutableArray alloc] initWithArray:selectedMetadatas];
-    _numSelectedMetadatas = [_selectedMetadatas count];
-    
-    [self performSelectorOnMainThread:@selector(moveFileOrFolder:) withObject:serverUrlTo waitUntilDone:NO];
-    [self tableViewSelect:NO];
+    if (self.tableView.editing) {
+        
+        // ON : Editing Mode
+        if ([_selectedFileIDsMetadatas count] > 0) {
+            
+            _numSelectedFileIDsMetadatas = [_selectedFileIDsMetadatas count];
+            NSArray *metadatas = [_selectedFileIDsMetadatas allValues];
+            
+            [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[[metadatas objectAtIndex:0], serverUrlTo, [NSNumber numberWithInteger:[_selectedFileIDsMetadatas count]], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+        }
+        
+    } else {
+        
+        // OFF : Editing Mode
+        [_selectedFileIDsMetadatas removeAllObjects];
+        _numSelectedFileIDsMetadatas = 1;
+        
+        [self performSelectorOnMainThread:@selector(moveFileOrFolderMetadata:) withObject:@[_metadata, serverUrlTo, [NSNumber numberWithInteger:1], [NSNumber numberWithInteger:_numSelectedFileIDsMetadatas]] waitUntilDone:NO];
+    }
 }
 
 - (void)moveOpenWindow:(NSArray *)indexPaths
@@ -2454,7 +2496,6 @@
 
     viewController.delegate = self;
     viewController.move.title = NSLocalizedString(@"_move_", nil);
-    viewController.selectedMetadatas = [self getMetadatasFromSelectedRows:indexPaths];
     viewController.tintColor = [NCBrandColor sharedInstance].navigationBarText;
     viewController.barTintColor = [NCBrandColor sharedInstance].brand;
     viewController.tintColorTitle = [NCBrandColor sharedInstance].navigationBarText;
@@ -3638,7 +3679,7 @@
     // ITEM DELETE ------------------------------------------------------------------------------------------------------
     
     app.deleteItem = [[REMenuItem alloc] initWithTitle:NSLocalizedString(@"_delete_selected_files_", nil) subtitle:@"" image:[CCGraphics changeThemingColorImage:[UIImage imageNamed:@"deleteSelectedFiles"] color:[NCBrandColor sharedInstance].brand] highlightedImage:nil action:^(REMenuItem *item) {
-            [self deleteSelectionFile];
+            [self deleteFile];
     }];
     
     // ITEM MOVE ------------------------------------------------------------------------------------------------------

+ 1 - 2
iOSClient/Move/CCMove.h

@@ -37,7 +37,6 @@
 
 @property (nonatomic, weak) id <CCMoveDelegate> delegate;
 @property (nonatomic, strong) NSOperationQueue *networkingOperationQueue;
-@property (nonatomic, strong) NSArray *selectedMetadatas;
 @property BOOL onlyClearDirectory;
 
 @property (nonatomic, strong) NSString *serverUrl;
@@ -60,6 +59,6 @@
 
 @protocol CCMoveDelegate <NSObject>
 
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas;
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title;
 
 @end

+ 1 - 5
iOSClient/Move/CCMove.m

@@ -143,7 +143,7 @@
 {
     [_networkingOperationQueue cancelAllOperations];
     
-    [self.delegate moveServerUrlTo:_serverUrl title:self.passMetadata.fileNamePrint selectedMetadatas:self.selectedMetadatas];
+    [self.delegate moveServerUrlTo:_serverUrl title:self.passMetadata.fileNamePrint];
         
     [self dismissViewControllerAnimated:YES completion:nil];
 }
@@ -523,11 +523,7 @@
     
         viewController.delegate = self.delegate;
         viewController.onlyClearDirectory = self.onlyClearDirectory;
-        viewController.selectedMetadatas = self.selectedMetadatas;
         viewController.move.title = self.move.title;
-        //viewController.barTintColor = self.barTintColor;
-        //viewController.tintColor = self.tintColor;
-        //viewController.tintColorTitle = self.tintColorTitle;
         viewController.networkingOperationQueue = _networkingOperationQueue;
 
         viewController.passMetadata = metadata;

+ 1 - 2
iOSClient/QuickActions/CCQuickActions.m

@@ -174,7 +174,7 @@
 #pragma mark ===== Move =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
 {    
     [_mainVC uploadFileAsset:_assets serverUrl:serverUrlTo cryptated:_cryptated useSubFolder:NO session:k_upload_session];
 }
@@ -191,7 +191,6 @@
         _move.move.title = NSLocalizedString(@"_upload_file_", nil);
 
     _move.delegate = self;
-    _move.selectedMetadatas = nil;
     _move.tintColor = [NCBrandColor sharedInstance].navigationBarText;
     _move.barTintColor = [NCBrandColor sharedInstance].brand;
     _move.tintColorTitle = [NCBrandColor sharedInstance].navigationBarText;

+ 1 - 1
iOSClient/UploadFromOtherUpp/CCUploadFromOtherUpp.m

@@ -151,7 +151,7 @@
 #pragma mark == IBAction ==
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title selectedMetadatas:(NSArray *)selectedMetadatas
+- (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
 {
     if (serverUrlTo) {
         serverUrlLocal = serverUrlTo;