|
|
@ -476,10 +476,6 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
success:(void (^)(void))success
|
|
|
|
success:(void (^)(void))success
|
|
|
|
failure:(RetryableFailureHandler)failure
|
|
|
|
failure:(RetryableFailureHandler)failure
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (message.thread && message.thread.isGroupThread) {
|
|
|
|
|
|
|
|
[self saveInfoMessageForGroupMessage:message inThread:message.thread];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[self.udManager
|
|
|
|
[self.udManager
|
|
|
|
ensureSenderCertificateObjCWithSuccess:^(SMKSenderCertificate *senderCertificate) {
|
|
|
|
ensureSenderCertificateObjCWithSuccess:^(SMKSenderCertificate *senderCertificate) {
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
|
dispatch_async([OWSDispatch sendingQueue], ^{
|
|
|
@ -648,6 +644,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (thread.isGroupThread) {
|
|
|
|
|
|
|
|
[self saveInfoMessageForGroupMessage:message inThread:thread];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
NSError *error;
|
|
|
|
NSError *error;
|
|
|
|
NSArray<NSString *> *_Nullable recipientIds = [self unsentRecipientsForMessage:message thread:thread error:&error];
|
|
|
|
NSArray<NSString *> *_Nullable recipientIds = [self unsentRecipientsForMessage:message thread:thread error:&error];
|
|
|
|
if (error || !recipientIds) {
|
|
|
|
if (error || !recipientIds) {
|
|
|
@ -1538,7 +1538,13 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
|
|
|
|
|
|
|
|
|
|
|
|
- (void)saveInfoMessageForGroupMessage:(TSOutgoingMessage *)message inThread:(TSThread *)thread
|
|
|
|
- (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
|
|
|
|
[[[TSInfoMessage alloc] initWithTimestamp:message.timestamp
|
|
|
|
inThread:thread
|
|
|
|
inThread:thread
|
|
|
|
messageType:TSInfoMessageTypeGroupQuit
|
|
|
|
messageType:TSInfoMessageTypeGroupQuit
|
|
|
|