diff --git a/Signal/src/ViewControllers/ColorPickerViewController.swift b/Signal/src/ViewControllers/ColorPickerViewController.swift index b6978b9564..bbb5753a98 100644 --- a/Signal/src/ViewControllers/ColorPickerViewController.swift +++ b/Signal/src/ViewControllers/ColorPickerViewController.swift @@ -390,7 +390,9 @@ private class MockIncomingMessage: TSIncomingMessage { attachmentIds: [], expiresInSeconds: 0, quotedMessage: nil, - contactShare: nil) + contactShare: nil, + serverTimestamp: nil, + serverGuid: nil) } required init(coder: NSCoder) { diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m index d315bc4cfd..c9b5144003 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m @@ -3726,7 +3726,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac attachmentIds:@[] expiresInSeconds:0 quotedMessage:nil - contactShare:nil]; + contactShare:nil + serverTimestamp:nil + serverGuid:nil]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; break; } @@ -3765,7 +3767,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac ] expiresInSeconds:0 quotedMessage:nil - contactShare:nil]; + contactShare:nil + serverTimestamp:nil + serverGuid:nil]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; break; } @@ -4225,7 +4229,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac attachmentIds:[NSMutableArray new] expiresInSeconds:0 quotedMessage:nil - contactShare:nil]; + contactShare:nil + serverTimestamp:nil + serverGuid:nil]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; } { @@ -4265,7 +4271,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac attachmentIds:[NSMutableArray new] expiresInSeconds:60 quotedMessage:nil - contactShare:nil]; + contactShare:nil + serverTimestamp:nil + serverGuid:nil]; // private setter to avoid starting expire machinery. message.read = YES; [message save]; @@ -4586,7 +4594,9 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac attachmentIds:attachmentIds expiresInSeconds:0 quotedMessage:quotedMessage - contactShare:nil]; + contactShare:nil + serverTimestamp:nil + serverGuid:nil]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; return message; } diff --git a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h index 4a355deb4f..8b68a06bb4 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h +++ b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h @@ -54,7 +54,9 @@ NS_ASSUME_NONNULL_BEGIN attachmentIds:(NSArray *)attachmentIds expiresInSeconds:(uint32_t)expiresInSeconds quotedMessage:(nullable TSQuotedMessage *)quotedMessage - contactShare:(nullable OWSContact *)contactShare NS_DESIGNATED_INITIALIZER; + contactShare:(nullable OWSContact *)contactShare + serverTimestamp:(nullable NSNumber *)serverTimestamp + serverGuid:(nullable NSString *)serverGuid NS_DESIGNATED_INITIALIZER; - (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER; @@ -83,12 +85,6 @@ NS_ASSUME_NONNULL_BEGIN - (void)markAsReadNowWithSendReadReceipt:(BOOL)sendReadReceipt transaction:(YapDatabaseReadWriteTransaction *)transaction; -#pragma mark - Update With... Methods - -- (void)updateWithServerTimestamp:(uint64_t)serverTimestamp transaction:(YapDatabaseReadWriteTransaction *)transaction; - -- (void)updateWithServerGuid:(NSString *)serverGuid transaction:(YapDatabaseReadWriteTransaction *)transaction; - @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m index 0185709f8f..816b501d80 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m @@ -48,6 +48,8 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:(uint32_t)expiresInSeconds quotedMessage:(nullable TSQuotedMessage *)quotedMessage contactShare:(nullable OWSContact *)contactShare + serverTimestamp:(nullable NSNumber *)serverTimestamp + serverGuid:(nullable NSString *)serverGuid { self = [super initMessageWithTimestamp:timestamp inThread:thread @@ -65,6 +67,8 @@ NS_ASSUME_NONNULL_BEGIN _authorId = authorId; _sourceDeviceId = sourceDeviceId; _read = NO; + _serverTimestamp = serverTimestamp; + _serverGuid = serverGuid; return self; } @@ -183,29 +187,6 @@ NS_ASSUME_NONNULL_BEGIN } } - -#pragma mark - Update With... Methods - -- (void)updateWithServerTimestamp:(uint64_t)serverTimestamp transaction:(YapDatabaseReadWriteTransaction *)transaction -{ - OWSAssertDebug(serverTimestamp > 0); - - [self applyChangeToSelfAndLatestCopy:transaction - changeBlock:^(TSIncomingMessage *message) { - message.serverTimestamp = @(serverTimestamp); - }]; -} - -- (void)updateWithServerGuid:(NSString *)serverGuid transaction:(YapDatabaseReadWriteTransaction *)transaction -{ - OWSAssertDebug(serverGuid.length > 0); - - [self applyChangeToSelfAndLatestCopy:transaction - changeBlock:^(TSIncomingMessage *message) { - message.serverGuid = serverGuid; - }]; -} - @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index 5576cfd982..d0db945f15 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -1110,6 +1110,8 @@ NS_ASSUME_NONNULL_BEGIN NSString *body = dataMessage.body; NSData *groupId = dataMessage.group ? dataMessage.group.id : nil; OWSContact *_Nullable contact = [OWSContacts contactForDataMessage:dataMessage transaction:transaction]; + NSNumber *_Nullable serverTimestamp = (envelope.hasServerTimestamp ? @(envelope.serverTimestamp) : nil); + NSString *_Nullable serverGuid = (envelope.hasServerGuid ? envelope.serverGuid : nil); if (dataMessage.group.type == SSKProtoGroupContextTypeRequestInfo) { [self handleGroupInfoRequest:envelope dataMessage:dataMessage transaction:transaction]; @@ -1223,7 +1225,9 @@ NS_ASSUME_NONNULL_BEGIN attachmentIds:attachmentIds expiresInSeconds:dataMessage.expireTimer quotedMessage:quotedMessage - contactShare:contact]; + contactShare:contact + serverTimestamp:serverTimestamp + serverGuid:serverGuid]; [self finalizeIncomingMessage:incomingMessage thread:oldGroupThread @@ -1262,7 +1266,9 @@ NS_ASSUME_NONNULL_BEGIN attachmentIds:attachmentIds expiresInSeconds:dataMessage.expireTimer quotedMessage:quotedMessage - contactShare:contact]; + contactShare:contact + serverTimestamp:serverTimestamp + serverGuid:serverGuid]; [self finalizeIncomingMessage:incomingMessage thread:thread @@ -1302,13 +1308,6 @@ NS_ASSUME_NONNULL_BEGIN [incomingMessage markAsReadAtTimestamp:envelope.timestamp sendReadReceipt:NO transaction:transaction]; } - if (envelope.hasServerGuid) { - [incomingMessage updateWithServerGuid:envelope.serverGuid transaction:transaction]; - } - if (envelope.hasServerTimestamp) { - [incomingMessage updateWithServerTimestamp:envelope.serverTimestamp transaction:transaction]; - } - TSQuotedMessage *_Nullable quotedMessage = incomingMessage.quotedMessage; if (quotedMessage && quotedMessage.thumbnailAttachmentPointerId) { // We weren't able to derive a local thumbnail, so we'll fetch the referenced attachment.