Переглянути джерело

Modify priority loadAutoDownloadUpload

Marino Faggiana 7 роки тому
батько
коміт
32e88ffa59
2 змінених файлів з 12 додано та 15 видалено
  1. 8 11
      iOSClient/AppDelegate.m
  2. 4 4
      iOSClient/Database/NCManageDatabase.swift

+ 8 - 11
iOSClient/AppDelegate.m

@@ -1427,6 +1427,7 @@
 - (void)loadAutoDownloadUpload:(NSNumber *)maxConcurrent
 {
     CCMetadataNet *metadataNet;
+    NSUInteger priority = 0; // All 
     
     // Stop Timer
     [_timerProcessAutoDownloadUpload invalidate];
@@ -1439,6 +1440,10 @@
 
     NSInteger counterNewUpload = 0;
     
+    // Priority
+    if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground)
+        priority = k_priorityAutoUploadError;
+    
     // ------------------------- <selector Auto Download> -------------------------
     
     while (counterDownloadInSession < maxConcurrentDownloadUpload) {
@@ -1458,13 +1463,9 @@
     
     while (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload) {
         
-        metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadAutoUpload];
+        metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadAutoUpload priority:priority];
         if (metadataNet) {
             
-            // Priority Error only in Foreground
-            if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground && metadataNet.priority <= k_priorityAutoUploadError)
-                continue;
-            
             [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
             
             counterNewUpload++;
@@ -1490,13 +1491,9 @@
         
         while (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload) {
             
-            metadataNet =  [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadAutoUploadAll];
+            metadataNet =  [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadAutoUploadAll priority:priority];
             if (metadataNet) {
                 
-                // Priority Error only in Foreground
-                if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground && metadataNet.priority <= k_priorityAutoUploadError)
-                    continue;
-                
                 [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];
                 
                 counterNewUpload++;
@@ -1512,7 +1509,7 @@
     
     if (counterUploadInSessionAndInLock < maxConcurrentDownloadUpload && counterUploadInLock < 1) {
         
-        metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadFile];
+        metadataNet = [[NCManageDatabase sharedInstance] getQueueUploadLockWithSelector:selectorUploadFile priority:priority];
         if (metadataNet) {
             
             [[CCNetworking sharedNetworking] uploadFileFromAssetLocalIdentifier:metadataNet delegate:_activeMain];

+ 4 - 4
iOSClient/Database/NCManageDatabase.swift

@@ -60,8 +60,8 @@ class NCManageDatabase: NSObject {
             schemaVersion: 12,
             
             // 10 : Version 2.18.0
-            // 11 : Add object tableE2eEncryption
-            // 12 : Change primary key of tableE2eEncryption
+            // 11 : Version 2.18.2
+            // 12 : Version ...
             
             migrationBlock: { migration, oldSchemaVersion in
                 // We haven’t migrated anything yet, so oldSchemaVersion == 0
@@ -2023,7 +2023,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func getQueueUploadLock(selector: String) -> CCMetadataNet? {
+    @objc func getQueueUploadLock(selector: String, priority: Int) -> CCMetadataNet? {
         
         guard let tableAccount = self.getAccountActive() else {
             return nil
@@ -2033,7 +2033,7 @@ class NCManageDatabase: NSObject {
         
         realm.beginWrite()
         
-        guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND selector = %@ AND lock == false", tableAccount.account, selector).sorted(byKeyPath: "priority", ascending: false).first else {
+        guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND selector = %@ AND lock == false AND priority >= %lu", tableAccount.account, selector, priority).sorted(byKeyPath: "priority", ascending: false).first else {
             realm.cancelWrite()
             return nil
         }