瀏覽代碼

move dc_get_msg_html() to DcContext

cyberta 4 年之前
父節點
當前提交
9651ebfbf9

+ 7 - 7
DcCore/DcCore/DC/Wrapper.swift

@@ -263,6 +263,13 @@ public class DcContext {
         return "ErrGetMsgInfo"
         return "ErrGetMsgInfo"
     }
     }
 
 
+    public func getMsgHtml(msgId: Int) -> String {
+        guard let cString = dc_get_msg_html(self.contextPointer, UInt32(msgId)) else { return "" }
+        let swiftString = String(cString: cString)
+        dc_str_unref(cString)
+        return swiftString
+    }
+
     public func deleteMessage(msgId: Int) {
     public func deleteMessage(msgId: Int) {
         dc_delete_msgs(contextPointer, [UInt32(msgId)], 1)
         dc_delete_msgs(contextPointer, [UInt32(msgId)], 1)
     }
     }
@@ -1019,13 +1026,6 @@ public class DcMsg {
         return dc_msg_has_html(messagePointer) == 1
         return dc_msg_has_html(messagePointer) == 1
     }
     }
 
 
-    public lazy var html: String = {
-        guard let cString = dc_get_msg_html(DcContext.shared.contextPointer, dc_msg_get_id(messagePointer)) else { return "" }
-        let swiftString = String(cString: cString)
-        dc_str_unref(cString)
-        return swiftString
-    }()
-
     public var setupCodeBegin: String {
     public var setupCodeBegin: String {
         guard let cString = dc_msg_get_setupcodebegin(messagePointer) else { return "" }
         guard let cString = dc_msg_get_setupcodebegin(messagePointer) else { return "" }
         let swiftString = String(cString: cString)
         let swiftString = String(cString: cString)

+ 1 - 1
deltachat-ios/Chat/ChatViewController.swift

@@ -1274,7 +1274,7 @@ extension ChatViewController: BaseMessageCellDelegate {
             return
             return
         }
         }
         let msg = DcMsg(id: messageIds[indexPath.row])
         let msg = DcMsg(id: messageIds[indexPath.row])
-        let fullMessageViewController = FullMessageViewController(message: msg)
+        let fullMessageViewController = FullMessageViewController(dcContext: dcContext, messageId: msg.id)
         navigationController?.pushViewController(fullMessageViewController, animated: true)
         navigationController?.pushViewController(fullMessageViewController, animated: true)
     }
     }
 
 

+ 6 - 4
deltachat-ios/Controller/FullMessageViewController.swift

@@ -11,7 +11,8 @@ class FullMessageViewController: WebViewViewController {
         return button
         return button
     }
     }
 
 
-    var message: DcMsg
+    var messageId: Int
+    var dcContext: DcContext
     private var loadContentOnce = false
     private var loadContentOnce = false
 
 
     // Block just everything :)
     // Block just everything :)
@@ -29,8 +30,9 @@ class FullMessageViewController: WebViewViewController {
     """
     """
     
     
 
 
-    init(message: DcMsg) {
-        self.message = message
+    init(dcContext: DcContext, messageId: Int) {
+        self.dcContext = dcContext
+        self.messageId = messageId
         super.init()
         super.init()
     }
     }
 
 
@@ -126,7 +128,7 @@ class FullMessageViewController: WebViewViewController {
     private func loadHtml() {
     private func loadHtml() {
         DispatchQueue.global(qos: .background).async { [weak self] in
         DispatchQueue.global(qos: .background).async { [weak self] in
             guard let self = self else { return }
             guard let self = self else { return }
-            let html = self.message.html
+            let html = self.dcContext.getMsgHtml(msgId: self.messageId)
             DispatchQueue.main.async {
             DispatchQueue.main.async {
                 self.webView.loadHTMLString(html, baseURL: nil)
                 self.webView.loadHTMLString(html, baseURL: nil)
             }
             }