marinofaggiana 4 years ago
parent
commit
cca94f4a7f
2 changed files with 20 additions and 34 deletions
  1. 1 1
      Cartfile.resolved
  2. 19 33
      iOSClient/Main/NCMainCommon.swift

+ 1 - 1
Cartfile.resolved

@@ -19,7 +19,7 @@ github "marinofaggiana/AFNetworking" "2967678c3e0e98c9b8d7e06222ad12d1f49c26f2"
 github "marinofaggiana/KTVHTTPCache" "2.0.2"
 github "marinofaggiana/TOPasscodeViewController" "0.0.6"
 github "marinofaggiana/XLForm" "eb9381ad8129f60402bf412250fb31b95a628a08"
-github "nextcloud/ios-communication-library" "c3d14311b5c9e97d60d37357ac4fbd709d97bc54"
+github "nextcloud/ios-communication-library" "2ce508944c277f1564005a0875548749e2510ad1"
 github "realm/realm-cocoa" "v4.4.1"
 github "rechsteiner/Parchment" "v1.7.0"
 github "scenee/FloatingPanel" "v1.7.4"

+ 19 - 33
iOSClient/Main/NCMainCommon.swift

@@ -143,41 +143,22 @@ class NCMainCommon: NSObject, NCAudioRecorderViewControllerDelegate, UIDocumentI
         
         var actionReloadDatasource = k_action_NULL
         var metadata = metadata
-        var getSession: URLSession?
         
         if metadata.session.count == 0 { return }
-        if metadata.session == k_download_session_default || metadata.session == k_upload_session_default {
-            getSession = NCCommunication.shared.getSessionManager()
-        } else {
-            getSession = CCNetworking.shared().getSessionfromSessionDescription(metadata.session)
-        }
-        guard let session = getSession else { return }
+        guard let session = CCNetworking.shared().getSessionfromSessionDescription(metadata.session) else { return }
         
         session.getTasksWithCompletionHandler { (dataTasks, uploadTasks, downloadTasks) in
             
             var cancel = false
             
-            for task in dataTasks {
-                if task.taskIdentifier == metadata.sessionTaskIdentifier {
-                    task.cancel()
-                    cancel = true
-                }
-            }
-            for task in uploadTasks {
-                if task.taskIdentifier == metadata.sessionTaskIdentifier {
-                    task.cancel()
-                    cancel = true
-                }
-            }
-            for task in downloadTasks {
-                if task.taskIdentifier == metadata.sessionTaskIdentifier {
-                    task.cancel()
-                    cancel = true
-                }
-            }
-            
             // DOWNLOAD
-            if metadata.session.contains("download") {
+            if metadata.session.count > 0 && metadata.session.contains("download") {
+                for task in downloadTasks {
+                    if task.taskIdentifier == metadata.sessionTaskIdentifier {
+                        task.cancel()
+                        cancel = true
+                    }
+                }
                 if cancel == false {
                     NCManageDatabase.sharedInstance.setMetadataSession("", sessionError: "", sessionSelector: "", sessionTaskIdentifier: Int(k_taskIdentifierDone), status: Int(k_metadataStatusNormal), predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
                 }
@@ -185,13 +166,18 @@ class NCMainCommon: NSObject, NCAudioRecorderViewControllerDelegate, UIDocumentI
             }
             
             // UPLOAD
-            if metadata.session.contains("upload") {
-                if cancel {
-                    if uploadStatusForcedStart {
-                        metadata.status = Int(k_metadataStatusUploadForcedStart)
-                        metadata = NCManageDatabase.sharedInstance.addMetadata(metadata) ?? metadata
+            if metadata.session.count > 0 && metadata.session.contains("upload") {
+                for task in uploadTasks {
+                    if task.taskIdentifier == metadata.sessionTaskIdentifier {
+                        if uploadStatusForcedStart {
+                            metadata.status = Int(k_metadataStatusUploadForcedStart)
+                            metadata = NCManageDatabase.sharedInstance.addMetadata(metadata) ?? metadata
+                        }
+                        task.cancel()
+                        cancel = true
                     }
-                } else {
+                }
+                if cancel == false {
                     do {
                         try FileManager.default.removeItem(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId))
                     }