From eb94a1114a8a820734e553bfe4814dcde16da8f9 Mon Sep 17 00:00:00 2001 From: Frederic Jacobs Date: Mon, 14 Sep 2015 06:40:36 +0200 Subject: [PATCH] Fixing issue with message ordering. --- Signal/src/textsecure/Contacts/TSThread.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Signal/src/textsecure/Contacts/TSThread.m b/Signal/src/textsecure/Contacts/TSThread.m index 0695ec326..bf7204e95 100644 --- a/Signal/src/textsecure/Contacts/TSThread.m +++ b/Signal/src/textsecure/Contacts/TSThread.m @@ -118,9 +118,16 @@ - (void)updateWithLastMessage:(TSInteraction *)lastMessage transaction:(YapDatabaseReadWriteTransaction *)transaction { - if (!_lastMessageDate || [lastMessage.date timeIntervalSinceDate:self.lastMessageDate] > 0) { + NSDate *lastMessageDate = lastMessage.date; + + if ([lastMessage isKindOfClass:[TSIncomingMessage class]]) { + TSIncomingMessage *message = (TSIncomingMessage*)lastMessage; + lastMessageDate = message.receivedAt; + } + + if (!_lastMessageDate || [lastMessageDate timeIntervalSinceDate:self.lastMessageDate] > 0) { _latestMessageId = lastMessage.uniqueId; - _lastMessageDate = lastMessage.date; + _lastMessageDate = lastMessageDate; [self saveWithTransaction:transaction]; }