marinofaggiana 4 жил өмнө
parent
commit
b91cd6816a

+ 1 - 1
iOSClient/Favorites/CCFavorites.m

@@ -585,7 +585,7 @@
                         
                     [self shouldPerformSegue:self.metadata selector:@""];
                 
-                    } else if ([self.metadata.typeFile isEqualToString: k_metadataTypeFile_document] && [[NCUtility sharedInstance] isDirectEditing:self.metadata] != nil) {
+                } else if ([self.metadata.typeFile isEqualToString: k_metadataTypeFile_document] && [[NCUtility sharedInstance] isDirectEditingWithAccount:self.metadata.account contentType:self.metadata.contentType] != nil) {
                         
                         if (NCCommunication.shared.isNetworkReachable) {
                             [self shouldPerformSegue:self.metadata selector:@""];

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -2472,7 +2472,7 @@
                     
                     [self shouldPerformSegue:self.metadata selector:@""];
                     
-                } else if ([self.metadata.typeFile isEqualToString: k_metadataTypeFile_document] && [[NCUtility sharedInstance] isDirectEditing:self.metadata] != nil) {
+                } else if ([self.metadata.typeFile isEqualToString: k_metadataTypeFile_document] && [[NCUtility sharedInstance] isDirectEditingWithAccount:self.metadata.account contentType:self.metadata.contentType] != nil) {
                     
                     if (NCCommunication.shared.isNetworkReachable) {
                         [self shouldPerformSegue:self.metadata selector:@""];

+ 6 - 11
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -267,7 +267,10 @@ import NCCommunication
             return
         } else {
             
-            fileNameForm = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
+            let result = NCCommunicationCommon.shared.getInternalContenType(fileName: fileNameForm as! String, contentType: "", directory: false)
+            if NCUtility.sharedInstance.isDirectEditing(account: appDelegate.activeAccount, contentType: result.contentType) == nil {
+                fileNameForm = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
+            }
             
             if NCUtility.sharedInstance.getMetadataConflict(account: appDelegate.activeAccount, serverUrl: serverUrl, fileName: String(describing: fileNameForm)) != nil {
                 
@@ -322,18 +325,10 @@ import NCCommunication
                 if errorCode == 0 && account == self.appDelegate.activeAccount {
                     
                     if url != nil && url!.count > 0 {
-                        
-                        var contentType = "text/markdown"
-                        if let directEditingCreators = NCManageDatabase.sharedInstance.getDirectEditingCreators(account: self.appDelegate.activeAccount) {
-                            for directEditingCreator in directEditingCreators {
-                                if directEditingCreator.ext == self.fileNameExtension {
-                                    contentType = directEditingCreator.mimetype
-                                }
-                            }
-                        }
+                        let result = NCCommunicationCommon.shared.getInternalContenType(fileName: fileName, contentType: "", directory: false)
                         
                         self.dismiss(animated: true, completion: {
-                            let metadata = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.activeAccount, fileName: (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, url: url ?? "", contentType: contentType)
+                            let metadata = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.activeAccount, fileName: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, url: url ?? "", contentType: result.contentType)
                             self.appDelegate.activeMain.readFileReloadFolder()
                             self.appDelegate.activeMain.shouldPerformSegue(metadata, selector: "")
                         })

+ 2 - 2
iOSClient/Main/NCDetailViewController.swift

@@ -481,9 +481,9 @@ class NCDetailViewController: UIViewController {
             }
             
             // DirectEditinf: Nextcloud Text - OnlyOffice
-            if NCUtility.sharedInstance.isDirectEditing(metadata) != nil &&  NCCommunication.shared.isNetworkReachable() {
+            if NCUtility.sharedInstance.isDirectEditing(account: metadata.account, contentType: metadata.contentType) != nil &&  NCCommunication.shared.isNetworkReachable() {
                 
-                let editor = NCUtility.sharedInstance.isDirectEditing(metadata)!
+                guard let editor = NCUtility.sharedInstance.isDirectEditing(account: metadata.account, contentType: metadata.contentType) else { return }
                 if editor == k_editor_text || editor == k_editor_onlyoffice {
                     
                     NCUtility.sharedInstance.startActivityIndicator(view: backgroundView)

+ 8 - 4
iOSClient/Utility/NCUtility.swift

@@ -336,20 +336,24 @@ class NCUtility: NSObject {
         return false
     }
     
-    @objc func isDirectEditing(_ metadata: tableMetadata) -> String? {
+    @objc func isDirectEditing(account: String, contentType: String) -> String? {
         
-        guard let results = NCManageDatabase.sharedInstance.getDirectEditingEditors(account: metadata.account) else {
+        guard let results = NCManageDatabase.sharedInstance.getDirectEditingEditors(account: account) else {
             return nil
         }
         
         for result: tableDirectEditingEditors in results {
             for mimetype in result.mimetypes {
-                if mimetype == metadata.contentType {
+                if mimetype == contentType {
+                    return result.editor
+                }
+                // HARD CODE
+                if mimetype == "text/markdown" && contentType == "text/x-markdown" {
                     return result.editor
                 }
             }
             for mimetype in result.optionalMimetypes {
-                if mimetype == metadata.contentType {
+                if mimetype == contentType {
                     return result.editor
                 }
             }