Improve reliability of out-of-order reactions and DOE

This commit is contained in:
Scott Nonnenberg 2020-07-10 11:24:58 -07:00
parent f1182fa609
commit 4289c28a38
5 changed files with 170 additions and 115 deletions

View file

@ -2520,6 +2520,18 @@
window.Signal.Data.updateConversation(conversation.attributes);
await message.queueAttachmentDownloads();
// Does this message have any pending, previously-received associated reactions?
const reactions = Whisper.Reactions.forMessage(message);
reactions.forEach(reaction => {
message.handleReaction(reaction, false);
});
// Does this message have any pending, previously-received associated
// delete for everyone messages?
const deletes = Whisper.Deletes.forMessage(message);
deletes.forEach(del => Whisper.Deletes.onDelete(del, false));
await window.Signal.Data.saveMessage(message.attributes, {
Message: Whisper.Message,
forceSave: true,
@ -2531,17 +2543,6 @@
await conversation.notify(message);
}
// Does this message have any pending, previously-received associated reactions?
const reactions = Whisper.Reactions.forMessage(message);
reactions.forEach(reaction => {
message.handleReaction(reaction);
});
// Does this message have any pending, previously-received associated
// delete for everyone messages?
const deletes = Whisper.Deletes.forMessage(message);
deletes.forEach(del => Whisper.Deletes.onDelete(del));
Whisper.events.trigger('incrementProgress');
confirm();
} catch (error) {
@ -2557,7 +2558,7 @@
});
},
async handleReaction(reaction) {
async handleReaction(reaction, shouldPersist = true) {
if (this.get('deletedForEveryone')) {
return;
}
@ -2597,9 +2598,11 @@
`Done processing reaction for message ${messageId}. Went from ${count} to ${newCount} reactions.`
);
await window.Signal.Data.saveMessage(this.attributes, {
Message: Whisper.Message,
});
if (shouldPersist) {
await window.Signal.Data.saveMessage(this.attributes, {
Message: Whisper.Message,
});
}
},
async handleDeleteForEveryone(del) {