Browse Source

rename in actions

Marino Faggiana 8 years ago
parent
commit
b73256a4a2

+ 57 - 32
iOSClient/Actions/CCActions.swift

@@ -27,6 +27,9 @@ import Foundation
     
     func deleteFileOrFolderSuccess(_ metadataNet : CCMetadataNet)
     func deleteFileOrFolderFailure(_ metadataNet : CCMetadataNet, message : NSString, errorCode : NSInteger)
+    
+    func renameSuccess(_ metadataNet : CCMetadataNet)
+    func renameMoveFileOrFolderFailure(_ metadataNet : CCMetadataNet, message : NSString, errorCode : NSInteger)
 }
 
 class CCActions: NSObject {
@@ -165,19 +168,39 @@ class CCActions: NSObject {
                         
                         let dataFileEncrypted = try RNEncryptor.encryptData(dataFile as Data!, with: kRNCryptorAES256Settings, password: crypto.getKeyPasscode(metadata.uuid))
                         
+                        let fileUrl = Foundation.URL(string: "\(NSTemporaryDirectory())\(metadata.fileNameData)")!
                         
-                        
+                        do {
+                            
+                            try dataFileEncrypted.write(to: fileUrl, options: [])
+                            
+                            metadataNet.action = actionUploadOnlyPlist
+                            metadataNet.fileName = metadata.fileName
+                            metadataNet.selectorPost = selectorReadFolderForced
+                            metadataNet.serverUrl = serverUrl
+                            metadataNet.session = upload_session_foreground
+                            metadataNet.taskStatus = Int(taskStatusResume)
+
+                            if CCCoreData.isOfflineLocalFileID(metadata.fileID, activeAccount: appDelegate.activeAccount) {
+                                metadataNet.selectorPost = selectorAddOffline
+                            }
+                            
+                            appDelegate.addNetworkingOperationQueue(appDelegate.netQueue, delegate: self, metadataNet: metadataNet)
+
+                            // delete file in filesystem
+                            CCCoreData.deleteFile(metadata, serverUrl: serverUrl, directoryUser: appDelegate.directoryUser, typeCloud: appDelegate.typeCloud, activeAccount: appDelegate.activeAccount)
+                            
+                        } catch let error {
+                            print(error.localizedDescription)
+                        }
                         
                     } catch let error {
                         print(error.localizedDescription)
-                        return
                     }
 
                 } catch let error {
                     print(error.localizedDescription)
-                    return
                 }
-                
             }
  
         } else {
@@ -185,10 +208,12 @@ class CCActions: NSObject {
             // Plain
             
             metadataNet.action = actionMoveFileOrFolder
+            metadataNet.delegate = delegate
             metadataNet.fileID = metadata.fileID
             metadataNet.fileName = metadata.fileName
             metadataNet.fileNamePrint = metadata.fileNamePrint
             metadataNet.fileNameTo = fileName
+            metadataNet.metadata = metadata
             metadataNet.selector = selectorRename
             metadataNet.selectorPost = selectorReadFolderForced
             metadataNet.serverUrl = serverUrl
@@ -197,36 +222,36 @@ class CCActions: NSObject {
             appDelegate.addNetworkingOperationQueue(appDelegate.netQueue, delegate: self, metadataNet: metadataNet)
         }
     }
-}
-
-    /*
     
-    if (metadata.directory == NO) {
-    // cripto il file fileID in temp
-    
-    NSData *data = [NSData dataWithContentsOfFile:[NSString stringWithFormat:@"%@/%@", app.directoryUser, metadata.fileID]];
-    
-    if (data) data = [RNEncryptor encryptData:data withSettings:kRNCryptorAES256Settings password:[crypto getKeyPasscode:metadata.uuid] error:nil];
-    if (data) [data writeToFile:[NSTemporaryDirectory() stringByAppendingString:metadata.fileNameData] atomically:YES];
+
+    func renameSuccess(_ metadataNet : CCMetadataNet) {
+        
+        self.delegate = metadataNet.delegate as! CCActionsDelegate
+
+        if metadataNet.metadata.directory {
+            
+            let directory = CCUtility.stringAppendServerUrl(metadataNet.serverUrl, addServerUrl: metadataNet.fileName)
+            let directoryTo = CCUtility.stringAppendServerUrl(metadataNet.serverUrl, addServerUrl: metadataNet.fileNameTo)
+
+            CCCoreData.renameDirectory(directory, serverUrlTo: directory, activeAccount: directoryTo)
+            
+        } else {
+            
+            CCCoreData.renameLocalFile(withFileID: metadataNet.metadata.fileID, fileNameTo: metadataNet.fileNameTo, fileNamePrintTo: metadataNet.fileNameTo, activeAccount: appDelegate.activeAccount)
+        }
+        
+        delegate?.renameSuccess(metadataNet)
     }
     
-    CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
-    
-    metadataNet.action = actionUploadOnlyPlist;
-    metadataNet.fileName = metadata.fileName;
-    metadataNet.selectorPost = selectorReadFolderForced;
-    metadataNet.serverUrl = _localServerUrl;
-    metadataNet.session = upload_session_foreground;
-    metadataNet.taskStatus = taskStatusResume;
-    
-    if ([CCCoreData isOfflineLocalFileID:metadata.fileID activeAccount:app.activeAccount])
-    metadataNet.selectorPost = selectorAddOffline;
-    
-    [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
-    
-    // delete file in filesystem
-    [CCCoreData deleteFile:metadata serverUrl:_localServerUrl directoryUser:app.directoryUser typeCloud:app.typeCloud activeAccount:app.activeAccount];
-    }
+    func renameMoveFileOrFolderFailure(_ metadataNet : CCMetadataNet, message : NSString, errorCode : NSInteger) {
 
-    */
+        self.delegate = metadataNet.delegate as! CCActionsDelegate
+        
+        if message.length > 0 {
+            appDelegate.messageNotification("_move_", description: message as String, visible: true, delay:TimeInterval(dismissAfterSecond), type:TWMessageBarMessageType.error)
+        }
+        
+        delegate?.renameMoveFileOrFolderFailure(metadataNet, message: message, errorCode: errorCode)
+    }
+}
 

