fix: regular messages correctly sync again

pull/2971/head
William Grant 2 years ago
parent 17f8431f59
commit 60aac9be85

@ -1011,7 +1011,6 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
} }
const { dataMessage } = content; const { dataMessage } = content;
// TODO maybe we need to account for lastDisappearingMessageChangeTimestamp?
if ( if (
dataMessage && dataMessage &&
(dataMessage.body?.length || (dataMessage.body?.length ||
@ -1028,32 +1027,23 @@ export class MessageModel extends Backbone.Model<MessageAttributes> {
// ); // );
const expireUpdate = await checkForExpireUpdateInContentMessage(content, conversation, true); const expireUpdate = await checkForExpireUpdateInContentMessage(content, conversation, true);
if ( const syncMessage = buildSyncMessage(
!isEmpty(expireUpdate) && this.id,
!expireUpdate.isOutdated && dataMessage as SignalService.DataMessage,
expireUpdate.lastDisappearingMessageChangeTimestamp conversation.id,
) { sentTimestamp,
const syncMessage = buildSyncMessage( expireUpdate
this.id, );
dataMessage as SignalService.DataMessage,
conversation.id,
sentTimestamp,
expireUpdate
);
if (syncMessage) {
await getMessageQueue().sendSyncMessage({ await getMessageQueue().sendSyncMessage({
namespace: SnodeNamespaces.UserMessages, namespace: SnodeNamespaces.UserMessages,
message: syncMessage, message: syncMessage,
}); });
} }
} else {
// NOTE if the expireUpdate is not defined then this settings is most likely out of date so we should not sync it
return;
} }
this.set({ this.set({ sentSync: true });
sentSync: true,
});
await this.commit(); await this.commit();
} }

@ -371,7 +371,7 @@ export const buildSyncMessage = (
syncTarget: string, syncTarget: string,
sentTimestamp: number, sentTimestamp: number,
expireUpdate?: DisappearingMessageUpdate expireUpdate?: DisappearingMessageUpdate
): VisibleMessage | ExpirationTimerUpdateMessage => { ): VisibleMessage | ExpirationTimerUpdateMessage | null => {
if ( if (
(data as any).constructor.name !== 'DataMessage' && (data as any).constructor.name !== 'DataMessage' &&
!(data instanceof SignalService.DataMessage) !(data instanceof SignalService.DataMessage)
@ -392,17 +392,32 @@ export const buildSyncMessage = (
!isEmpty(expireUpdate) && !isEmpty(expireUpdate) &&
expireUpdate.lastDisappearingMessageChangeTimestamp expireUpdate.lastDisappearingMessageChangeTimestamp
) { ) {
const syncExpireTimerMessage = buildSyncExpireTimerMessage( if (expireUpdate.isOutdated) {
window.log.debug(`WIP: buildSyncMessage: \nexpireUpdate is outdated`);
return null;
}
const expireTimerSyncMessage = buildSyncExpireTimerMessage(
identifier, identifier,
expireUpdate, expireUpdate,
timestamp, timestamp,
syncTarget syncTarget
); );
window.log.warn( window.log.warn(
`WIP: buildSyncMessage: \nsyncExpireTimerMessage: ${JSON.stringify(syncExpireTimerMessage)}` `WIP: buildSyncMessage: \nexpireTimerSyncMessage: ${JSON.stringify(expireTimerSyncMessage)}`
); );
return syncExpireTimerMessage; return expireTimerSyncMessage;
} }
return buildSyncVisibleMessage(identifier, dataMessage, timestamp, syncTarget); const visibleSyncMessage = buildSyncVisibleMessage(
identifier,
dataMessage,
timestamp,
syncTarget
);
window.log.warn(
`WIP: buildSyncMessage: \nvisibleSyncMessage: ${JSON.stringify(visibleSyncMessage)}`
);
return visibleSyncMessage;
}; };

Loading…
Cancel
Save