marinofaggiana 4 年之前
父節點
當前提交
4badbfcb4a
共有 2 個文件被更改,包括 9 次插入5 次删除
  1. 1 1
      iOSClient/Database/NCManageDatabase.swift
  2. 8 4
      iOSClient/Networking/NCNetworking.swift

+ 1 - 1
iOSClient/Database/NCManageDatabase.swift

@@ -2007,7 +2007,7 @@ class NCManageDatabase: NSObject {
                 let results = realm.objects(tableMetadata.self).filter("account == %@ AND serverUrl == %@", account, serverUrl)
                 // DELETE
                 for result in results {
-                    if results.firstIndex(where: { $0.ocId == result.ocId }) == nil {
+                    if metadatas.firstIndex(where: { $0.ocId == result.ocId }) == nil {
                         realm.delete(result)
                     }
                 }

+ 8 - 4
iOSClient/Networking/NCNetworking.swift

@@ -588,11 +588,15 @@ import Alamofire
                        NCManageDatabase.sharedInstance.addDirectory(encrypted: metadata.e2eEncrypted, favorite: metadata.favorite, ocId: metadata.ocId, fileId: metadata.fileId, etag: nil, permissions: metadata.permissions, serverUrl: serverUrl, richWorkspace: metadata.richWorkspace, account: account)
                     }
                     
-                    NCManageDatabase.sharedInstance.updateMetadatasServerUrl(serverUrl, account: account, metadatas: metadatas)
-                    let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl))
+                    DispatchQueue.global().async {
+                        NCManageDatabase.sharedInstance.updateMetadatasServerUrl(serverUrl, account: account, metadatas: metadatas)
+                        DispatchQueue.main.async {
+                            let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl))
 
-                    completion(account, metadataFolder, metadatas, errorCode, "")
-                    NotificationCenter.default.postOnMainThread(name: k_notificationCenter_reloadDataSource, userInfo: ["serverUrl":serverUrl])
+                            completion(account, metadataFolder, metadatas, errorCode, "")
+                            NotificationCenter.default.postOnMainThread(name: k_notificationCenter_reloadDataSource, userInfo: ["serverUrl":serverUrl])
+                        }
+                    }
                 }
             
             } else {