diff --git a/ts/receiver/closedGroups.ts b/ts/receiver/closedGroups.ts index ac4e6f7f4..b0d2e5dc2 100644 --- a/ts/receiver/closedGroups.ts +++ b/ts/receiver/closedGroups.ts @@ -225,7 +225,8 @@ export async function handleNewClosedGroup( await ClosedGroup.addUpdateMessage( convo, { newName: name, joiningMembers: members }, - 'incoming' + 'incoming', + _.toNumber(envelope.timestamp) ); // We only set group admins on group creation @@ -324,7 +325,12 @@ async function handleUpdateClosedGroup( diff.leavingMembers?.length || diff.newName ) { - await ClosedGroup.addUpdateMessage(convo, diff, 'incoming'); + await ClosedGroup.addUpdateMessage( + convo, + diff, + 'incoming', + _.toNumber(envelope.timestamp) + ); } convo.set('name', name); @@ -573,7 +579,12 @@ async function handleClosedGroupNameChanged( const groupDiff: ClosedGroup.GroupDiff = { newName, }; - await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); + await ClosedGroup.addUpdateMessage( + convo, + groupDiff, + 'incoming', + _.toNumber(envelope.timestamp) + ); convo.set({ name: newName }); convo.updateLastMessage(); await convo.commit(); @@ -620,7 +631,12 @@ async function handleClosedGroupMembersAdded( const groupDiff: ClosedGroup.GroupDiff = { joiningMembers: membersNotAlreadyPresent, }; - await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); + await ClosedGroup.addUpdateMessage( + convo, + groupDiff, + 'incoming', + _.toNumber(envelope.timestamp) + ); convo.set({ members }); convo.updateLastMessage(); @@ -700,7 +716,12 @@ async function handleClosedGroupMembersRemoved( const groupDiff: ClosedGroup.GroupDiff = { leavingMembers: effectivelyRemovedMembers, }; - await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); + await ClosedGroup.addUpdateMessage( + convo, + groupDiff, + 'incoming', + _.toNumber(envelope.timestamp) + ); convo.updateLastMessage(); } @@ -767,7 +788,12 @@ async function handleClosedGroupMemberLeft( const groupDiff: ClosedGroup.GroupDiff = { leavingMembers: didAdminLeave ? oldMembers : [sender], }; - await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); + await ClosedGroup.addUpdateMessage( + convo, + groupDiff, + 'incoming', + _.toNumber(envelope.timestamp) + ); convo.updateLastMessage(); } @@ -905,7 +931,8 @@ export async function createClosedGroup( const dbMessage = await ClosedGroup.addUpdateMessage( convo, groupDiff, - 'outgoing' + 'outgoing', + Date.now() ); MessageController.getInstance().register(dbMessage.id, dbMessage); diff --git a/ts/session/group/index.ts b/ts/session/group/index.ts index a8fcb2942..aed668a47 100644 --- a/ts/session/group/index.ts +++ b/ts/session/group/index.ts @@ -129,7 +129,8 @@ export async function initiateGroupUpdate( const dbMessageName = await addUpdateMessage( convo, nameOnlyDiff, - 'outgoing' + 'outgoing', + Date.now() ); MessageController.getInstance().register(dbMessageName.id, dbMessageName); await sendNewName(convo, diff.newName, dbMessageName.id); @@ -140,7 +141,8 @@ export async function initiateGroupUpdate( const dbMessageAdded = await addUpdateMessage( convo, joiningOnlyDiff, - 'outgoing' + 'outgoing', + Date.now() ); MessageController.getInstance().register(dbMessageAdded.id, dbMessageAdded); await sendAddedMembers( @@ -156,7 +158,8 @@ export async function initiateGroupUpdate( const dbMessageLeaving = await addUpdateMessage( convo, leavingOnlyDiff, - 'outgoing' + 'outgoing', + Date.now() ); MessageController.getInstance().register( dbMessageLeaving.id, @@ -175,7 +178,8 @@ export async function initiateGroupUpdate( export async function addUpdateMessage( convo: ConversationModel, diff: GroupDiff, - type: MessageModelType + type: MessageModelType, + sentAt: number ): Promise { const groupUpdate: any = {}; @@ -198,7 +202,7 @@ export async function addUpdateMessage( const message = await convo.addSingleMessage({ conversationId: convo.get('id'), type, - sent_at: now, + sent_at: sentAt, received_at: now, group_update: groupUpdate, unread,