瀏覽代碼

reducing the code complexitiy, just always call refreshMessagees()/dcContext.getChatMsgs() on DC_EVENT_MSGS_CHANGED, DC_EVENT_MSG_READ, DC_EVENT_MSG_DELIVERED and DC_EVENT_MSG_FAILED

cyberta 2 年之前
父節點
當前提交
dfaa35214d
共有 1 個文件被更改,包括 7 次插入31 次删除
  1. 7 31
      deltachat-ios/Chat/ChatViewController.swift

+ 7 - 31
deltachat-ios/Chat/ChatViewController.swift

@@ -563,20 +563,19 @@ class ChatViewController: UITableViewController, UITableViewDropDelegate {
                 logger.debug(">>> msgChangedObserver: \(String(describing: ui["message_id"]))")
                 logger.debug(">>> msgChangedObserver: \(String(describing: ui["message_id"]))")
                 if self.dcChat.canSend, let id = ui["message_id"] as? Int, id > 0 {
                 if self.dcChat.canSend, let id = ui["message_id"] as? Int, id > 0 {
                     let msg = self.dcContext.getMessage(id: id)
                     let msg = self.dcContext.getMessage(id: id)
-                    if msg.isInfo,
-                       let parent = msg.parent,
-                       parent.type == DC_MSG_WEBXDC {
-                        self.refreshMessages()
-                    } else {
-                        self.updateMessage(msg)
+                    if msg.type == DC_MSG_WEBXDC,
+                       msg.chatId == self.chatId {
+                        // webxdc draft got updated
+                        self.draft.draftMsg = msg
+                        self.configureDraftArea(draft: self.draft, animated: false)
+                        return
                     }
                     }
-                } else {
                     self.refreshMessages()
                     self.refreshMessages()
                     DispatchQueue.main.async {
                     DispatchQueue.main.async {
                         self.updateScrollDownButtonVisibility()
                         self.updateScrollDownButtonVisibility()
                     }
                     }
+                    self.updateTitle()
                 }
                 }
-                self.updateTitle()
             }
             }
         }
         }
 
 
@@ -1642,29 +1641,6 @@ class ChatViewController: UITableViewController, UITableViewDropDelegate {
         appDelegate.locationManager.shareLocation(chatId: self.chatId, duration: seconds)
         appDelegate.locationManager.shareLocation(chatId: self.chatId, duration: seconds)
     }
     }
 
 
-    func updateMessage(_ msg: DcMsg) {
-        if messageIds.firstIndex(of: msg.id) != nil {
-            reloadData()
-        } else {
-            // new outgoing message
-            if msg.state != DC_STATE_OUT_DRAFT,
-               msg.chatId == chatId {
-                logger.debug(">>> updateMessage: outgoing message \(msg.id)")
-                if let newMsgMarkerIndex = messageIds.firstIndex(of: Int(DC_MSG_ID_MARKER1)) {
-                    messageIds.remove(at: newMsgMarkerIndex)
-                }
-                insertMessage(msg)
-            } else if msg.type == DC_MSG_WEBXDC,
-                      msg.chatId == chatId {
-                // webxdc draft got updated
-                draft.draftMsg = msg
-                configureDraftArea(draft: draft, animated: false)
-            } else {
-                logger.debug(">>> updateMessage: unhandled message \(msg.id) - msg.chatId: \(msg.chatId) vs. chatId: \(chatId) - msg.state: \(msg.state)")
-            }
-        }
-    }
-
     func insertMessage(_ message: DcMsg) {
     func insertMessage(_ message: DcMsg) {
         logger.debug(">>> insertMessage \(message.id)")
         logger.debug(">>> insertMessage \(message.id)")
         markSeenMessage(id: message.id)
         markSeenMessage(id: message.id)