marinofaggiana 4 years ago
parent
commit
d17eb80dcc
2 changed files with 27 additions and 35 deletions
  1. 7 7
      iOSClient/Networking/NCNetworking.swift
  2. 20 28
      iOSClient/Networking/NCOperationQueue.swift

+ 7 - 7
iOSClient/Networking/NCNetworking.swift

@@ -795,14 +795,14 @@ import Queuer
             if errorCode == 0 {
                 NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files, useMetadataFolder: false, account: account) { (_, _, metadatas) in
                     let metadatasResult = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND favorite == true", account))
-                    let metadatasChanged = NCManageDatabase.sharedInstance.updateMetadatas(metadatas, metadatasResult: metadatasResult, withVerifyLocal: true)
+                    let metadatasChanged = NCManageDatabase.sharedInstance.updateMetadatas(metadatas, metadatasResult: metadatasResult, withVerifyLocal: CCUtility.getFavoriteOffline())
                     #if !EXTENSION
-                    if CCUtility.getFavoriteOffline() {
-                        for metadata in metadatasChanged {
-                            if !metadata.directory {
-                                NCOperationQueue.shared.download(metadata: metadata, selector: selectorSave, setFavorite: false)
-                            }
-                        }
+                    for metadata in metadatasChanged {
+                       if CCUtility.getFavoriteOffline() {
+                           NCOperationQueue.shared.synchronizationMetadata(metadata, selector: selectorDownloadSynchronize)
+                       } else {
+                           NCOperationQueue.shared.synchronizationMetadata(metadata, selector: selectorSynchronize)
+                       }
                     }
                     #endif
                     completion(account, metadatas, errorCode, errorDescription)

+ 20 - 28
iOSClient/Networking/NCOperationQueue.swift

@@ -163,43 +163,35 @@ class NCOperationSynchronization: ConcurrentOperation {
         if isCancelled {
             self.finish()
         } else {
-            var depth: String = ""
-            var serverUrlFileName: String = ""
-            var predicate = NSPredicate()
             var download = false
-            var useMetadataFolder = false
-            if metadata.directory {
-                depth = "infinity"
-                useMetadataFolder = true
-                serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
-                predicate = NSPredicate(format: "account == %@ AND serverUrl BEGINSWITH %@ AND status == %d", metadata.account, serverUrlFileName, k_metadataStatusNormal)
-            } else {
-                depth = "0"
-                useMetadataFolder = false
-                serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
-                predicate = NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileName == %@ AND status == %d", metadata.account, metadata.serverUrl, metadata.fileName, k_metadataStatusNormal)
-            }
             if selector == selectorDownloadSynchronize {
                 download = true
             }
-            
-            NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: depth, showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, responseData, errorCode, errorDescription) 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 {
-                                        NCOperationQueue.shared.download(metadata: metadata, selector: selectorSave, setFavorite: false)
+            if metadata.directory {
+                let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
+                NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: "infinity", 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 metadatasResult = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl BEGINSWITH %@ AND status == %d", account, serverUrlFileName, k_metadataStatusNormal))
+                                let metadatasChanged = NCManageDatabase.sharedInstance.updateMetadatas(metadatas, metadatasResult: metadatasResult, withVerifyLocal: download)
+                                if download {
+                                    for metadata in metadatasChanged {
+                                        if metadata.directory == false {
+                                            NCOperationQueue.shared.download(metadata: metadata, selector: selectorSave, setFavorite: false)
+                                        }
                                     }
                                 }
                             }
                         }
+                    } else if errorCode == 404 && self.metadata.directory {
+                        NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
                     }
-                } else if errorCode == 404 && self.metadata.directory {
-                    NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.metadata.serverUrl, account: self.metadata.account)
+                    self.finish()
+                }
+            } else {
+                if download {
+                    NCOperationQueue.shared.download(metadata: metadata, selector: selectorSave, setFavorite: false)
                 }
                 self.finish()
             }