marinofaggiana 4 жил өмнө
parent
commit
48f8e8ec77

+ 0 - 1
iOSClient/AppDelegate.m

@@ -184,7 +184,6 @@
     if (self.activeAccount.length == 0 || self.maintenanceMode) { return; }
     if (self.activeAccount.length == 0 || self.maintenanceMode) { return; }
     
     
     [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:k_notificationCenter_applicationWillEnterForeground object:nil];
     [[NSNotificationCenter defaultCenter] postNotificationOnMainThreadName:k_notificationCenter_applicationWillEnterForeground object:nil];
-
     
     
     NSLog(@"[LOG] Request Passcode");
     NSLog(@"[LOG] Request Passcode");
     [self passcodeWithAutomaticallyPromptForBiometricValidation:true];
     [self passcodeWithAutomaticallyPromptForBiometricValidation:true];

+ 5 - 16
iOSClient/Database/NCManageDatabase.swift

@@ -1265,26 +1265,15 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func setDirectory(ocId: String, serverUrl: String, richWorkspace: String?, account: String) {
+    @objc func setDirectory(richWorkspace: String?, serverUrl: String, account: String) {
         
         
         let realm = try! Realm()
         let realm = try! Realm()
         realm.beginWrite()
         realm.beginWrite()
-        
-        var addObject = tableDirectory()
-        
-        let result = realm.objects(tableDirectory.self).filter("ocId == %@", ocId).first
-        if result != nil {
-            addObject = result!
-        } else {
-            addObject.ocId = ocId
-        }
-        addObject.account = account
-        if let richWorkspace = richWorkspace {
-            addObject.richWorkspace = richWorkspace
+                
+        if let result = realm.objects(tableDirectory.self).filter("serverUrl == %@", serverUrl).first {
+            result.richWorkspace = richWorkspace
+            realm.add(result, update: .all)
         }
         }
-        addObject.serverUrl = serverUrl
-        
-        realm.add(addObject, update: .all)
         
         
         do {
         do {
             try realm.commitWrite()
             try realm.commitWrite()

+ 11 - 15
iOSClient/Main/CCMain.m

@@ -240,6 +240,13 @@
         self.serverUrl = [CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl];
         self.serverUrl = [CCUtility getHomeServerUrlActiveUrl:appDelegate.activeUrl];
     }
     }
     
     
+    // RichWorkspace
+    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
+    if (![self.richWorkspaceText isEqualToString:directory.richWorkspace]) {
+        self.richWorkspaceText = directory.richWorkspace;
+        [self setTableViewHeader];
+    }
+    
     // Query data source
     // Query data source
     if (self.searchController.isActive == false) {
     if (self.searchController.isActive == false) {
         [self reloadDatasource:self.serverUrl ocId:nil];
         [self reloadDatasource:self.serverUrl ocId:nil];
@@ -268,12 +275,6 @@
         }
         }
     }
     }
 
 
-    if (appDelegate.activeAccount.length > 0 && self.serverUrl != nil) {
-        // Get RichWorkspace
-        tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
-        self.richWorkspaceText = directory.richWorkspace;
-    }
-    
     // Title
     // Title
     [self setTitle];
     [self setTitle];
 }
 }
@@ -1171,18 +1172,13 @@
     if (!_serverUrl || !appDelegate.activeAccount || appDelegate.maintenanceMode)
     if (!_serverUrl || !appDelegate.activeAccount || appDelegate.maintenanceMode)
         return;
         return;
     
     
-    // RichWorkspace
-    tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, self.serverUrl]];
-    self.richWorkspaceText = directory.richWorkspace;
-    [self setTableViewHeader];
-    
     [[NCNetworking shared] readFileWithServerUrlFileName:self.serverUrl account:appDelegate.activeAccount completion:^(NSString *account, tableMetadata *metadata, NSInteger errorCode, NSString *errorDescription) {
     [[NCNetworking shared] readFileWithServerUrlFileName:self.serverUrl account:appDelegate.activeAccount completion:^(NSString *account, tableMetadata *metadata, NSInteger errorCode, NSString *errorDescription) {
-        
         if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
         if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
-            
             // Rich Workspace
             // Rich Workspace
-            [[NCManageDatabase sharedInstance] setDirectoryWithOcId:metadata.ocId serverUrl:self.serverUrl richWorkspace:metadata.richWorkspace account:account];
-            self.richWorkspaceText = metadata.richWorkspace;
+            [[NCManageDatabase sharedInstance] setDirectoryWithRichWorkspace:metadata.richWorkspace serverUrl:self.serverUrl account:appDelegate.activeAccount]; 
+            if (![self.richWorkspaceText isEqualToString:metadata.richWorkspace]) {
+                self.richWorkspaceText = metadata.richWorkspace;
+            }
             [self setTableViewHeader];
             [self setTableViewHeader];
             
             
             tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", account, self.serverUrl]];
             tableDirectory *directory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", account, self.serverUrl]];

+ 1 - 1
iOSClient/RichWorkspace/NCViewerRichWorkspace.swift

@@ -59,7 +59,7 @@ import MarkdownKit
             
             
             if errorCode == 0 && account == self.appDelegate.activeAccount {
             if errorCode == 0 && account == self.appDelegate.activeAccount {
                 guard let metadata = metadata else { return }
                 guard let metadata = metadata else { return }
-                NCManageDatabase.sharedInstance.setDirectory(ocId: metadata.ocId, serverUrl: self.serverUrl, richWorkspace: metadata.richWorkspace, account: account)
+                NCManageDatabase.sharedInstance.setDirectory(richWorkspace: metadata.richWorkspace, serverUrl: self.serverUrl, account: account)
                 if self.richWorkspaceText != metadata.richWorkspace && metadata.richWorkspace != nil {
                 if self.richWorkspaceText != metadata.richWorkspace && metadata.richWorkspace != nil {
                     self.appDelegate.activeMain.richWorkspaceText = self.richWorkspaceText
                     self.appDelegate.activeMain.richWorkspaceText = self.richWorkspaceText
                     self.richWorkspaceText = metadata.richWorkspace!
                     self.richWorkspaceText = metadata.richWorkspace!