marinofaggiana il y a 4 ans
Parent
commit
f61edb2bb1

+ 28 - 26
iOSClient/Database/NCManageDatabase.swift

@@ -2031,35 +2031,37 @@ class NCManageDatabase: NSObject {
     
     func setMetadataSession(ocId: String, session: String? = nil, sessionError: String? = nil, sessionSelector: String? = nil, sessionTaskIdentifier: Int? = nil, status: Int? = nil, etag: String? = nil, setFavorite: Bool = false) {
         
-        let realm = try! Realm()
-        do {
-            try realm.write {
-                if let result = realm.objects(tableMetadata.self).filter("ocId == %@", ocId).first {
-                    if let session = session {
-                        result.session = session
-                    }
-                    if let sessionError = sessionError {
-                        result.sessionError = sessionError
-                    }
-                    if let sessionSelector = sessionSelector {
-                        result.sessionSelector = sessionSelector
-                    }
-                    if let sessionTaskIdentifier = sessionTaskIdentifier {
-                        result.sessionTaskIdentifier = sessionTaskIdentifier
-                    }
-                    if let status = status {
-                        result.status = status
-                    }
-                    if let etag = etag {
-                        result.etag = etag
-                    }
-                    if setFavorite {
-                        result.favorite = true
+        DispatchQueue.main.async {
+            let realm = try! Realm()
+            do {
+                try realm.write {
+                    if let result = realm.objects(tableMetadata.self).filter("ocId == %@", ocId).first {
+                        if let session = session {
+                            result.session = session
+                        }
+                        if let sessionError = sessionError {
+                            result.sessionError = sessionError
+                        }
+                        if let sessionSelector = sessionSelector {
+                            result.sessionSelector = sessionSelector
+                        }
+                        if let sessionTaskIdentifier = sessionTaskIdentifier {
+                            result.sessionTaskIdentifier = sessionTaskIdentifier
+                        }
+                        if let status = status {
+                            result.status = status
+                        }
+                        if let etag = etag {
+                            result.etag = etag
+                        }
+                        if setFavorite {
+                            result.favorite = true
+                        }
                     }
                 }
+            } catch let error {
+                print("[LOG] Could not write to database: ", error)
             }
-        } catch let error {
-            print("[LOG] Could not write to database: ", error)
         }
     }
     

+ 12 - 14
iOSClient/Networking/NCOperationQueue.swift

@@ -184,26 +184,24 @@ class NCOperationSynchronization: ConcurrentOperation {
             }
             
             NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: depth, showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, responseData, errorCode, errorDescription) in
-                DispatchQueue.global().async {
-                    if errorCode == 0 {
-                        NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: useMetadataFolder, account: account) { (metadataFolder, metadatasFolder, metadatas) in
-                            if metadatas.count > 0 {
-                                let metadatasResult = NCManageDatabase.sharedInstance.getMetadatas(predicate: predicate)
-                                let metadatasChanged = NCManageDatabase.sharedInstance.updateMetadatas(metadatas, metadatasResult: metadatasResult, withVerifyLocal: download)
-                                if download {
-                                    for metadata in metadatasChanged {
-                                        if metadata.directory == false {
-                                            NCNetworking.shared.download(metadata: metadata, selector: selectorDownloadSynchronize) { (_) in }
-                                        }
+                if errorCode == 0 {
+                    NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: useMetadataFolder, account: account) { (metadataFolder, metadatasFolder, metadatas) in
+                        if metadatas.count > 0 {
+                            let metadatasResult = NCManageDatabase.sharedInstance.getMetadatas(predicate: predicate)
+                            let metadatasChanged = NCManageDatabase.sharedInstance.updateMetadatas(metadatas, metadatasResult: metadatasResult, withVerifyLocal: download)
+                            if download {
+                                for metadata in metadatasChanged {
+                                    if metadata.directory == false {
+                                        NCNetworking.shared.download(metadata: metadata, selector: selectorDownloadSynchronize) { (_) in }
                                     }
                                 }
                             }
                         }
-                    } else if errorCode == 404 && self.metadata.directory {
-                        NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
                     }
-                    self.finish()
+                } else if errorCode == 404 && self.metadata.directory {
+                    NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
                 }
+                self.finish()
             }
         }
     }