From def0e9e2f9db19376b725831357a62dc19be371e Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Fri, 8 May 2020 11:15:53 +1000 Subject: [PATCH] Clean --- .../Loki/Protocol/Meta/SessionMetaProtocol.swift | 14 ++------------ .../Multi Device/MultiDeviceProtocol.swift | 8 ++++++++ SignalServiceKit/src/Messages/OWSMessageSender.m | 8 ++++---- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift index bc4c1749e..fd374342e 100644 --- a/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Meta/SessionMetaProtocol.swift @@ -21,23 +21,13 @@ public final class SessionMetaProtocol : NSObject { // MARK: - Sending // MARK: Message Destination - private static func getOurDevices() -> Set { - var result: Set = [] - storage.dbReadConnection.read { transaction in - // Aim the message at all linked devices, including this one - // TODO: Should we exclude the current device? - result = LokiDatabaseUtilities.getLinkedDeviceHexEncodedPublicKeys(for: getUserHexEncodedPublicKey(), in: transaction) - } - return result - } - @objc(getDestinationsForOutgoingSyncMessage) public static func objc_getDestinationsForOutgoingSyncMessage() -> NSMutableSet { return NSMutableSet(set: getDestinationsForOutgoingSyncMessage()) } public static func getDestinationsForOutgoingSyncMessage() -> Set { - return getOurDevices() + return MultiDeviceProtocol.getUserLinkedDevices() } @objc(getDestinationsForOutgoingGroupMessage:inThread:) @@ -59,7 +49,7 @@ public final class SessionMetaProtocol : NSObject { } else { result = Set(outgoingGroupMessage.sendingRecipientIds()) .intersection(thread.groupModel.groupMemberIds) - .subtracting(getOurDevices()) + .subtracting(MultiDeviceProtocol.getUserLinkedDevices()) } return result } diff --git a/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift index 7f08b485a..e3fe35df2 100644 --- a/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Multi Device/MultiDeviceProtocol.swift @@ -259,6 +259,14 @@ public final class MultiDeviceProtocol : NSObject { } // MARK: - General + public static func getUserLinkedDevices() -> Set { + var result: Set = [] + storage.dbReadConnection.read { transaction in + result = LokiDatabaseUtilities.getLinkedDeviceHexEncodedPublicKeys(for: getUserHexEncodedPublicKey(), in: transaction) + } + return result + } + @objc public static func isSlaveThread(_ thread: TSThread) -> Bool { guard let thread = thread as? TSContactThread else { return false } var isSlaveThread = false diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 3fe962a67..e5c0f6549 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -506,7 +506,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; OWSAssertDebug(message); OWSAssertDebug(errorHandle); - NSString *hexEncodedPublicKey = self.tsAccountManager.localNumber; + NSString *userHexEncodedPublicKey = self.tsAccountManager.localNumber; __block NSMutableSet *recipientIds = [NSMutableSet new]; if ([message isKindOfClass:[OWSOutgoingSyncMessage class]]) { @@ -514,11 +514,11 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; } else if (thread.isGroupThread) { TSGroupThread *groupThread = (TSGroupThread *)thread; recipientIds = [LKSessionMetaProtocol getDestinationsForOutgoingGroupMessage:message inThread:thread]; - __block NSString *masterHexEncodedPublicKey; + __block NSString *userMasterHexEncodedPublicKey; [OWSPrimaryStorage.sharedManager.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { - masterHexEncodedPublicKey = [LKDatabaseUtilities getMasterHexEncodedPublicKeyFor:hexEncodedPublicKey in:transaction] ?: hexEncodedPublicKey; + userMasterHexEncodedPublicKey = [LKDatabaseUtilities getMasterHexEncodedPublicKeyFor:userHexEncodedPublicKey in:transaction] ?: userHexEncodedPublicKey; }]; - if ([recipientIds containsObject:masterHexEncodedPublicKey]) { + if ([recipientIds containsObject:userMasterHexEncodedPublicKey]) { OWSFailDebug(@"Message send recipients should not include self."); } } else if ([thread isKindOfClass:[TSContactThread class]]) {