From 3c7c3220a1f5183c1313105c24e6085b6658aed2 Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Fri, 8 Oct 2021 10:59:00 +1100 Subject: [PATCH 1/3] 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( From ff1d7cefe4312a1576188270be8540bac1d0faee Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Fri, 8 Oct 2021 13:33:53 +1100 Subject: [PATCH 2/3] changing some code. --- ts/receiver/queuedJob.ts | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 0baa1507a..00c0ddb5c 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -9,11 +9,7 @@ import { getConversationController } from '../session/conversations'; import { ConversationModel, ConversationTypeEnum } from '../models/conversation'; import { MessageModel } from '../models/message'; import { getMessageById, getMessagesBySentAt } from '../../ts/data/data'; -import { - markConversationFullyRead, - MessageModelPropsWithoutConvoProps, - messagesAdded, -} from '../state/ducks/conversations'; +import { MessageModelPropsWithoutConvoProps, messagesAdded } from '../state/ducks/conversations'; import { updateProfileOneAtATime } from './dataMessage'; import Long from 'long'; @@ -251,11 +247,9 @@ 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)); - }); + const sentTimestamp = message.get('sent_at'); + if (sentTimestamp) { + conversation.markRead(sentTimestamp); } } From 8d75fde012a60059c31b1af3ecfb11cb3b92730d Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Fri, 8 Oct 2021 13:57:25 +1100 Subject: [PATCH 3/3] yarn ready changes --- ts/receiver/queuedJob.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 00c0ddb5c..794edaae0 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -227,7 +227,7 @@ function updateReadStatus(message: MessageModel, conversation: ConversationModel } } -function handleSyncedReceipts(message: MessageModel, conversation: ConversationModel) { +async function handleSyncedReceipts(message: MessageModel, conversation: ConversationModel) { const readReceipts = window.Whisper.ReadReceipts.forMessage(conversation, message); if (readReceipts.length) { const readBy = readReceipts.map((receipt: any) => receipt.get('reader')); @@ -249,7 +249,7 @@ function handleSyncedReceipts(message: MessageModel, conversation: ConversationM // If the newly received message is from us, we assume that we've seen the messages up until that point const sentTimestamp = message.get('sent_at'); if (sentTimestamp) { - conversation.markRead(sentTimestamp); + await conversation.markRead(sentTimestamp); } } @@ -318,7 +318,7 @@ async function handleRegularMessage( } if (type === 'outgoing') { - handleSyncedReceipts(message, conversation); + await handleSyncedReceipts(message, conversation); } const conversationActiveAt = conversation.get('active_at');