From 1a23186ec43c69daf2f424f06035f537b7dce8fb Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 4 Oct 2018 15:22:42 -0400 Subject: [PATCH] Fix 'info message for group events'. --- SignalServiceKit/src/Messages/OWSMessageSender.m | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 504dd07b0..31a475c47 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -476,10 +476,6 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; success:(void (^)(void))success failure:(RetryableFailureHandler)failure { - if (message.thread && message.thread.isGroupThread) { - [self saveInfoMessageForGroupMessage:message inThread:message.thread]; - } - [self.udManager ensureSenderCertificateObjCWithSuccess:^(SMKSenderCertificate *senderCertificate) { dispatch_async([OWSDispatch sendingQueue], ^{ @@ -648,6 +644,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; return; } + if (thread.isGroupThread) { + [self saveInfoMessageForGroupMessage:message inThread:thread]; + } + NSError *error; NSArray *_Nullable recipientIds = [self unsentRecipientsForMessage:message thread:thread error:&error]; if (error || !recipientIds) { @@ -1538,7 +1538,13 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; - (void)saveInfoMessageForGroupMessage:(TSOutgoingMessage *)message inThread:(TSThread *)thread { - if (message.groupMetaMessage == TSGroupMetaMessageQuit) { + OWSAssertDebug(message); + OWSAssertDebug(thread); + + if (message.groupMetaMessage == TSGroupMetaMessageDeliver) { + // TODO: Why is this necessary? + [message save]; + } else if (message.groupMetaMessage == TSGroupMetaMessageQuit) { [[[TSInfoMessage alloc] initWithTimestamp:message.timestamp inThread:thread messageType:TSInfoMessageTypeGroupQuit