From 64f92d261bae5f934a439522c7cb2bffa7e18bc2 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Fri, 17 May 2019 13:37:36 +1000 Subject: [PATCH] Refactor --- Signal/src/Signal-Bridging-Header.h | 1 + SignalMessaging/utils/ThreadUtil.m | 8 ++++---- .../src/Loki/Extensions/TSOutgoingMessage.swift | 9 --------- SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.h | 3 +++ SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.m | 6 ++++++ SignalServiceKit/src/Messages/OWSMessageManager.m | 9 +++++---- 6 files changed, 19 insertions(+), 17 deletions(-) delete mode 100644 SignalServiceKit/src/Loki/Extensions/TSOutgoingMessage.swift diff --git a/Signal/src/Signal-Bridging-Header.h b/Signal/src/Signal-Bridging-Header.h index 501679afb..03087aae1 100644 --- a/Signal/src/Signal-Bridging-Header.h +++ b/Signal/src/Signal-Bridging-Header.h @@ -90,6 +90,7 @@ #import #import #import +#import #import #import #import diff --git a/SignalMessaging/utils/ThreadUtil.m b/SignalMessaging/utils/ThreadUtil.m index b5a5b778a..8de72cb9b 100644 --- a/SignalMessaging/utils/ThreadUtil.m +++ b/SignalMessaging/utils/ThreadUtil.m @@ -85,13 +85,13 @@ typedef void (^BuildOutgoingMessageCompletionBlock)(TSOutgoingMessage *savedMess #pragma mark - Durable Message Enqueue -+ (TSOutgoingMessage *)enqueueAcceptFriendRequestMessageInThread:(TSThread *)thread ++ (OWSEphemeralMessage *)enqueueAcceptFriendRequestMessageInThread:(TSThread *)thread { - TSOutgoingMessage *message = [TSOutgoingMessage createEmptyOutgoingMessageInThread:thread]; + OWSEphemeralMessage *emptyMessage = [OWSEphemeralMessage createEmptyOutgoingMessageInThread:thread]; [self.dbConnection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { - [self.messageSenderJobQueue addMessage:message transaction:transaction]; + [self.messageSenderJobQueue addMessage:emptyMessage transaction:transaction]; }]; - return message; + return emptyMessage; } + (TSOutgoingMessage *)enqueueMessageWithText:(NSString *)fullMessageText diff --git a/SignalServiceKit/src/Loki/Extensions/TSOutgoingMessage.swift b/SignalServiceKit/src/Loki/Extensions/TSOutgoingMessage.swift deleted file mode 100644 index f106d9539..000000000 --- a/SignalServiceKit/src/Loki/Extensions/TSOutgoingMessage.swift +++ /dev/null @@ -1,9 +0,0 @@ - -@objc public extension TSOutgoingMessage { - - /// Loki: This is a message used to establish sessions - @objc public static func createEmptyOutgoingMessage(inThread thread: TSThread) -> EphemeralMessage { - return EphemeralMessage(outgoingMessageWithTimestamp: NSDate.ows_millisecondTimeStamp(), in: thread, messageBody: "", attachmentIds: [], expiresInSeconds: 0, - expireStartedAt: 0, isVoiceMessage: false, groupMetaMessage: .unspecified, quotedMessage: nil, contactShare: nil, linkPreview: nil) - } -} diff --git a/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.h b/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.h index ee0378aee..ed4ec12ce 100644 --- a/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.h +++ b/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.h @@ -5,6 +5,9 @@ NS_ASSUME_NONNULL_BEGIN NS_SWIFT_NAME(EphemeralMessage) @interface OWSEphemeralMessage : TSOutgoingMessage +/// Used to establish sessions. ++ (OWSEphemeralMessage *)createEmptyOutgoingMessageInThread:(TSThread *)thread; + @end NS_ASSUME_NONNULL_END diff --git a/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.m b/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.m index 786bba27d..4c4312f9c 100644 --- a/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.m +++ b/SignalServiceKit/src/Loki/Messages/OWSEphemeralMessage.m @@ -1,7 +1,13 @@ #import "OWSEphemeralMessage.h" +#import @implementation OWSEphemeralMessage - (BOOL)shouldBeSaved { return NO; } ++ (OWSEphemeralMessage *)createEmptyOutgoingMessageInThread:(TSThread *)thread { + return [[OWSEphemeralMessage alloc] initOutgoingMessageWithTimestamp:NSDate.ows_millisecondTimeStamp inThread:thread messageBody:@"" attachmentIds:[NSMutableArray new] + expiresInSeconds:0 expireStartedAt:0 isVoiceMessage:NO groupMetaMessage:TSGroupMetaMessageUnspecified quotedMessage:nil contactShare:nil linkPreview:nil]; +} + @end diff --git a/SignalServiceKit/src/Messages/OWSMessageManager.m b/SignalServiceKit/src/Messages/OWSMessageManager.m index 0172f5c8b..491a90957 100644 --- a/SignalServiceKit/src/Messages/OWSMessageManager.m +++ b/SignalServiceKit/src/Messages/OWSMessageManager.m @@ -19,6 +19,7 @@ #import "OWSDisappearingConfigurationUpdateInfoMessage.h" #import "OWSDisappearingMessagesConfiguration.h" #import "OWSDisappearingMessagesJob.h" +#import "OWSEphemeralMessage.h" #import "OWSIdentityManager.h" #import "OWSIncomingMessageFinder.h" #import "OWSIncomingSentMessageTranscript.h" @@ -1022,7 +1023,7 @@ NS_ASSUME_NONNULL_BEGIN [thread saveWithTransaction:transaction]; /// Loki: Send an empty message to trigger the session reset code for both parties - TSOutgoingMessage *emptyMessage = [TSOutgoingMessage createEmptyOutgoingMessageInThread:thread]; + OWSEphemeralMessage *emptyMessage = [OWSEphemeralMessage createEmptyOutgoingMessageInThread:thread]; [self.messageSenderJobQueue addMessage:emptyMessage transaction:transaction]; OWSLogDebug(@"[Loki Session Reset] Session reset has been received from %@", envelope.source); @@ -1476,8 +1477,8 @@ NS_ASSUME_NONNULL_BEGIN // TSThreadFriendRequestStatusRequestSent. [thread setFriendRequestStatus:TSThreadFriendRequestStatusFriends withTransaction:transaction]; // The two lines below are equivalent to calling [ThreadUtil enqueueAcceptFriendRequestMessageInThread:thread] - TSOutgoingMessage *acceptFriendRequestMessage = [TSOutgoingMessage createEmptyOutgoingMessageInThread:thread]; - [self.messageSenderJobQueue addMessage:acceptFriendRequestMessage transaction:transaction]; + OWSEphemeralMessage *emptyMessage = [OWSEphemeralMessage createEmptyOutgoingMessageInThread:thread]; + [self.messageSenderJobQueue addMessage:emptyMessage transaction:transaction]; } else if (!thread.isContactFriend) { // Checking that the sender of the message isn't already a friend is necessary because otherwise // the following situation can occur: Alice and Bob are friends. Bob loses his database and his @@ -1701,7 +1702,7 @@ NS_ASSUME_NONNULL_BEGIN // If we were the ones to initiate the reset then we need to send back an empty message if (thread.sessionResetState == TSContactThreadSessionResetStateInitiated) { - TSOutgoingMessage *emptyMessage = [TSOutgoingMessage createEmptyOutgoingMessageInThread:thread]; + OWSEphemeralMessage *emptyMessage = [OWSEphemeralMessage createEmptyOutgoingMessageInThread:thread]; [self.messageSenderJobQueue addMessage:emptyMessage transaction:transaction]; }