Browse Source

Favorite Folders Offline

Marino Faggiana 8 years ago
parent
commit
ba47071a87

+ 16 - 3
iOSClient/Offline/CCSynchronize.m

@@ -78,13 +78,19 @@
 - (void)addFavoriteFolder:(NSString *)serverUrl
 {
     NSString *directoryID = [CCCoreData getDirectoryIDFromServerUrl:serverUrl activeAccount:app.activeAccount];
-    
+    NSString *selector;
     CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:app.activeAccount];
     
     metadataNet.action = actionReadFolder;
     metadataNet.directoryID = directoryID;
     metadataNet.priority = NSOperationQueuePriorityNormal;
-    metadataNet.selector = selectorReadFolder;
+    
+    if ([CCUtility getFavoriteFoldersOffline])
+        selector = selectorReadFolder;
+    else
+        selector = selectorReadFolderRefresh;
+    
+    metadataNet.selector = selector;
     metadataNet.serverUrl = serverUrl;
     
     [app addNetworkingOperationQueue:app.netQueue delegate:self metadataNet:metadataNet];
@@ -130,7 +136,14 @@
             if (metadata.directory) {
                 
                 NSString *directoryID = [CCCoreData getDirectoryIDFromServerUrl:serverUrl activeAccount:app.activeAccount];
-                [self readFolderServerUrl:serverUrl directoryID:directoryID selector:selectorReadFolder];
+                NSString *selector;
+                
+                if ([CCUtility getFavoriteFoldersOffline])
+                    selector = selectorReadFolder;
+                else
+                    selector = selectorReadFolderRefresh;
+                
+                [self readFolderServerUrl:serverUrl directoryID:directoryID selector:selector];
                 
             } else {
                 

+ 23 - 2
iOSClient/Settings/CCSettings.m

@@ -161,7 +161,6 @@
     [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
     [section addFormRow:row];
 
-    
     // Section AUTOMATIC UPLOAD OF CAMERA IMAGES ----------------------------
     
     section = [XLFormSectionDescriptor formSection];
@@ -184,6 +183,16 @@
     row.action.formSegueIdentifier = @"CCManageOptimizationsSegue";
     [section addFormRow:row];
 
+    // Section FOLDERS FAVORITES OFFLINE ------------------------------------
+    
+    section = [XLFormSectionDescriptor formSection];
+    [form addFormSection:section];
+    section.footerTitle = [NSString stringWithFormat:NSLocalizedString(@"_favorite_folders_offline_footer_", nil), _brand_];
+    
+    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"favoritefoldersoffline" rowType:XLFormRowDescriptorTypeBooleanSwitch title:NSLocalizedString(@"_favorite_folders_offline_", nil)];
+    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
+    [section addFormRow:row];
+
 #ifndef OPTION_CRYPTO_CLOUD_SYSTEM_DISABLE
     // Section CRYPTO CLOUD SYSTEM ------------------------------------------
     
@@ -384,7 +393,8 @@
     XLFormRowDescriptor *rowBloccoPasscode = [self.form formRowWithTag:@"bloccopasscode"];
     XLFormRowDescriptor *rowSimplyPasscode = [self.form formRowWithTag:@"simplypasscode"];
     XLFormRowDescriptor *rowOnlyLockDir = [self.form formRowWithTag:@"onlylockdir"];
-    
+    XLFormRowDescriptor *rowFavoriteFoldersOffline = [self.form formRowWithTag:@"favoritefoldersoffline"];
+
     XLFormRowDescriptor *rowVersionServer = [self.form formRowWithTag:@"versionserver"];
     XLFormRowDescriptor *rowUrlCloud = [self.form formRowWithTag:@"urlcloud"];
     XLFormRowDescriptor *rowUserNameCloud = [self.form formRowWithTag:@"usernamecloud"];
@@ -412,6 +422,7 @@
     
     if ([CCUtility getSimplyBlockCode]) [rowSimplyPasscode setValue:@1]; else [rowSimplyPasscode setValue:@0];
     if ([CCUtility getOnlyLockDir]) [rowOnlyLockDir setValue:@1]; else [rowOnlyLockDir setValue:@0];
+    if ([CCUtility getFavoriteFoldersOffline]) [rowFavoriteFoldersOffline setValue:@1]; else [rowFavoriteFoldersOffline setValue:@0];
     
     // Avatar
     UIImage *avatar = [[UIImage alloc] initWithContentsOfFile:[NSString stringWithFormat:@"%@/avatar.png", app.directoryUser]];
@@ -506,6 +517,16 @@
         else
             [self changeSimplyPassword];
     }
+    
+    if ([rowDescriptor.tag isEqualToString:@"favoritefoldersoffline"]) {
+        
+        if ([[rowDescriptor.value valueData] boolValue] == YES) {
+            [CCUtility setFavoriteFoldersOffline:true];
+        } else {
+            [CCUtility setFavoriteFoldersOffline:false];
+        }
+    }
+
 }
 
 - (void)checkEncryptPass:(XLFormRowDescriptor *)sender

+ 4 - 0
iOSClient/Utility/CCUtility.h

@@ -82,6 +82,8 @@
 
 + (void)setCreateMenuEncrypted:(BOOL)encrypted;
 
++ (void)setFavoriteFoldersOffline:(BOOL)encrypted;
+
 // GET
 
 + (NSString *)getKeyChainPasscodeForUUID:(NSString *)uuid;
@@ -119,6 +121,8 @@
 
 + (BOOL)getCreateMenuEncrypted;
 
++ (BOOL)getFavoriteFoldersOffline;
+
 // ===== Varius =====
 
 + (NSString *)getUserAgent;

+ 12 - 0
iOSClient/Utility/CCUtility.m

@@ -189,6 +189,13 @@
     [UICKeyChainStore setString:sEncrypted forKey:@"createMenuEncrypted" service:k_serviceShareKeyChain];
 }
 
++ (void)setFavoriteFoldersOffline:(BOOL)encrypted
+{
+    NSString *sFavoriteFoldersOffline = (encrypted) ? @"true" : @"false";
+    [UICKeyChainStore setString:sFavoriteFoldersOffline forKey:@"favoriteFolderOffline" service:k_serviceShareKeyChain];
+}
+
+
 #pragma ------------------------------ GET
 
 + (NSString *)getKeyChainPasscodeForUUID:(NSString *)uuid
@@ -363,6 +370,11 @@
     return [[UICKeyChainStore stringForKey:@"createMenuEncrypted" service:k_serviceShareKeyChain] boolValue];
 }
 
++ (BOOL)getFavoriteFoldersOffline
+{
+    return [[UICKeyChainStore stringForKey:@"favoriteFolderOffline" service:k_serviceShareKeyChain] boolValue];
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Varius =====
 #pragma --------------------------------------------------------------------------------------------

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

@@ -137,6 +137,8 @@
 "_user_web_"                = "Website";
 "_user_twitter_"            = "Twitter";
 "_quota_using_"             = "You are using %@ of %@";
+"_favorite_folders_offline_"           = "All favorite folders available offline";
+"_favorite_folders_offline_footer_"    = "Making all favorite folders available offline may take a long time with a high memory occupation. The sync will run at next start of %@";
 
 // Manage Camera Upload