+ 10 - 10
iOSClient/Main/CCMain.m

@@ -1944,18 +1944,19 @@
 }
 
 #pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Rename =====
+#pragma mark ===== Rename / Move =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)renameSuccess:(CCMetadataNet *)metadataNet revTo:(NSString *)revTo
+- (void)renameSuccess:(CCMetadataNet *)metadataNet
 {
+    /*
     CCMetadata *metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", metadataNet.fileID, app.activeAccount] context:nil];
     
     if (metadata.directory == YES)
         [CCCoreData renameDirectory:[CCUtility stringAppendServerUrl:metadataNet.serverUrl addServerUrl:metadataNet.fileName] serverUrlTo:[CCUtility stringAppendServerUrl:metadataNet.serverUrl addServerUrl:metadataNet.fileNameTo] activeAccount:app.activeAccount];
     else
         [CCCoreData renameLocalFileWithFileID:metadata.fileID fileNameTo:metadataNet.fileNameTo fileNamePrintTo:metadataNet.fileNameTo activeAccount:app.activeAccount];
-    
+    */
     if ([metadataNet.selectorPost isEqualToString:selectorReadFolderForced])
         [self readFolderWithForced:YES];
 }
@@ -2059,19 +2060,18 @@
     }
 }
 
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Move =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)moveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)renameMoveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [_hud hideHud];
     
     if (message)
         [app messageNotification:@"_move_" description:message visible:YES delay:dismissAfterSecond type:TWMessageBarMessageTypeError];
     
-    [_selectedMetadatas removeAllObjects];
-    [_queueSelector removeAllObjects];
+    if ([metadataNet.selector isEqualToString:selectorMove]) {
+    
+        [_selectedMetadatas removeAllObjects];
+        [_queueSelector removeAllObjects];
+    }
 }
 
 - (void)moveSuccess:(CCMetadataNet *)metadataNet revTo:(NSString *)revTo

+ 2 - 2
iOSClient/Networking/OCNetworking.h

@@ -74,8 +74,8 @@
 - (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)moveSuccess:(CCMetadataNet *)metadataNet revTo:(NSString *)revTo;
-- (void)renameSuccess:(CCMetadataNet *)metadataNet revTo:(NSString *)revTo;
-- (void)moveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+- (void)renameSuccess:(CCMetadataNet *)metadataNet;
+- (void)renameMoveFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)readFileSuccess:(CCMetadataNet *)metadataNet metadata:(CCMetadata *)metadata;
 - (void)readFileFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;

+ 6 - 6
iOSClient/Networking/OCNetworking.m

@@ -558,8 +558,8 @@
     
     [communication moveFileOrFolder:origineURL toDestiny:destinazioneURL onCommunication:communication withForbiddenCharactersSupported:hasServerForbiddenCharactersSupport successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
         
-        if ([_metadataNet.selector isEqualToString:selectorRename] && [self.delegate respondsToSelector:@selector(renameSuccess:revTo:)])
-            [self.delegate renameSuccess:_metadataNet revTo:nil];
+        if ([_metadataNet.selector isEqualToString:selectorRename] && [self.delegate respondsToSelector:@selector(renameSuccess:)])
+            [self.delegate renameSuccess:_metadataNet];
         
         if ([_metadataNet.selector rangeOfString:selectorMove].location != NSNotFound && [self.delegate respondsToSelector:@selector(moveSuccess:revTo:)])
             [self.delegate moveSuccess:_metadataNet revTo:nil];
@@ -572,8 +572,8 @@
         if (errorCode == 0)
             errorCode = error.code;
         
-        if ([self.delegate respondsToSelector:@selector(moveFileOrFolderFailure:message:errorCode:)])
-            [self.delegate moveFileOrFolderFailure:_metadataNet message:[CCError manageErrorOC:response.statusCode error:error] errorCode:errorCode];
+        if ([self.delegate respondsToSelector:@selector(renameMoveFileOrFolderFailure:message:errorCode:)])
+            [self.delegate renameMoveFileOrFolderFailure:_metadataNet message:[CCError manageErrorOC:response.statusCode error:error] errorCode:errorCode];
         
         // Request trusted certificated
         if ([error code] == NSURLErrorServerCertificateUntrusted)
@@ -595,8 +595,8 @@
             message = NSLocalizedStringFromTable(@"_unknow_response_server_", @"Error", nil);
         }
         
-        if ([self.delegate respondsToSelector:@selector(moveFileOrFolderFailure:message:errorCode:)])
-            [self.delegate moveFileOrFolderFailure:_metadataNet message:message errorCode:error.code];
+        if ([self.delegate respondsToSelector:@selector(renameMoveFileOrFolderFailure:message:errorCode:)])
+            [self.delegate renameMoveFileOrFolderFailure:_metadataNet message:message errorCode:error.code];
 
         [self complete];
     }];