marinofaggiana 4 年之前
父节点
当前提交
1fb5414e02

+ 21 - 0
iOSClient/Database/NCManageDatabase.swift

@@ -2062,6 +2062,27 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    func setMetadataStatus(ocId: String, status: Int) -> tableMetadata? {
+        
+        let realm = try! Realm()
+        
+        do {
+            try realm.write {
+                if let result = realm.objects(tableMetadata.self).filter("ocId == %@", ocId).first {
+                    result.status = status
+                }
+            }
+        } catch let error {
+            print("[LOG] Could not write to database: ", error)
+        }
+        
+        if let result = realm.objects(tableMetadata.self).filter(NSPredicate(format: "ocId == %@", ocId)).first {
+            return result.freeze()
+        } else {
+            return nil
+        }
+    }
+    
     @objc func setMetadataFavorite(ocId: String, favorite: Bool) {
         
         let realm = try! Realm()

+ 6 - 2
iOSClient/Networking/NCNetworkingAutoUpload.swift

@@ -83,12 +83,16 @@ class NCNetworkingAutoUpload: NSObject {
                         if UIApplication.shared.applicationState == .background { break }
                         maxConcurrentOperationUpload = 1
                         counterUpload += 1
-                        NCNetworking.shared.upload(metadata: metadata, background: true) { (_, _) in }
+                        if let metadata = NCManageDatabase.sharedInstance.setMetadataStatus(ocId: metadata.ocId, status: Int(k_metadataStatusInUpload)) {
+                            NCNetworking.shared.upload(metadata: metadata, background: true) { (_, _) in }
+                        }
                         startTimer()
                         return
                     } else {
                         counterUpload += 1
-                        NCNetworking.shared.upload(metadata: metadata, background: true) { (_, _) in }
+                        if let metadata = NCManageDatabase.sharedInstance.setMetadataStatus(ocId: metadata.ocId, status: Int(k_metadataStatusInUpload)) {
+                            NCNetworking.shared.upload(metadata: metadata, background: true) { (_, _) in }
+                        }
                         sizeUpload = sizeUpload + Int(metadata.size)
                         if sizeUpload > k_maxSizeOperationUpload {
                             startTimer()

+ 0 - 1
iOSClient/Networking/NCNetworkingE2EE.swift

@@ -172,7 +172,6 @@ import Alamofire
         let metadataUpdate = tableMetadata.init(value: metadata)
         metadataUpdate.fileName = CCUtility.generateRandomIdentifier()!
         metadataUpdate.e2eEncrypted = true
-        metadataUpdate.status = Int(k_metadataStatusInUpload)
         metadataUpdate.session = NCCommunicationCommon.shared.sessionIdentifierUpload
         metadataUpdate.sessionError = ""
         NCManageDatabase.sharedInstance.addMetadata(metadataUpdate)