marinofaggiana 4 年之前
父節點
當前提交
251f38ad2e
共有 2 個文件被更改,包括 13 次插入11 次删除
  1. 3 3
      iOSClient/Database/NCManageDatabase.swift
  2. 10 8
      iOSClient/Networking/NCOperationQueue.swift

+ 3 - 3
iOSClient/Database/NCManageDatabase.swift

@@ -2016,13 +2016,13 @@ class NCManageDatabase: NSObject {
                     if let result = results.first(where: { $0.ocId == metadata.ocId }) {
                         // update
                         if result.status == k_metadataStatusNormal && result.etag != metadata.etag {
+                            metadatasChangeEtag.append(metadata)
                             realm.add(metadata, update: .all)
-                            metadatasChangeEtag.append(tableMetadata.init(value:metadata))
-                        } 
+                        }
                     } else {
                         // new
                         realm.add(metadata, update: .all)
-                        metadatasChangeEtag.append(tableMetadata.init(value:metadata))
+                        metadatasChangeEtag.append(metadata)
                     }
                 }
             }

+ 10 - 8
iOSClient/Networking/NCOperationQueue.swift

@@ -188,17 +188,19 @@ class NCOperationSynchronization: ConcurrentOperation {
             }
             
             NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: depth, showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, responseData, errorCode, errorDescription) in
-                if errorCode == 0 {
-                    NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: true, account: account) { (metadataFolder, metadatasFolder, metadatas) in
-                        if metadatas.count > 0 {
-                            let updatedMetadata = NCManageDatabase.sharedInstance.updateMetadatasWithPredicate(predicate, metadatas: metadatas)
-                            print("")
+                DispatchQueue.global().async {
+                    if errorCode == 0 {
+                        NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: true, account: account) { (metadataFolder, metadatasFolder, metadatas) in
+                            if metadatas.count > 0 {
+                                let updatedMetadata = NCManageDatabase.sharedInstance.updateMetadatasWithPredicate(predicate, metadatas: metadatas)
+                                print("")
+                            }
                         }
+                    } else if errorCode == 404 {
+                        NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
                     }
-                } else if errorCode == 404 {
-                    NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
+                    self.finish()
                 }
-                self.finish()
             }
         }
     }