Marino Faggiana 8 жил өмнө
parent
commit
78df4200eb

+ 1 - 1
iOSClient/AppDelegate.m

@@ -388,7 +388,7 @@
 // BACKGROND & FOREGROUND
     
     /* Active/Disactive Graphics Animation Offline Folders */
-    NSArray *records = [CCCoreData getOfflineDirectoryActiveAccount:app.activeAccount];
+    NSArray *records = [CCCoreData getDirectoryOffline:YES activeAccount:app.activeAccount];
     NSMutableArray *directory = [[NSMutableArray alloc] init];
     for (TableDirectory *record in records)
         [directory addObject:record.serverUrl];

+ 1 - 1
iOSClient/FileSystem/CCCoreData.h

@@ -145,7 +145,7 @@
 + (BOOL)isDirectoryOutOfDate:(int)numAddDay directoryID:(NSString *)directoryID activeAccount:(NSString *)activeAccount;
 
 + (void)removeOfflineDirectoryID:(NSString *)directoryID activeAccount:(NSString *)activeAccount;
-+ (NSArray *)getOfflineDirectoryActiveAccount:(NSString *)activeAccount;
++ (NSArray *)getDirectoryOffline:(BOOL)offline activeAccount:(NSString *)activeAccount;
 + (void)setOfflineDirectoryServerUrl:(NSString *)serverUrl offline:(BOOL)offline activeAccount:(NSString *)activeAccount;
 + (BOOL)isOfflineDirectoryServerUrl:(NSString *)serverUrl activeAccount:(NSString *)activeAccount;
 

+ 28 - 5
iOSClient/FileSystem/CCCoreData.m

@@ -1086,9 +1086,15 @@
     }];
 }
 
-+ (NSArray *)getOfflineDirectoryActiveAccount:(NSString *)activeAccount
++ (NSArray *)getDirectoryOffline:(BOOL)offline activeAccount:(NSString *)activeAccount
 {
-    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (offline == 1)", activeAccount];
+    NSPredicate *predicate;
+    
+    if (offline)
+        predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND (offline == 1)", activeAccount];
+    else
+        predicate = [NSPredicate predicateWithFormat:@"(account == %@) AND ((offline == 0) OR (offline == NULL))", activeAccount];
+    
     NSArray *recordsTable = [TableDirectory MR_findAllWithPredicate:predicate];
     
     // Order by serverUrl
@@ -1744,12 +1750,13 @@
 + (NSArray *)getHomeOfflineActiveAccount:(NSString *)activeAccount directoryUser:(NSString *)directoryUser
 {
     NSMutableArray *metadatas = [NSMutableArray new];
-    NSArray *directories = [self getOfflineDirectoryActiveAccount:activeAccount];
+    NSArray *directoriesOffline = [self getDirectoryOffline:YES activeAccount:activeAccount];
+    NSArray *directoriesNoOffline = [self getDirectoryOffline:NO activeAccount:activeAccount];
     NSString *father = @"";
 
     // Add directory
     
-    for (TableDirectory *directory in directories) {
+    for (TableDirectory *directory in directoriesOffline) {
         
         if (![directory.serverUrl containsString:father]) {
             
@@ -1772,6 +1779,21 @@
     
     // Add files
     
+    for (TableDirectory *directory in directoriesNoOffline) {
+        
+        NSArray *files = [self getTableLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (directoryID == %@) AND (offline == 1)", activeAccount, directory.directoryID] controlZombie:YES activeAccount:activeAccount directoryUser:directoryUser];
+        
+        for (TableLocalFile *file in files) {
+            
+            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", file.fileID, activeAccount];
+            CCMetadata *metadata = [self getMetadataWithPreficate:predicate context:nil];
+
+            [metadatas addObject:metadata];
+        }
+    }
+    
+    
+    /*
     NSArray *files = [self getTableLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (offline == 1)", activeAccount] controlZombie:YES activeAccount:activeAccount directoryUser:directoryUser];
     
     for (TableLocalFile *file in files) {
@@ -1791,7 +1813,8 @@
                 [metadatas addObject:metadata];
         }
     }
-    
+    */
+             
     return [NSArray arrayWithArray:metadatas];    
 }
 

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -4306,7 +4306,7 @@
                                         } else {
                                             
                                             // remove tag offline for all folder/subfolder/file
-                                            NSArray *directories = [CCCoreData getOfflineDirectoryActiveAccount:app.activeAccount];
+                                            NSArray *directories = [CCCoreData getDirectoryOffline:YES activeAccount:app.activeAccount];
                                             
                                             for (TableDirectory *directory in directories)
                                                 if ([directory.serverUrl containsString:dirServerUrl]) {

+ 1 - 1
iOSClient/Offline/CCOfflineFileFolder.m

@@ -61,7 +61,7 @@
         return;
     
     NSString *father = @"";
-    NSArray *directories = [CCCoreData getOfflineDirectoryActiveAccount:app.activeAccount];
+    NSArray *directories = [CCCoreData getDirectoryOffline:YES activeAccount:app.activeAccount];
     
     for (TableDirectory *directory in directories) {
         

+ 3 - 1
iOSClient/Offline/CCOfflinePageContent.m

@@ -61,7 +61,9 @@
     // Plus Button
     [app plusButtonVisibile:true];
     
-    [self reloadTable];
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        [self reloadTable];
+    });
 }
 
 // E' arrivato