From baf445c58b58b5de58ad3d8f2f12ec1580086e06 Mon Sep 17 00:00:00 2001 From: automated-signal <37887102+automated-signal@users.noreply.github.com> Date: Thu, 23 Sep 2021 17:06:27 -0700 Subject: [PATCH] Properly initialize session reset send states Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com> --- ts/models/conversations.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts index af7362302f1..5c72b5d7463 100644 --- a/ts/models/conversations.ts +++ b/ts/models/conversations.ts @@ -62,7 +62,7 @@ import { getConversationMembers } from '../util/getConversationMembers'; import { sendReadReceiptsFor } from '../util/sendReadReceiptsFor'; import { updateConversationsWithUuidLookup } from '../updateConversationsWithUuidLookup'; import { ReadStatus } from '../messages/MessageReadStatus'; -import { SendStatus } from '../messages/MessageSendState'; +import { SendState, SendStatus } from '../messages/MessageSendState'; import * as durations from '../util/durations'; import { concat, @@ -4258,18 +4258,27 @@ export class ConversationModel extends window.Backbone async endSession(): Promise { if (isDirectConversation(this.attributes)) { const now = Date.now(); - const model = new window.Whisper.Message(({ + const pendingSendState: SendState = { + status: SendStatus.Pending, + updatedAt: now, + }; + const messageAttributes: Partial = { conversationId: this.id, type: 'outgoing', sent_at: now, received_at: window.Signal.Util.incrementMessageCounter(), received_at_ms: now, - destination: this.get('e164'), - destinationUuid: this.get('uuid'), - recipients: this.getRecipients(), + sendStateByConversationId: { + [this.id]: pendingSendState, + [window.ConversationController.getOurConversationIdOrThrow()]: pendingSendState, + }, flags: Proto.DataMessage.Flags.END_SESSION, - // TODO: DESKTOP-722 - } as unknown) as MessageAttributesType); + }; + + // TODO: DESKTOP-722 + const model = new window.Whisper.Message( + messageAttributes as MessageAttributesType + ); const id = await window.Signal.Data.saveMessage(model.attributes); model.set({ id });