From 3c7c3220a1f5183c1313105c24e6085b6658aed2 Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Fri, 8 Oct 2021 10:59:00 +1100 Subject: [PATCH] Marking conversation as read if received a sync message from same users other device. --- ts/receiver/queuedJob.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index a1847bd8e..0baa1507a 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -9,7 +9,11 @@ import { getConversationController } from '../session/conversations'; import { ConversationModel, ConversationTypeEnum } from '../models/conversation'; import { MessageModel } from '../models/message'; import { getMessageById, getMessagesBySentAt } from '../../ts/data/data'; -import { MessageModelPropsWithoutConvoProps, messagesAdded } from '../state/ducks/conversations'; +import { + markConversationFullyRead, + MessageModelPropsWithoutConvoProps, + messagesAdded, +} from '../state/ducks/conversations'; import { updateProfileOneAtATime } from './dataMessage'; import Long from 'long'; @@ -245,6 +249,14 @@ function handleSyncedReceipts(message: MessageModel, conversation: ConversationM } message.set({ recipients }); + + // If the newly received message is from us, we assume that we've seen the messages up until that point + const receivedTimestamp = message.get('received_at'); + if (receivedTimestamp) { + conversation.markReadBouncy(receivedTimestamp).then(() => { + window?.inboxStore?.dispatch(markConversationFullyRead(conversation.id)); + }); + } } async function handleRegularMessage(