fix updateMessage being always at the end of the messagesList

this was because we were using Date.now() always rather than using the
envelope timestamp to save the update
pull/1528/head
Audric Ackermann 5 years ago
parent db167eaf1b
commit 533b95c827

@ -225,7 +225,8 @@ export async function handleNewClosedGroup(
await ClosedGroup.addUpdateMessage( await ClosedGroup.addUpdateMessage(
convo, convo,
{ newName: name, joiningMembers: members }, { newName: name, joiningMembers: members },
'incoming' 'incoming',
_.toNumber(envelope.timestamp)
); );
// We only set group admins on group creation // We only set group admins on group creation
@ -324,7 +325,12 @@ async function handleUpdateClosedGroup(
diff.leavingMembers?.length || diff.leavingMembers?.length ||
diff.newName diff.newName
) { ) {
await ClosedGroup.addUpdateMessage(convo, diff, 'incoming'); await ClosedGroup.addUpdateMessage(
convo,
diff,
'incoming',
_.toNumber(envelope.timestamp)
);
} }
convo.set('name', name); convo.set('name', name);
@ -573,7 +579,12 @@ async function handleClosedGroupNameChanged(
const groupDiff: ClosedGroup.GroupDiff = { const groupDiff: ClosedGroup.GroupDiff = {
newName, newName,
}; };
await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); await ClosedGroup.addUpdateMessage(
convo,
groupDiff,
'incoming',
_.toNumber(envelope.timestamp)
);
convo.set({ name: newName }); convo.set({ name: newName });
convo.updateLastMessage(); convo.updateLastMessage();
await convo.commit(); await convo.commit();
@ -620,7 +631,12 @@ async function handleClosedGroupMembersAdded(
const groupDiff: ClosedGroup.GroupDiff = { const groupDiff: ClosedGroup.GroupDiff = {
joiningMembers: membersNotAlreadyPresent, joiningMembers: membersNotAlreadyPresent,
}; };
await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); await ClosedGroup.addUpdateMessage(
convo,
groupDiff,
'incoming',
_.toNumber(envelope.timestamp)
);
convo.set({ members }); convo.set({ members });
convo.updateLastMessage(); convo.updateLastMessage();
@ -700,7 +716,12 @@ async function handleClosedGroupMembersRemoved(
const groupDiff: ClosedGroup.GroupDiff = { const groupDiff: ClosedGroup.GroupDiff = {
leavingMembers: effectivelyRemovedMembers, leavingMembers: effectivelyRemovedMembers,
}; };
await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); await ClosedGroup.addUpdateMessage(
convo,
groupDiff,
'incoming',
_.toNumber(envelope.timestamp)
);
convo.updateLastMessage(); convo.updateLastMessage();
} }
@ -767,7 +788,12 @@ async function handleClosedGroupMemberLeft(
const groupDiff: ClosedGroup.GroupDiff = { const groupDiff: ClosedGroup.GroupDiff = {
leavingMembers: didAdminLeave ? oldMembers : [sender], leavingMembers: didAdminLeave ? oldMembers : [sender],
}; };
await ClosedGroup.addUpdateMessage(convo, groupDiff, 'incoming'); await ClosedGroup.addUpdateMessage(
convo,
groupDiff,
'incoming',
_.toNumber(envelope.timestamp)
);
convo.updateLastMessage(); convo.updateLastMessage();
} }
@ -905,7 +931,8 @@ export async function createClosedGroup(
const dbMessage = await ClosedGroup.addUpdateMessage( const dbMessage = await ClosedGroup.addUpdateMessage(
convo, convo,
groupDiff, groupDiff,
'outgoing' 'outgoing',
Date.now()
); );
MessageController.getInstance().register(dbMessage.id, dbMessage); MessageController.getInstance().register(dbMessage.id, dbMessage);

@ -129,7 +129,8 @@ export async function initiateGroupUpdate(
const dbMessageName = await addUpdateMessage( const dbMessageName = await addUpdateMessage(
convo, convo,
nameOnlyDiff, nameOnlyDiff,
'outgoing' 'outgoing',
Date.now()
); );
MessageController.getInstance().register(dbMessageName.id, dbMessageName); MessageController.getInstance().register(dbMessageName.id, dbMessageName);
await sendNewName(convo, diff.newName, dbMessageName.id); await sendNewName(convo, diff.newName, dbMessageName.id);
@ -140,7 +141,8 @@ export async function initiateGroupUpdate(
const dbMessageAdded = await addUpdateMessage( const dbMessageAdded = await addUpdateMessage(
convo, convo,
joiningOnlyDiff, joiningOnlyDiff,
'outgoing' 'outgoing',
Date.now()
); );
MessageController.getInstance().register(dbMessageAdded.id, dbMessageAdded); MessageController.getInstance().register(dbMessageAdded.id, dbMessageAdded);
await sendAddedMembers( await sendAddedMembers(
@ -156,7 +158,8 @@ export async function initiateGroupUpdate(
const dbMessageLeaving = await addUpdateMessage( const dbMessageLeaving = await addUpdateMessage(
convo, convo,
leavingOnlyDiff, leavingOnlyDiff,
'outgoing' 'outgoing',
Date.now()
); );
MessageController.getInstance().register( MessageController.getInstance().register(
dbMessageLeaving.id, dbMessageLeaving.id,
@ -175,7 +178,8 @@ export async function initiateGroupUpdate(
export async function addUpdateMessage( export async function addUpdateMessage(
convo: ConversationModel, convo: ConversationModel,
diff: GroupDiff, diff: GroupDiff,
type: MessageModelType type: MessageModelType,
sentAt: number
): Promise<MessageModel> { ): Promise<MessageModel> {
const groupUpdate: any = {}; const groupUpdate: any = {};
@ -198,7 +202,7 @@ export async function addUpdateMessage(
const message = await convo.addSingleMessage({ const message = await convo.addSingleMessage({
conversationId: convo.get('id'), conversationId: convo.get('id'),
type, type,
sent_at: now, sent_at: sentAt,
received_at: now, received_at: now,
group_update: groupUpdate, group_update: groupUpdate,
unread, unread,

Loading…
Cancel
Save