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(
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);

@ -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<MessageModel> {
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,

Loading…
Cancel
Save