From 0c6c506a3610050442e50599296f63769653c788 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 11 Oct 2018 13:47:34 -0400 Subject: [PATCH] Send UD status in sync messages. --- .../OWSOutgoingSentMessageTranscript.m | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSentMessageTranscript.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSentMessageTranscript.m index a8048382d..059394b83 100644 --- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSentMessageTranscript.m +++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSentMessageTranscript.m @@ -67,6 +67,27 @@ NS_ASSUME_NONNULL_BEGIN [sentBuilder setMessage:dataMessage]; [sentBuilder setExpirationStartTimestamp:self.message.timestamp]; + for (NSString *recipientId in self.message.recipientIds) { + TSOutgoingMessageRecipientState *_Nullable recipientState = + [self.message recipientStateForRecipientId:recipientId]; + if (!recipientState) { + continue; + } + + NSError *error; + SSKProtoSyncMessageSentUnidentifiedDeliveryStatusBuilder *statusBuilder = + [SSKProtoSyncMessageSentUnidentifiedDeliveryStatus builder]; + [statusBuilder setDestination:recipientId]; + [statusBuilder setUnidentified:recipientState.wasSentByUD]; + SSKProtoSyncMessageSentUnidentifiedDeliveryStatus *_Nullable status = + [statusBuilder buildAndReturnError:&error]; + if (error || !status) { + OWSFailDebug(@"Couldn't build UD status proto: %@", error); + continue; + } + [sentBuilder addUnidentifiedStatus:status]; + } + NSError *error; SSKProtoSyncMessageSent *_Nullable sentProto = [sentBuilder buildAndReturnError:&error]; if (error || !sentProto) {