From 2c4b6919ef42623b8275d8bfeba183b8e352e4c8 Mon Sep 17 00:00:00 2001 From: Devin R Date: Thu, 30 Apr 2020 06:57:25 -0400 Subject: [PATCH] message: only push message when timestamp is larger than last msg in queue --- matrix_sdk/src/models/message.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/matrix_sdk/src/models/message.rs b/matrix_sdk/src/models/message.rs index e65de74a..9ad81820 100644 --- a/matrix_sdk/src/models/message.rs +++ b/matrix_sdk/src/models/message.rs @@ -71,6 +71,13 @@ impl MessageQueue { /// /// Removes the oldest element in the queue if there are more than 10 elements. pub fn push(&mut self, msg: MessageEvent) -> bool { + // only push new messages into the queue + if let Some(latest) = self.msgs.last() { + if msg.origin_server_ts < latest.origin_server_ts { + return false; + } + } + let message = MessageWrapper(msg); match self.msgs.binary_search_by(|m| m.cmp(&message)) { Ok(pos) => self.msgs.insert(pos, message),