marinofaggiana 4 years ago
parent
commit
4df361c6cd
3 changed files with 35 additions and 31 deletions
  1. 21 29
      iOSClient/AppDelegate.m
  2. 1 1
      iOSClient/CCGlobal.h
  3. 13 1
      iOSClient/Database/NCManageDatabase.swift

+ 21 - 29
iOSClient/AppDelegate.m

@@ -708,38 +708,30 @@
 
 - (void)updateApplicationIconBadgeNumber
 {
-    if (self.activeAccount.length == 0 || self.maintenanceMode)
-        return;
-    
-    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-        
-        NSInteger counterDownload = [[NCOperationQueue shared] downloadCount];
-        NSInteger counterUpload = [[[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"status == %d OR status == %d OR status == %d", k_metadataStatusWaitUpload, k_metadataStatusInUpload, k_metadataStatusUploading] sorted:@"fileName" ascending:true] count];
-
-        NSInteger total = counterDownload + counterUpload;
-        
-        dispatch_async(dispatch_get_main_queue(), ^{
-            
-            [UIApplication sharedApplication].applicationIconBadgeNumber = total;
+    if (self.activeAccount.length == 0 || self.maintenanceMode) return;
             
-            UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
-            if ([splitViewController isKindOfClass:[UISplitViewController class]]) {
-                UINavigationController *navigationController = (UINavigationController *)[splitViewController.viewControllers firstObject];
-                if ([navigationController isKindOfClass:[UINavigationController class]]) {
-                    UITabBarController *tabBarController = (UITabBarController *)navigationController.topViewController;
-                    if ([tabBarController isKindOfClass:[UITabBarController class]]) {
-                        UITabBarItem *tabBarItem = [tabBarController.tabBar.items objectAtIndex:0];
-                            
-                        if (total > 0) {
-                            [tabBarItem setBadgeValue:[NSString stringWithFormat:@"%li", (unsigned long)total]];
-                        } else {
-                            [tabBarItem setBadgeValue:nil];
-                        }
-                    }
+    NSInteger counterDownload = [[NCOperationQueue shared] downloadCount];
+    NSInteger counterUpload = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"status == %d OR status == %d OR status == %d", k_metadataStatusWaitUpload, k_metadataStatusInUpload, k_metadataStatusUploading] freeze:true].count;
+    NSInteger total = counterDownload + counterUpload;
+    
+    [UIApplication sharedApplication].applicationIconBadgeNumber = total;
+    
+    UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
+    if ([splitViewController isKindOfClass:[UISplitViewController class]]) {
+        UINavigationController *navigationController = (UINavigationController *)[splitViewController.viewControllers firstObject];
+        if ([navigationController isKindOfClass:[UINavigationController class]]) {
+            UITabBarController *tabBarController = (UITabBarController *)navigationController.topViewController;
+            if ([tabBarController isKindOfClass:[UITabBarController class]]) {
+                UITabBarItem *tabBarItem = [tabBarController.tabBar.items objectAtIndex:0];
+                    
+                if (total > 0) {
+                    [tabBarItem setBadgeValue:[NSString stringWithFormat:@"%li", (unsigned long)total]];
+                } else {
+                    [tabBarItem setBadgeValue:nil];
                 }
             }
-        });
-    });
+        }
+    }
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 1 - 1
iOSClient/CCGlobal.h

@@ -144,7 +144,7 @@
 
 // Timer
 #define k_timerProcessAutoUpload                        5
-#define k_timerUpdateApplicationIconBadgeNumber         3
+#define k_timerUpdateApplicationIconBadgeNumber         5
 #define k_timerErrorNetworking                          3
 
 // ConcurrentOperation

+ 13 - 1
iOSClient/Database/NCManageDatabase.swift

@@ -2140,7 +2140,7 @@ class NCManageDatabase: NSObject {
         let realm = try! Realm()
         realm.refresh()
         
-        let results : Results<tableMetadata>
+        let results: Results<tableMetadata>
         
         if let sorted = sorted {
             
@@ -2162,6 +2162,18 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @objc func getMetadatas(predicate: NSPredicate, freeze: Bool) -> [tableMetadata] {
+        
+        let realm = try! Realm()
+        realm.refresh()
+        
+        if freeze {
+            return Array(realm.objects(tableMetadata.self).filter(predicate).freeze())
+        } else {
+            return Array(realm.objects(tableMetadata.self).filter(predicate))
+        }
+    }
+    
     @objc func getMetadatasViewer(predicate: NSPredicate, sorted: String, ascending: Bool) -> [tableMetadata]? {
         
         let realm = try! Realm()