From cba8c6798362b3e1df169671ba80ac832705ce05 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 10 Oct 2018 10:17:58 -0400 Subject: [PATCH] Add 'is ud' property to incoming messages. --- .../ColorPickerViewController.swift | 3 ++- .../src/ViewControllers/DebugUI/DebugUIMessages.m | 15 ++++++++++----- .../src/Messages/Interactions/TSIncomingMessage.h | 5 ++++- .../src/Messages/Interactions/TSIncomingMessage.m | 3 ++- SignalServiceKit/src/Messages/OWSMessageManager.m | 7 +++++-- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Signal/src/ViewControllers/ColorPickerViewController.swift b/Signal/src/ViewControllers/ColorPickerViewController.swift index 6756447b8..6d39d2337 100644 --- a/Signal/src/ViewControllers/ColorPickerViewController.swift +++ b/Signal/src/ViewControllers/ColorPickerViewController.swift @@ -391,7 +391,8 @@ private class MockIncomingMessage: TSIncomingMessage { expiresInSeconds: 0, quotedMessage: nil, contactShare: nil, - serverTimestamp: nil) + serverTimestamp: nil, + wasReceivedByUD: false) } required init(coder: NSCoder) { diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m index 10c8959c0..385a18603 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUIMessages.m @@ -3727,7 +3727,8 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac expiresInSeconds:0 quotedMessage:nil contactShare:nil - serverTimestamp:nil]; + serverTimestamp:nil + wasReceivedByUD:NO]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; break; } @@ -3767,7 +3768,8 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac expiresInSeconds:0 quotedMessage:nil contactShare:nil - serverTimestamp:nil]; + serverTimestamp:nil + wasReceivedByUD:NO]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; break; } @@ -4229,7 +4231,8 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac expiresInSeconds:0 quotedMessage:nil contactShare:nil - serverTimestamp:nil]; + serverTimestamp:nil + wasReceivedByUD:NO]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; } { @@ -4270,7 +4273,8 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac expiresInSeconds:60 quotedMessage:nil contactShare:nil - serverTimestamp:nil]; + serverTimestamp:nil + wasReceivedByUD:NO]; // private setter to avoid starting expire machinery. message.read = YES; [message save]; @@ -4592,7 +4596,8 @@ typedef OWSContact * (^OWSContactBlock)(YapDatabaseReadWriteTransaction *transac expiresInSeconds:0 quotedMessage:quotedMessage contactShare:nil - serverTimestamp:nil]; + serverTimestamp:nil + wasReceivedByUD:NO]; [message markAsReadNowWithSendReadReceipt:NO transaction:transaction]; return message; } diff --git a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h index 203921d1d..9ad4fcd23 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h +++ b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.h @@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly, nullable) NSNumber *serverTimestamp; +@property (nonatomic, readonly) BOOL wasReceivedByUD; + - (instancetype)initMessageWithTimestamp:(uint64_t)timestamp inThread:(nullable TSThread *)thread messageBody:(nullable NSString *)body @@ -54,7 +56,8 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:(uint32_t)expiresInSeconds quotedMessage:(nullable TSQuotedMessage *)quotedMessage contactShare:(nullable OWSContact *)contactShare - serverTimestamp:(nullable NSNumber *)serverTimestamp NS_DESIGNATED_INITIALIZER; + serverTimestamp:(nullable NSNumber *)serverTimestamp + wasReceivedByUD:(BOOL)wasReceivedByUD NS_DESIGNATED_INITIALIZER; - (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER; diff --git a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m index 0dbd5cc93..7af4f3da4 100644 --- a/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m +++ b/SignalServiceKit/src/Messages/Interactions/TSIncomingMessage.m @@ -48,7 +48,7 @@ NS_ASSUME_NONNULL_BEGIN quotedMessage:(nullable TSQuotedMessage *)quotedMessage contactShare:(nullable OWSContact *)contactShare serverTimestamp:(nullable NSNumber *)serverTimestamp -{ + wasReceivedByUD:(BOOL)wasReceivedByUD { self = [super initMessageWithTimestamp:timestamp inThread:thread messageBody:body @@ -66,6 +66,7 @@ NS_ASSUME_NONNULL_BEGIN _sourceDeviceId = sourceDeviceId; _read = NO; _serverTimestamp = serverTimestamp; + _wasReceivedByUD = wasReceivedByUD; return self; } diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index 88ee36ec8..57a30c3e1 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -1115,6 +1115,7 @@ NS_ASSUME_NONNULL_BEGIN NSData *groupId = dataMessage.group ? dataMessage.group.id : nil; OWSContact *_Nullable contact = [OWSContacts contactForDataMessage:dataMessage transaction:transaction]; NSNumber *_Nullable serverTimestamp = (envelope.hasServerTimestamp ? @(envelope.serverTimestamp) : nil); + BOOL wasReceivedByUD = envelope.type == SSKProtoEnvelopeTypeUnidentifiedSender; if (dataMessage.group.type == SSKProtoGroupContextTypeRequestInfo) { [self handleGroupInfoRequest:envelope dataMessage:dataMessage transaction:transaction]; @@ -1229,7 +1230,8 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:dataMessage.expireTimer quotedMessage:quotedMessage contactShare:contact - serverTimestamp:serverTimestamp]; + serverTimestamp:serverTimestamp + wasReceivedByUD:wasReceivedByUD]; [self finalizeIncomingMessage:incomingMessage thread:oldGroupThread @@ -1269,7 +1271,8 @@ NS_ASSUME_NONNULL_BEGIN expiresInSeconds:dataMessage.expireTimer quotedMessage:quotedMessage contactShare:contact - serverTimestamp:serverTimestamp]; + serverTimestamp:serverTimestamp + wasReceivedByUD:wasReceivedByUD]; [self finalizeIncomingMessage:incomingMessage thread:thread