diff --git a/SignalServiceKit/src/Messages/MessageSendLog.swift b/SignalServiceKit/src/Messages/MessageSendLog.swift index 0f4288ac07..83a33d4407 100644 --- a/SignalServiceKit/src/Messages/MessageSendLog.swift +++ b/SignalServiceKit/src/Messages/MessageSendLog.swift @@ -22,6 +22,7 @@ public class MessageSendLog: NSObject { var payloadId: Int64? @objc let plaintextContent: Data + @objc let contentHint: SealedSenderContentHint @objc let sentTimestamp: UInt64 diff --git a/SignalServiceKit/src/Messages/OWSOutgoingResendResponse.m b/SignalServiceKit/src/Messages/OWSOutgoingResendResponse.m index 62933f5f3d..41728e1b85 100644 --- a/SignalServiceKit/src/Messages/OWSOutgoingResendResponse.m +++ b/SignalServiceKit/src/Messages/OWSOutgoingResendResponse.m @@ -11,6 +11,7 @@ @property (nonatomic, readonly, nullable) NSData *originalMessagePlaintext; @property (nonatomic, readonly, nullable) NSString *originalThreadId; @property (nonatomic, readonly, nullable) NSData *originalGroupId; +@property (nonatomic, readonly) SealedSenderContentHint derivedContentHint; @property (nonatomic) BOOL didAppendSKDM; @end @@ -59,6 +60,14 @@ _originalMessagePlaintext = payloadRecord.plaintextContent; _originalThreadId = payloadRecord.uniqueThreadId; + // Use the original payload's content hint, if we have one. + // Otherwise fallback to showing errors immediately. + if (payloadRecord) { + _derivedContentHint = payloadRecord.contentHint; + } else { + _derivedContentHint = SealedSenderContentHintImplicit; + } + if ([originalThread isKindOfClass:[TSGroupThread class]]) { _originalGroupId = ((TSGroupThread *)originalThread).groupId; } @@ -154,7 +163,7 @@ - (SealedSenderContentHint)contentHint { - return SealedSenderContentHintDefault; + return self.derivedContentHint; } - (nullable NSData *)envelopeGroupIdWithTransaction:(__unused SDSAnyReadTransaction *)transaction