Browse Source

coding - coherence

marinofaggiana 4 years ago
parent
commit
839af77268
1 changed files with 18 additions and 11 deletions
  1. 18 11
      iOSClient/Networking/NCOperationQueue.swift

+ 18 - 11
iOSClient/Networking/NCOperationQueue.swift

@@ -47,10 +47,13 @@ import NCCommunication
         return downloadQueue.operationCount
     }
     
-    //
+    // Read Folder Synchronize
     @objc func readFolderSync(serverUrl: String, selector: String ,account: String) {
         readFolderSyncQueue.addOperation(NCOperationReadFolderSync.init(serverUrl: serverUrl, selector: selector, account: account))
     }
+    @objc func readFolderSyncCancelAll() {
+        readFolderSyncQueue.cancelAll()
+    }
     
     // Download Thumbnail
     @objc func downloadThumbnail(metadata: tableMetadata, activeUrl: String, view: Any, indexPath: IndexPath) {
@@ -103,19 +106,23 @@ class NCOperationReadFolderSync: ConcurrentOperation {
     }
     
     override func start() {
-        NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrl, depth: "1", showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, errorCode, errorDescription) in
-            
-            if errorCode == 0 && files != nil {
-                NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files!, useMetadataFolder: true, account: account) { (metadataFolder, metadatasFolder, metadatas) in
-                    
-                    if metadatas.count > 0 {
-                        CCSynchronize.shared()?.readFolder(withAccount: account, serverUrl: self.serverUrl, metadataFolder: metadataFolder, metadatas: metadatas, selector: self.selector)
+        if isCancelled {
+            self.finish()
+        } else {
+            NCCommunication.shared.readFileOrFolder(serverUrlFileName: serverUrl, depth: "1", showHiddenFiles: CCUtility.getShowHiddenFiles()) { (account, files, errorCode, errorDescription) in
+                
+                if errorCode == 0 && files != nil {
+                    NCManageDatabase.sharedInstance.convertNCCommunicationFilesToMetadatas(files!, useMetadataFolder: true, account: account) { (metadataFolder, metadatasFolder, metadatas) in
+                        
+                        if metadatas.count > 0 {
+                            CCSynchronize.shared()?.readFolder(withAccount: account, serverUrl: self.serverUrl, metadataFolder: metadataFolder, metadatas: metadatas, selector: self.selector)
+                        }
                     }
+                } else if errorCode == 404 {
+                    NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.serverUrl, account: account)
                 }
-            } else if errorCode == 404 {
-                NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: self.serverUrl, account: account)
+                self.finish()
             }
-            self.finish()
         }
     }
 }