浏览代码

Modify DB for startDirectoryPhotosTab

Marino Faggiana 7 年之前
父节点
当前提交
6e39d006d5

+ 1 - 0
iOSClient/Database/NCDatabase.swift

@@ -51,6 +51,7 @@ class tableAccount: Object {
     @objc dynamic var quotaRelative: Double = 0
     @objc dynamic var quotaTotal: Double = 0
     @objc dynamic var quotaUsed: Double = 0
+    @objc dynamic var startDirectoryPhotosTab = ""
     @objc dynamic var twitter = ""
     @objc dynamic var url = ""
     @objc dynamic var user = ""

+ 47 - 1
iOSClient/Database/NCManageDatabase.swift

@@ -57,7 +57,7 @@ class NCManageDatabase: NSObject {
         let config = Realm.Configuration(
         
             fileURL: dirGroup?.appendingPathComponent("\(appDatabaseNextcloud)/\(k_databaseDefault)"),
-            schemaVersion: 18,
+            schemaVersion: 19,
             
             // 10 : Version 2.18.0
             // 11 : Version 2.18.2
@@ -68,6 +68,7 @@ class NCManageDatabase: NSObject {
             // 16 : Version 2.20.2
             // 17 : Version 2.20.4
             // 18 : Version 2.20.6
+            // 19 : Version 2.20.7
             
             migrationBlock: { migration, oldSchemaVersion in
                 // We haven’t migrated anything yet, so oldSchemaVersion == 0
@@ -476,6 +477,51 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @objc func getAccountStartDirectoryPhotosTab(_ homeServerUrl: String) -> String {
+        
+        guard let activeAccount = self.getAccountActive() else {
+            return ""
+        }
+        
+        let realm = try! Realm()
+        realm.refresh()
+
+        guard let result = realm.objects(tableAccount.self).filter("account = %@", activeAccount.account).first else {
+            return ""
+        }
+        
+        if result.startDirectoryPhotosTab == "" {
+            
+            self.setAccountStartDirectoryPhotosTab(homeServerUrl)
+            return homeServerUrl
+            
+        } else {
+            return result.startDirectoryPhotosTab
+        }
+    }
+    
+    @objc func setAccountStartDirectoryPhotosTab(_ directory: String) {
+        
+        guard let activeAccount = self.getAccountActive() else {
+            return
+        }
+        
+        let realm = try! Realm()
+        
+        do {
+            try realm.write {
+                
+                guard let result = realm.objects(tableAccount.self).filter("account = %@", activeAccount.account).first else {
+                    return
+                }
+                
+                result.startDirectoryPhotosTab = directory
+            }
+        } catch let error {
+            print("[LOG] Could not write to database: ", error)
+        }
+    }
+    
     //MARK: -
     //MARK: Table Activity
 

+ 3 - 3
iOSClient/Photos/CCPhotos.m

@@ -548,7 +548,7 @@
         
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
             
-            NSString *startDirectory = [CCUtility getStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
+            NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
 
             BOOL isUpdate = [[NCManageDatabase sharedInstance] updateTableMetadatasContentTypeImageVideo:metadatas startDirectory:startDirectory activeUrl:appDelegate.activeUrl];
             
@@ -577,7 +577,7 @@
     // tableAccount *account = [[NCManageDatabase sharedInstance] getAccountActive];
     // account.dateSearchContentTypeImageVideo
     
-    NSString *startDirectory = [CCUtility getStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
+    NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
 
     [[CCActions sharedInstance] search:startDirectory fileName:@"" depth:@"infinity" date:[NSDate distantPast] contenType:@[@"image/%", @"video/%"] selector:selectorSearchContentType delegate:self];
     
@@ -597,7 +597,7 @@
     
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
 
-            NSString *startDirectory = [CCUtility getStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
+            NSString *startDirectory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
 
             NSArray *metadatasDBImageVideo = [[NCManageDatabase sharedInstance] getTableMetadatasContentTypeImageVideo:startDirectory activeUrl:appDelegate.activeUrl];
             CCSectionDataSourceMetadata *tempSectionDataSource = [CCSectionMetadata creataDataSourseSectionMetadata:metadatasDBImageVideo listProgressMetadata:nil groupByField:@"date" activeAccount:appDelegate.activeAccount];

+ 34 - 39
iOSClient/Settings/CCAdvanced.m

@@ -126,12 +126,7 @@
     section.footerTitle = NSLocalizedString(@"_start_directory_photos_tab_footer_", nil);
     
     row = [XLFormRowDescriptor formRowDescriptorWithTag:@"startDirectoryPhotosTab" rowType:XLFormRowDescriptorTypeButton];
-    NSString *directory = [CCUtility getStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
-    NSString *folder = [directory stringByReplacingOccurrencesOfString:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl] withString:@""];
-    if ([folder isEqualToString:@""])
-        folder = @"/";
-    row.title = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"_start_directory_photos_tab_", nil), folder];
-    //[row.cellConfig setObject:[UIImage imageNamed:@"tabBarPhotos"] forKey:@"imageView.image"];
+    [row.cellConfig setObject:[UIImage imageNamed:@"tabBarPhotos"] forKey:@"imageView.image"];
     [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
     [row.cellConfig setObject:[UIColor blackColor] forKey:@"textLabel.textColor"];
     [row.cellConfig setObject:@(NSTextAlignmentLeft) forKey:@"textLabel.textAlignment"];
@@ -189,7 +184,7 @@
     [appDelegate aspectNavigationControllerBar:self.navigationController.navigationBar online:[appDelegate.reachability isReachable] hidden:NO];
     [appDelegate aspectTabBar:self.tabBarController.tabBar hidden:NO];
     
-    [self recalculateSize];
+    [self reloadForm];
 }
 
 - (void)changeTheming
@@ -234,6 +229,31 @@
     }
 }
 
+- (void)reloadForm
+{
+    // FOLDER TAb "Photos"
+    XLFormRowDescriptor *rowStartDirectoryPhotosTab = [self.form formRowWithTag:@"startDirectoryPhotosTab"];
+    
+    NSString *directory = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
+    NSString *folder = [directory stringByReplacingOccurrencesOfString:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl] withString:@""];
+    if ([folder isEqualToString:@""])
+        folder = @"/";
+    rowStartDirectoryPhotosTab.title = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"_start_directory_photos_tab_", nil), folder];
+    
+    [self.tableView reloadData];
+    
+    // CLEAR CACHE
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+        
+        XLFormRowDescriptor *rowAzzeraCache = [self.form formRowWithTag:@"azzeracache"];
+        
+        NSString *size = [CCUtility transformedSize:[[self getUserDirectorySize] longValue]];
+        rowAzzeraCache.title = [NSString stringWithFormat:NSLocalizedString(@"_clear_cache_", nil), size];
+        
+        [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
+    });
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark == Action ==
 #pragma --------------------------------------------------------------------------------------------
@@ -402,7 +422,7 @@
         for (NSString *file in tmpDirectory)
             [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
         
-        [self recalculateSize];
+        [self reloadForm];
         
         [appDelegate maintenanceMode:NO];
         
@@ -465,24 +485,6 @@
     }
 }
 
