Browse Source

test rename e2e file

Marino Faggiana 7 years ago
parent
commit
4b1c6f09f1
2 changed files with 55 additions and 16 deletions
  1. 49 14
      iOSClient/Database/NCManageDatabase.swift
  2. 6 2
      iOSClient/Main/CCMain.m

+ 49 - 14
iOSClient/Database/NCManageDatabase.swift

@@ -1125,27 +1125,30 @@ class NCManageDatabase: NSObject {
         
         let realm = try! Realm()
         
-        var update = false
+        realm.beginWrite()
+
+        guard let result = realm.objects(tableE2eEncryption.self).filter("account = %@ AND serverUrl = %@ AND fileNameIdentifier = %@", tableAccount.account, serverUrl, fileNameIdentifier).first else {
+            realm.cancelWrite()
+            return false
+        }
+        
+        let object = tableE2eEncryption.init(value: result)
         
+        realm.delete(result)
+
+        object.fileName = newFileName
+        object.fileNamePath = newFileNamePath
+
+        realm.add(object)
+
         do {
-            try realm.write {
-                
-                guard let result = realm.objects(tableE2eEncryption.self).filter("account = %@ AND serverUrl = %@ AND fileNameIdentifier = %@", tableAccount.account, serverUrl, fileNameIdentifier).first else {
-                    realm.cancelWrite()
-                    return
-                }
-                
-                result.fileName = newFileName
-                result.fileNamePath = newFileNamePath
-                
-                update = true
-            }
+            try realm.commitWrite()
         } catch let error {
             print("[LOG] Could not write to database: ", error)
             return false
         }
         
-        return update
+        return true
     }
     
     //MARK: -
@@ -1578,6 +1581,38 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @objc func setMetadataFileNameView(directoryID: String, fileName: String, newFileNameView: String) {
+        
+        guard let tableAccount = self.getAccountActive() else {
+            return
+        }
+        
+        let realm = try! Realm()
+        
+        realm.beginWrite()
+
+        guard let result = realm.objects(tableMetadata.self).filter("account = %@ AND directoryID = %@ AND fileName = %@", tableAccount.account, directoryID, fileName).first else {
+            realm.cancelWrite()
+            return
+        }
+                
+        result.fileNameView = newFileNameView
+        
+        let directoryID : String? = result.directoryID
+    
+        do {
+            try realm.commitWrite()
+        } catch let error {
+            print("[LOG] Could not write to database: ", error)
+            return
+        }
+    
+        if let directoryID = directoryID {
+            // Update Date Read Directory
+            self.setDateReadDirectory(directoryID: directoryID)
+        }
+    }
+    
     @objc func setMetadataStatus(fileID: String, status: Double) {
         
         guard let tableAccount = self.getAccountActive() else {

+ 6 - 2
iOSClient/Main/CCMain.m

@@ -2108,8 +2108,12 @@
         if ([[NCManageDatabase sharedInstance] renameFileE2eEncryptionWithServerUrl:self.serverUrl fileNameIdentifier:metadata.fileName newFileName:fileName newFileNamePath:[CCUtility returnFileNamePathFromFileName:fileName serverUrl:self.serverUrl activeUrl:app.activeUrl]]) {
             
             dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
-                BOOL result = [[CCNetworking sharedNetworking] SendEndToEndMetadataOnServerUrl:self.serverUrl];
-                if (!result) {
+                if ([[CCNetworking sharedNetworking] SendEndToEndMetadataOnServerUrl:self.serverUrl]) {
+                    dispatch_async(dispatch_get_main_queue(), ^{
+                        [[NCManageDatabase sharedInstance] setMetadataFileNameViewWithDirectoryID:metadata.directoryID fileName:metadata.fileName newFileNameView:fileName];
+                        [self reloadDatasource];
+                    });
+                } else {
                     // Restore previuos fileName on DB
                     (void)[[NCManageDatabase sharedInstance] renameFileE2eEncryptionWithServerUrl:self.serverUrl fileNameIdentifier:metadata.fileName newFileName:metadata.fileNameView newFileNamePath:[CCUtility returnFileNamePathFromFileName:metadata.fileNameView serverUrl:self.serverUrl activeUrl:app.activeUrl]];
                     [app messageNotification:@"_error_" description:@"Error to send metadata" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:0];