Эх сурвалжийг харах

Settings Favorite (Offline)

Marino Faggiana 8 жил өмнө
parent
commit
fcf5f9bd50

+ 1 - 1
iOSClient/FileSystem/CCCoreData.m

@@ -1072,7 +1072,7 @@
         NSPredicate *predicate;
         
         if ([serverUrl length] > 0)
-             predicate = [NSPredicate predicateWithFormat:@"(serverUrl == %@) AND (account == %@)", serverUrl, activeAccount];
+            predicate = [NSPredicate predicateWithFormat:@"(serverUrl == %@) AND (account == %@)", serverUrl, activeAccount];
         
         if ([directoryID length] > 0)
             predicate = [NSPredicate predicateWithFormat:@"(directoryID == %@) AND (account == %@)", directoryID, activeAccount];

+ 14 - 0
iOSClient/Offline/CCOfflinePageContent.m

@@ -224,6 +224,17 @@
     [self reloadDatasource];
 }
 
+#pragma --------------------------------------------------------------------------------------------
+#pragma mark ==== Download Thumbnail Delegate ====
+#pragma --------------------------------------------------------------------------------------------
+
+- (void)downloadThumbnailSuccess:(CCMetadataNet *)metadataNet
+{
+    // i am in Favorites
+    if ([_pageType isEqualToString:k_pageOfflineFavorites])
+        [self reloadDatasource];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== menu =====
 #pragma--------------------------------------------------------------------------------------------
@@ -570,6 +581,9 @@
         
         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

+ 34 - 11
iOSClient/Settings/CCSettings.m

@@ -522,24 +522,24 @@
         
         if ([[rowDescriptor.value valueData] boolValue] == YES) {
             
-            [CCUtility setFavoriteFoldersOffline:true];
+            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_confirm_", nil) message:NSLocalizedString(@"_continue_", nil) preferredStyle:UIAlertControllerStyleActionSheet];
             
-            NSArray *recordsTableMetadata = [CCCoreData  getTableMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (favorite == 1)", app.activeAccount] context:nil];
-            NSMutableSet *directoriesID = [NSMutableSet new];
+            [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
+                [CCUtility setFavoriteFoldersOffline:true];
+                [self synchronizeFavorites];
+            }]];
             
-            for (TableMetadata *record in recordsTableMetadata)
-                [directoriesID addObject:record.directoryID];
-            
-            for (NSString *directoryID in directoriesID)
-                [CCCoreData clearDateReadAccount:app.activeAccount serverUrl:nil directoryID:directoryID];
-            
-            [[CCSynchronize sharedSynchronize] readListingFavorites];
+            [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_", nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
+                [self reloadForm];
+            }]];
             
+            [self presentViewController:alertController animated:YES completion:nil];
+
         } else {
+            
             [CCUtility setFavoriteFoldersOffline:false];
         }
     }
-
 }
 
 - (void)checkEncryptPass:(XLFormRowDescriptor *)sender
@@ -692,6 +692,29 @@
     [self deselectFormRow:sender];
 }
 
+- (void)synchronizeFavorites
+{
+    NSArray *recordsTableMetadata = [CCCoreData  getTableMetadataWithPredicate:[NSPredicate predicateWithFormat:@"(account == %@) AND (favorite == 1)", app.activeAccount] context:nil];
+    
+    for (TableMetadata *record in recordsTableMetadata) {
+        
+        if (!record.directoryID)
+            continue;
+        
+        NSString *serverUrl = [CCCoreData getServerUrlFromDirectoryID:record.directoryID activeAccount:app.activeAccount];
+        serverUrl = [CCUtility stringAppendServerUrl:serverUrl addFileName:record.fileNamePrint];
+        
+        NSArray *TableDirectories = [CCCoreData getDirectoryIDsFromBeginsWithServerUrl:serverUrl activeAccount:app.activeAccount];
+        
+        for (TableDirectory *tableDirecory in TableDirectories) {
+            NSLog(@"%@", tableDirecory.serverUrl);
+            [CCCoreData clearDateReadAccount:app.activeAccount serverUrl:nil directoryID:tableDirecory.directoryID];
+        }
+    }
+    
+    [[CCSynchronize sharedSynchronize] readListingFavorites];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark === Mail ===
 #pragma --------------------------------------------------------------------------------------------

+ 2 - 0
iOSClient/en.lproj/Localizable.strings

@@ -58,6 +58,8 @@
 "_postpone_"                = "Postpone";
 "_remove_"                  = "Remove";
 "_file_not_found_"          = "File not found";
+"_confirm_"                 = "Confirm";
+"_continue_"                = "Do you want to continue ?";
 
 // App