marinofaggiana 4 жил өмнө
parent
commit
7ff38e02d1

+ 21 - 19
iOSClient/Database/NCManageDatabase.swift

@@ -2192,29 +2192,31 @@ class NCManageDatabase: NSObject {
     
     @objc func getMetadatas(predicate: NSPredicate, page: Int = 0, limit: Int = 0, sorted: String = "fileName", ascending: Bool = false) -> [tableMetadata] {
         
-        let realm = try! Realm()
-        realm.refresh()
-        var metadatas: [tableMetadata] = []
-                
-        let results = realm.objects(tableMetadata.self).filter(predicate).sorted(byKeyPath: sorted, ascending: ascending)
-        
-        if results.count > 0 {
-            if page == 0 || limit == 0 {
-                return Array(results.freeze())
-            } else {
-                
-                let nFrom = (page - 1) * limit
-                let nTo = nFrom + (limit - 1)
-                
-                for n in nFrom...nTo {
-                    if n == results.count {
-                        break
+        autoreleasepool {
+            let realm = try! Realm()
+            realm.refresh()
+            var metadatas: [tableMetadata] = []
+                    
+            let results = realm.objects(tableMetadata.self).filter(predicate).sorted(byKeyPath: sorted, ascending: ascending)
+            
+            if results.count > 0 {
+                if page == 0 || limit == 0 {
+                    return Array(results.freeze())
+                } else {
+                    
+                    let nFrom = (page - 1) * limit
+                    let nTo = nFrom + (limit - 1)
+                    
+                    for n in nFrom...nTo {
+                        if n == results.count {
+                            break
+                        }
+                        metadatas.append(results[n].freeze())
                     }
-                    metadatas.append(results[n].freeze())
                 }
             }
+            return metadatas
         }
-        return metadatas
     }
     
     @objc func getMetadataAtIndex(predicate: NSPredicate, sorted: String, ascending: Bool, index: Int) -> tableMetadata? {

+ 6 - 5
iOSClient/Networking/NCNetworking.swift

@@ -479,12 +479,13 @@ import Queuer
                 NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp))
                 
                 #if !EXTENSION
-                let metadatasUpload = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "status == %d OR status == %d", k_metadataStatusInUpload, k_metadataStatusUploading))
-                if metadatasUpload.count == 0 {
-                    let appDelegate = UIApplication.shared.delegate as! AppDelegate
-                    appDelegate.networkingAutoUpload.startProcess()
+                self.getOcIdInSession { (listOcId) in
+                    if listOcId.count == 0 {
+                        let appDelegate = UIApplication.shared.delegate as! AppDelegate
+                        appDelegate.networkingAutoUpload.startProcess()
+                    }
                 }
-                #endif
+                #endif                
                 
                 NCCommunicationCommon.shared.writeLog("Upload complete " + serverUrl + "/" + fileName + ", result: success(\(size) bytes)")
                 

+ 2 - 3
iOSClient/Networking/NCNetworkingAutoUpload.swift

@@ -60,9 +60,8 @@ class NCNetworkingAutoUpload: NSObject {
         for metadata in metadatasUpload {
             sizeUpload = sizeUpload + Int(metadata.size)
         }
-        if sizeUpload > k_maxSizeOperationUpload {
-            return
-        }
+        if sizeUpload > k_maxSizeOperationUpload { return }
+        if counterUpload > 0 { return }
         
         timerProcess?.invalidate()