marinofaggiana 4 years ago
parent
commit
542234e590

+ 2 - 2
File Provider Extension/FileProviderExtension+Actions.swift

@@ -140,7 +140,7 @@ extension FileProviderExtension {
                     NCManageDatabase.sharedInstance.renameDirectory(ocId: ocIdFrom, serverUrl: serverUrlTo)                    
                 }
                 
-                _ = NCManageDatabase.sharedInstance.moveMetadata(ocId: ocIdFrom, serverUrlTo: serverUrlTo)
+                NCManageDatabase.sharedInstance.moveMetadata(ocId: ocIdFrom, serverUrlTo: serverUrlTo, freeze: true)
                 
                 guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdFrom)) else {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
@@ -177,7 +177,7 @@ extension FileProviderExtension {
             if errorCode == 0 {
                 
                 // Rename metadata
-                guard let metadata = NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: itemName, ocId: metadata.ocId) else {
+                guard let metadata = NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: itemName, ocId: metadata.ocId, freeze: false) else {
                     completionHandler(nil, NSFileProviderError(.noSuchItem))
                     return
                 }

+ 2 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -1920,7 +1920,7 @@ class NCManageDatabase: NSObject {
     }
     
     @discardableResult
-    @objc func moveMetadata(ocId: String, serverUrlTo: String, freeze: Bool = true) -> tableMetadata? {
+    @objc func moveMetadata(ocId: String, serverUrlTo: String, freeze: Bool) -> tableMetadata? {
         
         var result: tableMetadata?
         let realm = try! Realm()
@@ -1962,7 +1962,7 @@ class NCManageDatabase: NSObject {
     }
     
     @discardableResult
-    @objc func renameMetadata(fileNameTo: String, ocId: String, freeze: Bool = true) -> tableMetadata? {
+    @objc func renameMetadata(fileNameTo: String, ocId: String, freeze: Bool) -> tableMetadata? {
         
         var result: tableMetadata?
         let realm = try! Realm()

+ 10 - 9
iOSClient/Networking/NCNetworking.swift

@@ -393,16 +393,16 @@ import Alamofire
             delegate?.uploadComplete?(fileName: fileName, serverUrl: serverUrl, ocId: ocId, etag: etag, date: date, size:size, description: description, task: task, errorCode: errorCode, errorDescription: errorDescription)
         } else {
             
-            guard var metadata = NCManageDatabase.sharedInstance.getMetadataInSessionFromFileName(fileName, serverUrl: serverUrl, taskIdentifier: task.taskIdentifier, freeze: false) else {
-                return
-            }
-            
+            guard let metadata = NCManageDatabase.sharedInstance.getMetadataInSessionFromFileName(fileName, serverUrl: serverUrl, taskIdentifier: task.taskIdentifier, freeze: true) else { return }
             guard let tableAccount = NCManageDatabase.sharedInstance.getAccount(predicate: NSPredicate(format: "account == %@", metadata.account)) else { return }
             
             if errorCode == 0 && ocId != nil {
                 
+                guard let metadataTemp = NCManageDatabase.sharedInstance.getMetadataInSessionFromFileName(fileName, serverUrl: serverUrl, taskIdentifier: task.taskIdentifier, freeze: false) else { return }
+                let metadata = tableMetadata.init(value: metadataTemp)
+                let ocIdTemp = metadata.ocId
+                
                 CCUtility.moveFile(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId), toPath:  CCUtility.getDirectoryProviderStorageOcId(ocId))
-                NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
                     
                 metadata.uploadDate = date ?? NSDate()
                 metadata.etag = etag ?? ""
@@ -413,13 +413,14 @@ import Alamofire
                 metadata.sessionTaskIdentifier = 0
                 metadata.status = Int(k_metadataStatusNormal)
                 
+                NCManageDatabase.sharedInstance.addMetadata(metadata)
+                NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp))
+                
                 // Delete Asset on Photos album
                 if tableAccount.autoUploadDeleteAssetLocalIdentifier && metadata.assetLocalIdentifier != "" && metadata.sessionSelector == selectorUploadAutoUpload {
                         metadata.deleteAssetLocalIdentifier = true;
                 }
                 
-                NCManageDatabase.sharedInstance.addMetadata(metadata)
-
                 if CCUtility.getDisableLocalCacheAfterUpload() {
                     CCUtility.removeFile(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId))
                 } else {
@@ -876,7 +877,7 @@ import Alamofire
                     
             if errorCode == 0 {
                         
-                NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: fileNameNew, ocId: metadata.ocId)
+                NCManageDatabase.sharedInstance.renameMetadata(fileNameTo: fileNameNew, ocId: metadata.ocId, freeze: true)
                         
                 if metadata.directory {
                             
@@ -943,7 +944,7 @@ import Alamofire
                     NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName), account: account)
                 }
                 
-                if let metadataMove = NCManageDatabase.sharedInstance.moveMetadata(ocId: metadata.ocId, serverUrlTo: serverUrlTo) {
+                if let metadataMove = NCManageDatabase.sharedInstance.moveMetadata(ocId: metadata.ocId, serverUrlTo: serverUrlTo, freeze: true) {
                     metadataNew = metadataMove
                 }