Ver código fonte

optimized offline query

Marino Faggiana 8 anos atrás
pai
commit
a9c9b9c9ed

+ 8 - 21
iOSClient/FileSystem/CCCoreData.m

@@ -1781,31 +1781,18 @@
     
     for (TableDirectory *directory in directoriesNoOffline) {
         
-    }
-    
-    
-    /*
-    NSArray *files = [self getTableLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (offline == 1)", activeAccount] controlZombie:YES activeAccount:activeAccount directoryUser:directoryUser];
-    
-    for (TableLocalFile *file in files) {
+        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (directoryID == %@) AND (directory == 0)", activeAccount, directory.directoryID];
+        NSArray *tableMetadatas = [self getTableMetadataWithPredicate:predicate context:nil];
         
-        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", file.fileID, activeAccount];
-        CCMetadata *metadata = [self getMetadataWithPreficate:predicate context:nil];
-        
-        if (metadata) {
+        for (TableMetadata *tableMetadata in tableMetadatas) {
             
-            // verify if is not on directory offline
-            
-            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(directoryID == %@) AND (offline == 1) AND (account == %@)", metadata.directoryID, activeAccount];
-            
-            TableDirectory *directory = [TableDirectory MR_findFirstWithPredicate:predicate];
-            
-            if (!directory)
-                [metadatas addObject:metadata];
+            TableLocalFile *tableLocalFile = [CCCoreData getLocalFileWithFileID:tableMetadata.fileID activeAccount:activeAccount];
+            if ([tableLocalFile.offline boolValue] == YES) {
+                [metadatas addObject:[self insertEntityInMetadata:tableMetadata]];
+            }
         }
     }
-    */
-             
+    
     return [NSArray arrayWithArray:metadatas];    
 }
 

+ 8 - 2
iOSClient/Offline/CCOfflinePageContent.m

@@ -13,6 +13,7 @@
 @interface CCOfflinePageContent ()
 {
     NSArray *dataSource;
+    BOOL _reloadDataSource;
 }
 @end
 
@@ -31,8 +32,6 @@
     // Metadata
     _metadata = [CCMetadata new];
     
-    self.tableView.emptyDataSetDelegate = self;
-    self.tableView.emptyDataSetSource = self;
     self.tableView.tableFooterView = [UIView new];
     self.tableView.separatorColor = COLOR_SEPARATOR_TABLE;
     
@@ -62,7 +61,14 @@
     [app plusButtonVisibile:true];
     
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        
+        self.tableView.emptyDataSetDelegate = nil;
+        self.tableView.emptyDataSetSource = nil;
+        
         [self reloadTable];
+        
+        self.tableView.emptyDataSetDelegate = self;
+        self.tableView.emptyDataSetSource = self;
     });
 }