浏览代码

Improvements reload datasource Photos and small bugfix CCSynchronize.m

Marino Faggiana 7 年之前
父节点
当前提交
16994b12b9
共有 2 个文件被更改,包括 14 次插入29 次删除
  1. 9 24
      iOSClient/Photos/CCPhotos.m
  2. 5 5
      iOSClient/Synchronize/CCSynchronize.m

+ 9 - 24
iOSClient/Photos/CCPhotos.m

@@ -35,6 +35,7 @@
     NSMutableArray *_selectedMetadatas;
     NSMutableArray *_selectedMetadatas;
     NSUInteger _numSelectedMetadatas;
     NSUInteger _numSelectedMetadatas;
     
     
+    NSString *_etagAutoUploadDirectory;
     CCSectionDataSourceMetadata *_sectionDataSource;
     CCSectionDataSourceMetadata *_sectionDataSource;
     
     
     CCHud *_hud;
     CCHud *_hud;
@@ -75,8 +76,6 @@
     // empty Data Source
     // empty Data Source
     self.collectionView.emptyDataSetDelegate = self;
     self.collectionView.emptyDataSetDelegate = self;
     self.collectionView.emptyDataSetSource = self;
     self.collectionView.emptyDataSetSource = self;
-    
-    [self reloadDatasource];
 }
 }
 
 
 // Apparirà
 // Apparirà
@@ -90,13 +89,7 @@
     
     
     // Plus Button
     // Plus Button
     [app plusButtonVisibile:true];
     [app plusButtonVisibile:true];
-}
 
 
-// E' arrivato
-- (void)viewDidAppear:(BOOL)animated
-{
-    [super viewDidAppear:animated];
-    
     [self reloadDatasource];
     [self reloadDatasource];
 }
 }
 
 
@@ -498,26 +491,18 @@
     
     
     NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:app.activeUrl];
     NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:app.activeUrl];
     
     
-    if (_sectionDataSource) {
-        
-        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
-            
-            NSArray *metadatas = [[NCManageDatabase sharedInstance] getTableMetadatasPhotosWithServerUrl:autoUploadPath];
-            
-            _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatas listProgressMetadata:nil groupByField:@"date" activeAccount:app.activeAccount];
-            
-            dispatch_async(dispatch_get_main_queue(), ^{
-                [self reloadCollection];
-            });
-        });
+    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", app.activeAccount, autoUploadPath]];
 
 
-    } else {
-        
+    if (![directory.etag isEqualToString:_etagAutoUploadDirectory] || _etagAutoUploadDirectory == nil) {
+
+        NSLog(@"[LOG] Photos rebuild Data Source serverUrl : %@", autoUploadPath);
+
+        _etagAutoUploadDirectory = directory.etag;
         NSArray *results = [[NCManageDatabase sharedInstance] getTableMetadatasPhotosWithServerUrl:autoUploadPath];
         NSArray *results = [[NCManageDatabase sharedInstance] getTableMetadatasPhotosWithServerUrl:autoUploadPath];
-        
         _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:results listProgressMetadata:nil groupByField:@"date" activeAccount:app.activeAccount];
         _sectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:results listProgressMetadata:nil groupByField:@"date" activeAccount:app.activeAccount];
+        
         [self reloadCollection];
         [self reloadCollection];
-    }    
+    }
 }
 }
 
 
 - (void)reloadCollection
 - (void)reloadCollection

+ 5 - 5
iOSClient/Synchronize/CCSynchronize.m

@@ -98,8 +98,10 @@
     if (!metadataFolder || !metadatas || [metadatas count] == 0)
     if (!metadataFolder || !metadatas || [metadatas count] == 0)
         return;
         return;
     
     
+    // Add metadata and update etag Directory
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder];
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder];
-    
+    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag];
+
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
         
         
         tableAccount *recordAccount = [[NCManageDatabase sharedInstance] getAccountActive];
         tableAccount *recordAccount = [[NCManageDatabase sharedInstance] getAccountActive];
@@ -114,7 +116,7 @@
         
         
         // ----- Test : (DELETE) -----
         // ----- Test : (DELETE) -----
         
         
-        NSMutableArray *metadatasNotPresents = [[NSMutableArray alloc] init];
+        NSMutableArray *metadatasNotPresents = [NSMutableArray new];
         
         
         NSArray *tableMetadatas = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session = ''", app.activeAccount, metadataNet.directoryID] sorted:nil ascending:NO];
         NSArray *tableMetadatas = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND directoryID = %@ AND session = ''", app.activeAccount, metadataNet.directoryID] sorted:nil ascending:NO];
         
         
@@ -184,9 +186,7 @@
                 tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", metadataNet.account, serverUrl]];
                 tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", metadataNet.account, serverUrl]];
                 
                 
                 if (![tableDirectory.etag isEqualToString:etag]) {
                 if (![tableDirectory.etag isEqualToString:etag]) {
-                    
-                    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:serverUrl serverUrlTo:nil etag:etag];
-                    
+                                        
                     [self synchronizedFolder:serverUrl selector:metadataNet.selector];
                     [self synchronizedFolder:serverUrl selector:metadataNet.selector];
                 }
                 }