-- (void)recalculateSize
-{
-    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
-        
-        self.form.delegate = nil;
-        
-        XLFormRowDescriptor *rowAzzeraCache = [self.form formRowWithTag:@"azzeracache"];
-        
-        NSString *size = [CCUtility transformedSize:[[self getUserDirectorySize] longValue]];
-        rowAzzeraCache.title = [NSString stringWithFormat:NSLocalizedString(@"_clear_cache_", nil), size];
-        //rowAzzeraCache.title = NSLocalizedString(@"_clear_cache_no_size_", nil);
-        
-        [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
-        
-        self.form.delegate = self;
-    });
-}
-
 - (void)exitNextcloud:(XLFormRowDescriptor *)sender
 {
     [self deselectFormRow:sender];
@@ -543,22 +545,15 @@
 
 - (void)moveServerUrlTo:(NSString *)serverUrlTo title:(NSString *)title
 {
-    NSString *oldStartDirectoryPhotosTab = [CCUtility getStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
-
-    [CCUtility setStartDirectoryPhotosTab:serverUrlTo];
-        
+    NSString *oldStartDirectoryPhotosTab = [[NCManageDatabase sharedInstance] getAccountStartDirectoryPhotosTab:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl]];
+    
     if (![serverUrlTo isEqualToString:oldStartDirectoryPhotosTab]) {
     
         // Save
-        [CCUtility setStartDirectoryPhotosTab:serverUrlTo];
-        
-        // Reload row
-        XLFormRowDescriptor *rowStartDirectoryPhotosTab = [self.form formRowWithTag:@"startDirectoryPhotosTab"];
-        NSString *folder = [serverUrlTo stringByReplacingOccurrencesOfString:[CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl] withString:@""];
-        if ([folder isEqualToString:@""])
-            folder = @"/";
-        rowStartDirectoryPhotosTab.title = [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"_start_directory_photos_tab_", nil), folder];
-        [self.tableView reloadData];
+        [[NCManageDatabase sharedInstance] setAccountStartDirectoryPhotosTab:serverUrlTo];
+        
+        // Reload form
+        [self reloadForm];
         
         // search PhotoVideo with new start directory
         [appDelegate.activePhotos searchPhotoVideo];

+ 0 - 2
iOSClient/Synchronize/CCSynchronize.m

@@ -44,8 +44,6 @@
             
             sharedSynchronize = [CCSynchronize new];
             sharedSynchronize.foldersInSynchronized = [NSMutableOrderedSet new];
-            sharedSynchronize->appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
-
         }
         return sharedSynchronize;
     }

+ 0 - 3
iOSClient/Utility/CCUtility.h

@@ -145,9 +145,6 @@
 
 + (void)clearAllKeysEndToEnd:(NSString *)account;
 
-+ (void)setStartDirectoryPhotosTab:(NSString *)directory;
-+ (NSString *)getStartDirectoryPhotosTab:(NSString *)homeServerUrl;
-
 // ===== Varius =====
 
 + (NSString *)getUserAgent;

+ 0 - 18
iOSClient/Utility/CCUtility.m

@@ -516,24 +516,6 @@
     [self setEndToEndPublicKeyServer:account publicKey:nil];
 }
 
-+ (void)setStartDirectoryPhotosTab:(NSString *)directory
-{
-    [UICKeyChainStore setString:directory forKey:@"startDirectoryPhotosTab" service:k_serviceShareKeyChain];
-}
-
-+ (NSString *)getStartDirectoryPhotosTab:(NSString *)homeServerUrl
-{
-    NSString *valueString = [UICKeyChainStore stringForKey:@"startDirectoryPhotosTab" service:k_serviceShareKeyChain];
-    
-    // Default TRUE
-    if (valueString == nil) {
-        [self setStartDirectoryPhotosTab:homeServerUrl];
-        valueString = homeServerUrl;
-    }
-    
-    return valueString;
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Varius =====
 #pragma --------------------------------------------------------------------------------------------