Explorar o código

precheck with DC_INFO_WEBXDC_INFO_MESSAGE (#1749)

* precheck with DC_INFO_WEBXDC_INFO_MESSAGE, saving one database call if the info is not a webxdc info message

* remove not needed comparison to DC_MSG_WEBXDC
bjoern %!s(int64=2) %!d(string=hai) anos
pai
achega
e4bf9300d4

+ 4 - 0
DcCore/DcCore/DC/Wrapper.swift

@@ -1207,6 +1207,10 @@ public class DcMsg {
         return dc_msg_is_info(messagePointer) == 1
     }
 
+    public var infoType: Int32 {
+        return dc_msg_get_info_type(messagePointer)
+    }
+
     public var isSetupMessage: Bool {
         return dc_msg_is_setupmessage(messagePointer) == 1
     }

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

@@ -746,7 +746,7 @@ class ChatViewController: UITableViewController, UITableViewDropDelegate {
         if message.isInfo {
             let cell = tableView.dequeueReusableCell(withIdentifier: "info", for: indexPath) as? InfoMessageCell ?? InfoMessageCell()
             cell.showSelectionBackground(tableView.isEditing)
-            if let parent = message.parent, parent.type == DC_MSG_WEBXDC {
+            if message.infoType == DC_INFO_WEBXDC_INFO_MESSAGE, let parent = message.parent {
                 cell.update(text: message.text, image: parent.getWebxdcPreviewImage())
             } else {
                 cell.update(text: message.text)
@@ -973,7 +973,7 @@ class ChatViewController: UITableViewController, UITableViewDropDelegate {
             if let url = NSURL(string: message.getVideoChatUrl()) {
                 UIApplication.shared.open(url as URL)
             }
-        } else if message.isInfo, let parent = message.parent, parent.type == DC_MSG_WEBXDC {
+        } else if message.isInfo, message.infoType == DC_INFO_WEBXDC_INFO_MESSAGE, let parent = message.parent {
             scrollToMessage(msgId: parent.id)
         }
         _ = handleUIMenu()