|
@@ -469,6 +469,53 @@ import Alamofire
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @objc func loadAutoUpload() {
|
|
|
+
|
|
|
+ let inBackground = UIApplication.shared.applicationState == .background
|
|
|
+
|
|
|
+ DispatchQueue.global().async {
|
|
|
+
|
|
|
+ var counterUpload = 0
|
|
|
+ var sizeUpload = 0
|
|
|
+ var maxConcurrentOperationUpload = k_maxConcurrentOperation
|
|
|
+
|
|
|
+ let metadatasUpload = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "status == %d OR status == %d", k_metadataStatusInUpload, k_metadataStatusUploading), freeze: true)
|
|
|
+ counterUpload = metadatasUpload.count
|
|
|
+
|
|
|
+ for metadata in metadatasUpload {
|
|
|
+ sizeUpload = sizeUpload + Int(metadata.size)
|
|
|
+ }
|
|
|
+
|
|
|
+ debugPrint("[LOG] PROCESS-AUTO-UPLOAD \(counterUpload)")
|
|
|
+
|
|
|
+ // ------------------------- <selector Upload> -------------------------
|
|
|
+
|
|
|
+ while counterUpload < maxConcurrentOperationUpload {
|
|
|
+ if sizeUpload > k_maxSizeOperationUpload { break }
|
|
|
+ var predicate = NSPredicate()
|
|
|
+
|
|
|
+ if inBackground {
|
|
|
+ predicate = NSPredicate(format: "sessionSelector == %@ AND status == %d AND typeFile != %@", selectorUploadFile, k_metadataStatusWaitUpload, k_metadataTypeFile_video)
|
|
|
+ } else {
|
|
|
+ predicate = NSPredicate(format: "sessionSelector == %@ AND status == %d", selectorUploadFile, k_metadataStatusWaitUpload)
|
|
|
+ }
|
|
|
+
|
|
|
+ if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: predicate, freeze: true) {
|
|
|
+ NCManageDatabase.sharedInstance.setMetadataSession(ocId: metadata.ocId, status: Int(k_metadataStatusInUpload))
|
|
|
+ self.upload(metadata: metadata, background: true) { (_, _) in }
|
|
|
+ counterUpload += 1
|
|
|
+ sizeUpload = sizeUpload + Int(metadata.size)
|
|
|
+ } else {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ DispatchQueue.main.asyncAfter(deadline: .now() + TimeInterval(k_timerProcessAutoUpload)) {
|
|
|
+ self.loadAutoUpload()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//MARK: - Download / Upload
|
|
|
|
|
|
@objc func verifyTransfer() {
|