Browse Source

download Favorite

Marino Faggiana 8 years ago
parent
commit
bc50ddb55c
1 changed files with 35 additions and 47 deletions
  1. 35 47
      iOSClient/Offline/CCOfflinePageContent.m

+ 35 - 47
iOSClient/Offline/CCOfflinePageContent.m

@@ -42,7 +42,6 @@
 
 - (void)viewDidLoad
 {
-    
     [super viewDidLoad];
     
     // Custom Cell
@@ -61,17 +60,14 @@
     self.tableView.allowsMultipleSelectionDuringEditing = NO;
     
     // calculate _serverUrl
-    if ([self.pageType isEqualToString:k_pageOfflineFavorites] && !_serverUrl) {
+    if ([self.pageType isEqualToString:k_pageOfflineFavorites] && !_serverUrl)
         _serverUrl = nil;
-    }
     
-    if ([self.pageType isEqualToString:k_pageOfflineOffline] && !_serverUrl) {
+    if ([self.pageType isEqualToString:k_pageOfflineOffline] && !_serverUrl)
         _serverUrl = nil;
-    }
     
-    if ([self.pageType isEqualToString:k_pageOfflineLocal] && !_serverUrl) {
+    if ([self.pageType isEqualToString:k_pageOfflineLocal] && !_serverUrl)
         _serverUrl = [CCUtility getDirectoryLocal];
-    }
     
     // Title & color
     self.title = _titleViewControl;
@@ -145,10 +141,7 @@
 {
     NSString *text;
     
-    if ([self.pageType isEqualToString:k_pageOfflineFavorites])
-        text = [NSString stringWithFormat:@"%@", @""];
-    
-    if ([self.pageType isEqualToString:k_pageOfflineOffline])
+    if ([self.pageType isEqualToString:k_pageOfflineFavorites] || [self.pageType isEqualToString:k_pageOfflineOffline])
         text = [NSString stringWithFormat:@"%@", @""];
     
     if ([self.pageType isEqualToString:k_pageOfflineLocal])
@@ -453,17 +446,12 @@
 {
     CCMetadata *metadata;
     
-    if ([_pageType isEqualToString:k_pageOfflineFavorites]) {
-        NSManagedObject *record = [dataSource objectAtIndex:indexPath.row];
-        metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", [record valueForKey:@"fileID"], app.activeAccount] context:nil];
-    }
-    
-    if ([_pageType isEqualToString:k_pageOfflineOffline]) {
+    if ([_pageType isEqualToString:k_pageOfflineFavorites] || [_pageType isEqualToString:k_pageOfflineOffline]) {
         
         NSManagedObject *record = [dataSource objectAtIndex:indexPath.row];
         metadata = [CCCoreData getMetadataWithPreficate:[NSPredicate predicateWithFormat:@"(fileID == %@) AND (account == %@)", [record valueForKey:@"fileID"], app.activeAccount] context:nil];
     }
-    
+
     if ([_pageType isEqualToString:k_pageOfflineLocal]) {
         
         NSString *cameraFolderName = [CCCoreData getCameraUploadFolderNameActiveAccount:app.activeAccount];
@@ -574,32 +562,25 @@
     selectionColor.backgroundColor = COLOR_SELECT_BACKGROUND;
     cell.selectedBackgroundView = selectionColor;
     
-    // i am in Favorites
-    if ([_pageType isEqualToString:k_pageOfflineFavorites]) {
+    // i am in Favorites OR i am in Offline
+    if ([_pageType isEqualToString:k_pageOfflineFavorites] || [_pageType isEqualToString:k_pageOfflineOffline]) {
         
         metadata = [dataSource objectAtIndex:indexPath.row];
-        cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
-        
-        if (_serverUrl == nil)
-            cell.offlineImageView.image = [UIImage imageNamed:image_favorite];
-        
-        if (cell.fileImageView.image == nil && metadata.thumbnailExists)
-            [[CCActions sharedInstance] downloadTumbnail:metadata delegate:self];
-    }
-
-    // i am in Offline
-    if ([_pageType isEqualToString:k_pageOfflineOffline]) {
         
-        metadata = [dataSource objectAtIndex:indexPath.row];
         cell.fileImageView.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.ico", app.directoryUser, metadata.fileID]];
         
-        if (_serverUrl == nil)
-            cell.offlineImageView.image = [UIImage imageNamed:image_offline];
+        if (_serverUrl == nil) {
+            
+            if ([_pageType isEqualToString:k_pageOfflineFavorites])
+                cell.offlineImageView.image = [UIImage imageNamed:image_favorite];
+            if ([_pageType isEqualToString:k_pageOfflineOffline])
+                cell.offlineImageView.image = [UIImage imageNamed:image_offline];
+        }
         
         if (cell.fileImageView.image == nil && metadata.thumbnailExists)
             [[CCActions sharedInstance] downloadTumbnail:metadata delegate:self];
     }
-    
+
     // i am in local
     if ([_pageType isEqualToString:k_pageOfflineLocal]) {
         
@@ -686,17 +667,32 @@
     _metadata = [self setSelfMetadataFromIndexPath:indexPath];
     
     // if is in download [do not touch]
-    if ([_metadata.session length] > 0 && [_metadata.session rangeOfString:@"download"].location != NSNotFound) return;
+    if ([_metadata.session length] > 0 && [_metadata.session containsString:@"download"])
+        return;
     
+    // File
     if (([_metadata.type isEqualToString: k_metadataType_file] || [_metadata.type isEqualToString: k_metadataType_local]) && _metadata.directory == NO) {
         
-        if ([self shouldPerformSegue])
-            [self performSegueWithIdentifier:@"segueDetail" sender:self];
+        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat:@"%@/%@", app.directoryUser, _metadata.fileID]]) {
+            
+            // File exists
+            if ([self shouldPerformSegue])
+                [self performSegueWithIdentifier:@"segueDetail" sender:self];
+
+        } else {
+            
+            // File do not exists
+            NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:_metadata.directoryID activeAccount:_metadata.account];
+
+            [[CCNetworking sharedNetworking] downloadFile:_metadata serverUrl:serverUrl downloadData:YES downloadPlist:NO selector:selectorLoadFileView selectorPost:nil session:k_download_session taskStatus:k_taskStatusResume delegate:self];
+        }
     }
     
+    // Model
     if ([self.metadata.type isEqualToString: k_metadataType_template])
         [self openModel:self.metadata];
     
+    // Directory
     if (_metadata.directory)
         [self performSegueDirectoryWithControlPasscode];
 }
@@ -759,15 +755,7 @@
     
     NSMutableArray *allRecordsDataSourceImagesVideos = [NSMutableArray new];
     
-    if ([self.pageType isEqualToString:k_pageOfflineFavorites]) {
-        
-        for (CCMetadata *metadata in dataSource) {
-            if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image] || [metadata.typeFile isEqualToString: k_metadataTypeFile_video])
-                [allRecordsDataSourceImagesVideos addObject:metadata];
-        }
-    }
-    
-    if ([self.pageType isEqualToString:k_pageOfflineOffline]) {
+    if ([self.pageType isEqualToString:k_pageOfflineFavorites] || [self.pageType isEqualToString:k_pageOfflineOffline]) {
         
         for (CCMetadata *metadata in dataSource) {
             if ([metadata.typeFile isEqualToString: k_metadataTypeFile_image] || [metadata.typeFile isEqualToString: k_metadataTypeFile_video])