From eec76789796c9ef19cd665013a6814830de1e7a0 Mon Sep 17 00:00:00 2001 From: Michael Kirk Date: Thu, 19 Apr 2018 11:25:11 -0400 Subject: [PATCH] Group's meta message defaults to "Delivery" // FREEBIE --- .../ViewControllers/DebugUI/DebugUIMessages.m | 6 ++-- SignalMessaging/utils/ThreadUtil.m | 2 +- .../Devices/OWSReadReceiptsForSenderMessage.m | 2 +- .../src/Devices/OWSRecordTranscriptJob.m | 2 +- .../DeviceSyncing/OWSOutgoingSyncMessage.m | 2 +- .../DeviceSyncing/OWSSyncContactsMessage.m | 2 +- .../DeviceSyncing/OWSSyncGroupsMessage.m | 2 +- .../OWSSyncGroupsRequestMessage.m | 2 +- ...DisappearingMessagesConfigurationMessage.m | 2 +- .../Interactions/OWSDynamicOutgoingMessage.m | 2 +- .../Interactions/OWSEndSessionMessage.m | 2 +- .../Messages/Interactions/TSOutgoingMessage.h | 2 +- .../Messages/Interactions/TSOutgoingMessage.m | 29 +++++++++++++------ .../src/Messages/OWSOutgoingCallMessage.m | 2 +- .../src/Messages/OWSOutgoingNullMessage.m | 2 +- .../src/Messages/OWSProfileKeyMessage.m | 2 +- 16 files changed, 37 insertions(+), 26 deletions(-) diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m index e38bafbf9..5ffe2c820 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m @@ -3700,7 +3700,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:(configuration.isEnabled ? configuration.durationSeconds : 0)expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; DDLogError(@"%@ resurrectNewOutgoingMessages2 timestamp: %llu.", self.logTag, message.timestamp); [messages addObject:message]; @@ -3778,7 +3778,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; [message saveWithTransaction:transaction]; [message updateWithMessageState:TSOutgoingMessageStateSentToService transaction:transaction]; @@ -4016,7 +4016,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:isVoiceMessage - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:quotedMessage]; if (attachmentId.length > 0 && filename.length > 0) { diff --git a/SignalMessaging/utils/ThreadUtil.m b/SignalMessaging/utils/ThreadUtil.m index 6437f3dc6..a5946c5a1 100644 --- a/SignalMessaging/utils/ThreadUtil.m +++ b/SignalMessaging/utils/ThreadUtil.m @@ -138,7 +138,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:expiresInSeconds expireStartedAt:0 isVoiceMessage:[attachment isVoiceMessage] - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:[quotedReplyModel buildQuotedMessage]]; [messageSender enqueueAttachment:attachment.dataSource diff --git a/SignalServiceKit/src/Devices/OWSReadReceiptsForSenderMessage.m b/SignalServiceKit/src/Devices/OWSReadReceiptsForSenderMessage.m index 7c1a30c53..e2f0626c9 100644 --- a/SignalServiceKit/src/Devices/OWSReadReceiptsForSenderMessage.m +++ b/SignalServiceKit/src/Devices/OWSReadReceiptsForSenderMessage.m @@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m b/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m index 72a2177dc..edd1a1211 100644 --- a/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m +++ b/SignalServiceKit/src/Devices/OWSRecordTranscriptJob.m @@ -94,7 +94,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:transcript.expirationDuration expireStartedAt:transcript.expirationStartedAt isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:transcript.quotedMessage]; // TODO: When written, desktop didn't yet support sending quotedMessages, so we didn't have a diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m index 6b1a7ed3f..655e7c97d 100644 --- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m +++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSOutgoingSyncMessage.m @@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m index 2bd3d4a2c..032f29786 100644 --- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m +++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncContactsMessage.m @@ -37,7 +37,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsMessage.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsMessage.m index 4a9701e13..1b049cb45 100644 --- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsMessage.m +++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsMessage.m @@ -23,7 +23,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; } diff --git a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsRequestMessage.m b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsRequestMessage.m index 2f7adaf18..b03cff94a 100644 --- a/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsRequestMessage.m +++ b/SignalServiceKit/src/Messages/DeviceSyncing/OWSSyncGroupsRequestMessage.m @@ -27,7 +27,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingMessagesConfigurationMessage.m b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingMessagesConfigurationMessage.m index a3994209d..1d8933ce1 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSDisappearingMessagesConfigurationMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/OWSDisappearingMessagesConfigurationMessage.m @@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Messages/Interactions/OWSDynamicOutgoingMessage.m b/SignalServiceKit/src/Messages/Interactions/OWSDynamicOutgoingMessage.m index 5c5af8d3c..4505d0998 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSDynamicOutgoingMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/OWSDynamicOutgoingMessage.m @@ -34,7 +34,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (self) { diff --git a/SignalServiceKit/src/Messages/Interactions/OWSEndSessionMessage.m b/SignalServiceKit/src/Messages/Interactions/OWSEndSessionMessage.m index 9b8edd5c9..147d0b38c 100644 --- a/SignalServiceKit/src/Messages/Interactions/OWSEndSessionMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/OWSEndSessionMessage.m @@ -18,7 +18,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; } diff --git a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.h b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.h index a461ab093..dff04e3fd 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.h +++ b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.h @@ -22,7 +22,7 @@ typedef NS_ENUM(NSInteger, TSOutgoingMessageState) { }; typedef NS_ENUM(NSInteger, TSGroupMetaMessage) { - TSGroupMessageNone, + TSGroupMessageUnspecified, TSGroupMessageNew, TSGroupMessageUpdate, TSGroupMessageDeliver, diff --git a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m index 27ecea414..a98b39491 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/TSOutgoingMessage.m @@ -110,9 +110,6 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec [attachmentIds addObject:attachmentId]; } - TSGroupMetaMessage groupMetaMessage = - [thread isKindOfClass:TSGroupThread.class] ? TSGroupMessageDeliver : TSGroupMessageNone; - return [[TSOutgoingMessage alloc] initOutgoingMessageWithTimestamp:[NSDate ows_millisecondTimeStamp] inThread:thread messageBody:body @@ -120,7 +117,7 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec expiresInSeconds:expiresInSeconds expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:groupMetaMessage + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:quotedMessage]; } @@ -162,7 +159,20 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec _messageState = TSOutgoingMessageStateAttemptingOut; _sentRecipients = [NSArray new]; _hasSyncedTranscript = NO; - _groupMetaMessage = groupMetaMessage; + + if ([thread isKindOfClass:TSGroupThread.class]) { + // Unless specified, we assume group messages are "Delivery" i.e. normal messages. + if (groupMetaMessage == TSGroupMessageUnspecified) { + _groupMetaMessage = TSGroupMessageDeliver; + } else { + _groupMetaMessage = groupMetaMessage; + } + } else { + OWSAssert(groupMetaMessage == TSGroupMessageUnspecified); + // Specifying a group meta message only makes sense for Group threads + _groupMetaMessage = TSGroupMessageUnspecified; + } + _isVoiceMessage = isVoiceMessage; _attachmentFilenameMap = [NSMutableDictionary new]; @@ -172,12 +182,11 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec - (BOOL)shouldBeSaved { - if (!(self.groupMetaMessage == TSGroupMessageDeliver || self.groupMetaMessage == TSGroupMessageNone)) { - DDLogDebug(@"%@ Skipping save for group meta message.", self.logTag); - return NO; + if (self.groupMetaMessage == TSGroupMessageDeliver || self.groupMetaMessage == TSGroupMessageUnspecified) { + return YES; } - return YES; + return NO; } - (void)saveWithTransaction:(YapDatabaseReadWriteTransaction *)transaction @@ -186,6 +195,8 @@ NSString *const kTSOutgoingMessageSentRecipientAll = @"kTSOutgoingMessageSentRec // There's no need to save this message, since it's not displayed to the user. // // Should we find a need to save this in the future, we need to exclude any non-serializable properties. + DDLogDebug(@"%@ Skipping save for group meta message.", self.logTag); + return; } diff --git a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m index 3ff93dac6..44ac760dc 100644 --- a/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m +++ b/SignalServiceKit/src/Messages/OWSOutgoingCallMessage.m @@ -29,7 +29,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Messages/OWSOutgoingNullMessage.m b/SignalServiceKit/src/Messages/OWSOutgoingNullMessage.m index f6a5683f9..b49c106c6 100644 --- a/SignalServiceKit/src/Messages/OWSOutgoingNullMessage.m +++ b/SignalServiceKit/src/Messages/OWSOutgoingNullMessage.m @@ -31,7 +31,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; if (!self) { return self; diff --git a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m index 207a19ea5..be32e4066 100644 --- a/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m +++ b/SignalServiceKit/src/Messages/OWSProfileKeyMessage.m @@ -21,7 +21,7 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO - groupMetaMessage:TSGroupMessageNone + groupMetaMessage:TSGroupMessageUnspecified quotedMessage:nil]; }