marinofaggiana 4 年之前
父節點
當前提交
d0099aac1c

+ 1 - 1
iOSClient/CCGlobal.h

@@ -84,7 +84,7 @@
 
 // Database Realm
 #define k_databaseDefault                               @"nextcloud.realm"
-#define k_databaseSchemaVersion                         110
+#define k_databaseSchemaVersion                         111
 
 // Intro selector
 #define k_intro_login                                   0

+ 3 - 3
iOSClient/Database/NCDatabase.swift

@@ -213,7 +213,7 @@ class tableDirectory: Object {
     @objc dynamic var ocId = ""
     @objc dynamic var offline: Bool = false
     @objc dynamic var permissions = ""
-    @objc dynamic var richWorkspace = ""
+    @objc dynamic var richWorkspace: String?
     @objc dynamic var serverUrl = ""
     
     override static func primaryKey() -> String {
@@ -323,7 +323,7 @@ class tableMedia: Object {
     @objc dynamic var quotaUsedBytes: Double = 0
     @objc dynamic var quotaAvailableBytes: Double = 0
     @objc dynamic var resourceType = ""
-    @objc dynamic var richWorkspace = ""
+    @objc dynamic var richWorkspace: String?
     @objc dynamic var serverUrl = ""
     @objc dynamic var session = ""
     @objc dynamic var sessionError = ""
@@ -371,7 +371,7 @@ class tableMetadata: Object {
     @objc dynamic var quotaUsedBytes: Double = 0
     @objc dynamic var quotaAvailableBytes: Double = 0
     @objc dynamic var resourceType = ""
-    @objc dynamic var richWorkspace = ""
+    @objc dynamic var richWorkspace: String?
     @objc dynamic var serverUrl = ""
     @objc dynamic var session = ""
     @objc dynamic var sessionError = ""

+ 5 - 3
iOSClient/Database/NCManageDatabase.swift

@@ -111,7 +111,7 @@ class NCManageDatabase: NSObject {
                         migration.deleteData(forType: tableComments.className())
                     }
                     
-                    if oldSchemaVersion < 110 {
+                    if oldSchemaVersion < 111 {
                         migration.deleteData(forType: tableMetadata.className())
                         migration.deleteData(forType: tableMedia.className())
                         migration.deleteData(forType: tableDirectory.className())
@@ -1270,7 +1270,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func setDirectory(ocId: String, serverUrl: String, richWorkspace: String, account: String) {
+    @objc func setDirectory(ocId: String, serverUrl: String, richWorkspace: String?, account: String) {
         
         let realm = try! Realm()
         realm.beginWrite()
@@ -1284,7 +1284,9 @@ class NCManageDatabase: NSObject {
             addObject.ocId = ocId
         }
         addObject.account = account
-        addObject.richWorkspace = richWorkspace
+        if let richWorkspace = richWorkspace {
+            addObject.richWorkspace = richWorkspace
+        }
         addObject.serverUrl = serverUrl
         
         realm.add(addObject, update: .all)

+ 2 - 1
iOSClient/Main/Menu/AppDelegate+Menu.swift

@@ -46,6 +46,7 @@ extension AppDelegate {
         let appDelegate = UIApplication.shared.delegate as! AppDelegate
         let directEditingCreators = NCManageDatabase.sharedInstance.getDirectEditingCreators(account: appDelegate.activeAccount)
         let isEncrypted = CCUtility.isFolderEncrypted(appDelegate.activeMain.serverUrl, e2eEncrypted: false, account: appDelegate.activeAccount)
+        let isRichWorkspacesEnabled = appDelegate.activeMain.metadata.richWorkspace == nil ? false : true
         let serverVersionMajor = NCManageDatabase.sharedInstance.getCapabilitiesServerInt(account: appDelegate.activeAccount, elements: NCElementsJSON.shared.capabilitiesVersionMajor)
         
         actions.append(
@@ -132,7 +133,7 @@ extension AppDelegate {
             )
         )
 
-        if (serverVersionMajor >= k_nextcloud_version_18_0 && (self.activeMain.richWorkspaceText == nil || self.activeMain.richWorkspaceText.count == 0)) && !isEncrypted && NCCommunication.shared.isNetworkReachable() {
+        if serverVersionMajor >= k_nextcloud_version_18_0 && isRichWorkspacesEnabled && (self.activeMain.richWorkspaceText == nil || self.activeMain.richWorkspaceText.count == 0) && !isEncrypted && NCCommunication.shared.isNetworkReachable() {
             actions.append(
                 NCMenuAction(
                     title: NSLocalizedString("_add_folder_info_", comment: ""),

+ 1 - 1
iOSClient/Networking/NCOperationQueue.swift

@@ -223,7 +223,7 @@ class NCOperationRemoveDeletedFileQueue: ConcurrentOperation {
                     NotificationCenter.default.post(name: Notification.Name.init(rawValue: k_notificationCenter_deleteFile), object: nil, userInfo: ["metadata": self.metadata, "errorCode": errorCode])
                 }
                 self.finish()
-           }
+            }
         }
     }
 }

+ 5 - 5
iOSClient/RichWorkspace/NCViewerRichWorkspace.swift

@@ -58,12 +58,12 @@ import MarkdownKit
         NCNetworking.shared.readFile(serverUrlFileName: serverUrl, account: appDelegate.activeAccount) { (account, metadata, errorCode, errorDescription) in
             
             if errorCode == 0 && account == self.appDelegate.activeAccount {
-                
-                NCManageDatabase.sharedInstance.setDirectory(ocId: metadata!.ocId, serverUrl: self.serverUrl, richWorkspace: metadata!.richWorkspace, account: account)
-                if self.richWorkspaceText != metadata?.richWorkspace {
+                guard let metadata = metadata else { return }
+                NCManageDatabase.sharedInstance.setDirectory(ocId: metadata.ocId, serverUrl: self.serverUrl, richWorkspace: metadata.richWorkspace, account: account)
+                if self.richWorkspaceText != metadata.richWorkspace && metadata.richWorkspace != nil {
                     self.appDelegate.activeMain.richWorkspaceText = self.richWorkspaceText
-                    self.richWorkspaceText = metadata!.richWorkspace
-                    self.textView.attributedText = self.markdownParser.parse(metadata!.richWorkspace)
+                    self.richWorkspaceText = metadata.richWorkspace!
+                    self.textView.attributedText = self.markdownParser.parse(metadata.richWorkspace!)
                 }
             }
         }