diff --git a/ts/background.ts b/ts/background.ts index b8ed658e91..988009c555 100644 --- a/ts/background.ts +++ b/ts/background.ts @@ -9,7 +9,7 @@ import { PlaintextContent, } from '@signalapp/signal-client'; -import { DataMessageClass } from './textsecure.d'; +import { DataMessageClass, SyncMessageClass } from './textsecure.d'; import { SessionResetsType } from './textsecure/Types.d'; import { MessageAttributesType } from './model-types.d'; import { WhatIsThis } from './window.d'; @@ -3018,12 +3018,21 @@ export async function startApp(): Promise { function createSentMessage(data: WhatIsThis, descriptor: MessageDescriptor) { const now = Date.now(); - let sentTo = []; + const timestamp = data.timestamp || now; + + const unidentifiedStatus: Array = Array.isArray( + data.unidentifiedStatus + ) + ? data.unidentifiedStatus + : []; + + let sentTo: Array = []; + + if (unidentifiedStatus.length) { + sentTo = unidentifiedStatus + .map(item => item.destinationUuid || item.destination) + .filter(isNotNil); - if (data.unidentifiedStatus && data.unidentifiedStatus.length) { - sentTo = data.unidentifiedStatus.map( - (item: WhatIsThis) => item.destinationUuid || item.destination - ); const unidentified = window._.filter(data.unidentifiedStatus, item => Boolean(item.unidentified) ); @@ -3037,17 +3046,18 @@ export async function startApp(): Promise { source: window.textsecure.storage.user.getNumber(), sourceUuid: window.textsecure.storage.user.getUuid(), sourceDevice: data.device, - sent_at: data.timestamp, + sent_at: timestamp, serverTimestamp: data.serverTimestamp, sent_to: sentTo, received_at: data.receivedAtCounter, received_at_ms: data.receivedAtDate, conversationId: descriptor.id, + timestamp, type: 'outgoing', sent: true, unidentifiedDeliveries: data.unidentifiedDeliveries || [], expirationStartTimestamp: Math.min( - data.expirationStartTimestamp || data.timestamp || now, + data.expirationStartTimestamp || timestamp, now ), } as WhatIsThis);