B. Petersen 2 лет назад
Родитель
Сommit
aef5424599

+ 3 - 5
deltachat-ios/Chat/ChatViewController.swift

@@ -486,14 +486,12 @@ class ChatViewController: UITableViewController, UITableViewDropDelegate {
         if RelayHelper.shared.isForwarding() {
             if RelayHelper.shared.forwardIds != nil {
                 askToForwardMessage()
-            } else if RelayHelper.shared.forwardFileBase64 != nil || RelayHelper.shared.forwardText != nil {
+            } else if RelayHelper.shared.forwardFileData != nil || RelayHelper.shared.forwardText != nil {
                 if let text = RelayHelper.shared.forwardText {
                     messageInputBar.inputTextView.text = text
                 }
-                if let fileBase64 = RelayHelper.shared.forwardFileBase64 {
-                    guard let data = Data(base64Encoded: fileBase64) else { return }
-                    guard let name = RelayHelper.shared.forwardFileName else { return }
-                    guard let file = FileHelper.saveData(data: data, name: name, directory: .cachesDirectory) else { return }
+                if let data = RelayHelper.shared.forwardFileData {
+                    guard let file = FileHelper.saveData(data: data, name: RelayHelper.shared.forwardFileName, directory: .cachesDirectory) else { return }
                     stageDocument(url: NSURL(fileURLWithPath: file))
                 }
                 RelayHelper.shared.finishRelaying()

+ 3 - 2
deltachat-ios/Controller/WebxdcViewController.swift

@@ -363,8 +363,9 @@ extension WebxdcViewController: WKScriptMessageHandler {
                 logger.error("failed to parse sendToChat parameters \(message.body)")
                 return
             }
-            logger.debug("send to chat: \(message.body)")
-            RelayHelper.shared.setForwardMessage(text: dict["text"] as? String, fileBase64: dict["base64"] as? String, fileName: dict["name"] as? String)
+            let base64 = dict["base64"] as? String
+            let data = base64 != nil ? Data(base64Encoded: base64 ?? "") : nil
+            RelayHelper.shared.setForwardMessage(text: dict["text"] as? String, fileData: data, fileName: dict["name"] as? String)
             navigationController?.popViewControllers(viewsToPop: 2, animated: true) // TODO: xdc may be in profile, all media, whatnot, just popping 2 is wrong
 
         default:

+ 5 - 5
deltachat-ios/Helper/RelayHelper.swift

@@ -7,7 +7,7 @@ class RelayHelper {
 
     var forwardIds: [Int]?
     var forwardText: String?
-    var forwardFileBase64: String?
+    var forwardFileData: Data?
     var forwardFileName: String?
 
     var mailtoDraft: String = ""
@@ -28,10 +28,10 @@ class RelayHelper {
 
     // forwarding messages
 
-    func setForwardMessage(text: String?, fileBase64: String?, fileName: String?) {
+    func setForwardMessage(text: String?, fileData: Data?, fileName: String?) {
         finishRelaying()
         self.forwardText = text
-        self.forwardFileBase64 = fileBase64
+        self.forwardFileData = fileData
         self.forwardFileName = fileName
     }
 
@@ -48,7 +48,7 @@ class RelayHelper {
     }
 
     func isForwarding() -> Bool {
-        return forwardIds != nil || forwardText != nil || forwardFileBase64 != nil
+        return forwardIds != nil || forwardText != nil || forwardFileData != nil
     }
 
     func forwardIdsAndFinishRelaying(to chat: Int) {
@@ -61,7 +61,7 @@ class RelayHelper {
     func finishRelaying() {
         forwardIds = nil
         forwardText = nil
-        forwardFileBase64 = nil
+        forwardFileData = nil
         forwardFileName = nil
         mailtoDraft = ""
         mailtoAddress = nil