Browse Source

optimized offline

Marino Faggiana 8 years ago
parent
commit
33542c2116
2 changed files with 9 additions and 16 deletions
  1. 2 12
      iOSClient/Main/CCMain.m
  2. 7 4
      iOSClient/Offline/CCOfflineFileFolder.m

+ 2 - 12
iOSClient/Main/CCMain.m

@@ -1244,7 +1244,7 @@
     }
     
     // add Offline
-    if ([selector isEqualToString:selectorAddOffline] || [CCCoreData isOfflineDirectoryServerUrl:serverUrl activeAccount:app.activeAccount]) {
+    if ([selector isEqualToString:selectorAddOffline] && ![CCCoreData isOfflineDirectoryServerUrl:serverUrl activeAccount:app.activeAccount]) {
         [CCCoreData setOfflineLocalFileID:metadata.fileID offline:YES activeAccount:app.activeAccount];
         [self getDataSourceWithReloadTableView:metadata.directoryID fileID:metadata.fileID selector:selector];
     }
@@ -1489,11 +1489,6 @@
     if([selector isEqualToString:selectorUploadAutomatic] || [selector isEqualToString:selectorUploadAutomaticAll])
         [app loadTableAutomaticUploadForSelector:selector];
     
-    // Check Offline
-    if ([CCCoreData isOfflineDirectoryServerUrl:_localServerUrl activeAccount:app.activeAccount])
-        [CCCoreData setOfflineLocalFileID:fileID offline:YES activeAccount:app.activeAccount];
-    
-    
     if ([selectorPost isEqualToString:selectorReadFolderForced] ) {
             
         [self readFolderWithForced:YES];
@@ -2102,10 +2097,6 @@
             
             // move metadata
             [CCCoreData moveMetadata:fileName directoryID:directoryID directoryIDTo:directoryIDTo activeAccount:app.activeAccount];
-            
-            // Check Offline
-            if ([CCCoreData isOfflineDirectoryServerUrl:serverUrlTo activeAccount:app.activeAccount])
-                [CCCoreData setOfflineLocalFileID:metadataNet.fileID offline:YES activeAccount:app.activeAccount];
         }
     
         // DIRECTORY ->  Directory - CCMetadata
@@ -5077,8 +5068,7 @@
     BOOL isOfflineFile = [CCCoreData isOfflineLocalFileID:metadata.fileID activeAccount:app.activeAccount];
     
     // Verify Offline
-    if(_isOfflineLocalServerUrl == YES && isOfflineFile == NO) {
-        [CCCoreData setOfflineLocalFileID:metadata.fileID offline:YES activeAccount:app.activeAccount];
+    if(_isOfflineLocalServerUrl || isOfflineFile) {
         isOfflineFile = YES;
     }
     

+ 7 - 4
iOSClient/Offline/CCOfflineFileFolder.m

@@ -332,6 +332,7 @@
 - (void)verifyChangeMedatas:(NSArray *)allRecordMetadatas serverUrl:(NSString *)serverUrl directoryID:(NSString *)directoryID account:(NSString *)account offline:(BOOL)offline
 {
     NSMutableArray *metadatas = [[NSMutableArray alloc] init];
+    BOOL isOfflineDirectory = [CCCoreData isOfflineDirectoryServerUrl:serverUrl activeAccount:app.activeAccount];
     
     for (CCMetadata *metadata in allRecordMetadatas) {
         
@@ -349,10 +350,12 @@
         
         if (offline) {
             
-            // add flag offline
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [CCCoreData setOfflineLocalFileID:metadata.fileID offline:YES activeAccount:app.activeAccount];
-            });
+            // is Directory Offline && file is tagged offline ... ?? removed on offline
+            if (isOfflineDirectory && [record.offline boolValue] == YES) {
+                dispatch_async(dispatch_get_main_queue(), ^{
+                    [CCCoreData setOfflineLocalFileID:record.fileID offline:NO activeAccount:app.activeAccount];
+                });
+            }
             
             if (![record.rev isEqualToString:metadata.rev ])
                 changeRev = YES;