From 385137068f44f1d70c5efb2c88415cb3445ee135 Mon Sep 17 00:00:00 2001 From: Jamie Kyle <113370520+jamiebuilds-signal@users.noreply.github.com> Date: Tue, 28 Nov 2023 14:53:43 -0800 Subject: [PATCH] Fix conversation unread count overwritten --- ts/util/callDisposition.ts | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/ts/util/callDisposition.ts b/ts/util/callDisposition.ts index 5728547dd..6699a88f1 100644 --- a/ts/util/callDisposition.ts +++ b/ts/util/callDisposition.ts @@ -894,17 +894,33 @@ async function saveCallHistory( 'callDisposition' ); - if (callHistory.direction === CallDirection.Outgoing) { - conversation.incrementSentMessageCount(); - } else { - conversation.incrementMessageCount(); + if (prevMessage == null) { + if (callHistory.direction === CallDirection.Outgoing) { + conversation.incrementSentMessageCount(); + } else { + conversation.incrementMessageCount(); + } + conversation.trigger('newmessage', model); } - conversation.trigger('newmessage', model); + await conversation.updateLastMessage().catch(error => { + log.error( + 'saveCallHistory: Failed to update last message:', + Errors.toLogFormat(error) + ); + }); - void conversation.updateLastMessage(); - void conversation.updateUnread(); - conversation.set('active_at', callHistory.timestamp); + await conversation.updateUnread().catch(error => { + log.error( + 'saveCallHistory: Failed to update unread', + Errors.toLogFormat(error) + ); + }); + + conversation.set( + 'active_at', + Math.max(conversation.get('active_at') ?? 0, callHistory.timestamp) + ); if (canConversationBeUnarchived(conversation.attributes)) { conversation.setArchived(false);