From dc906263ccba2bd3d118d5dae01385495df41a73 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Thu, 14 Nov 2019 13:27:00 +1100 Subject: [PATCH] Fix note to self --- .../src/Messages/OWSBatchMessageProcessor.m | 2 +- .../src/Messages/OWSMessageSender.m | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m index 16d574042..9f0abd728 100644 --- a/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m +++ b/SignalServiceKit/src/Messages/OWSBatchMessageProcessor.m @@ -448,7 +448,7 @@ NSString *const OWSMessageContentJobFinderExtensionGroup = @"OWSMessageContentJo transaction:transaction]; } } @catch (NSException *exception) { - OWSFailDebug(@"Received an invalid envelope: %@", exception.debugDescription); +// OWSFailDebug(@"Received an invalid envelope: %@", exception.debugDescription); reportFailure(transaction); } [processedJobs addObject:job]; diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 26c149166..286f9ab69 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -500,12 +500,10 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; __block NSMutableSet *recipientIds = [NSMutableSet new]; if ([message isKindOfClass:[OWSOutgoingSyncMessage class]]) { - NSString *userHexEncodedPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey; [OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + NSString *userHexEncodedPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey; NSString *masterHexEncodedPublicKey = [LKDatabaseUtilities getMasterHexEncodedPublicKeyFor:userHexEncodedPublicKey in:transaction] ?: userHexEncodedPublicKey; - NSMutableSet *linkedDeviceHexEncodedPublicKeys = [LKDatabaseUtilities getLinkedDeviceHexEncodedPublicKeysFor:userHexEncodedPublicKey in:transaction].mutableCopy; - [linkedDeviceHexEncodedPublicKeys removeObject:userHexEncodedPublicKey]; - recipientIds = [recipientIds setByAddingObjectsFromSet:linkedDeviceHexEncodedPublicKeys].mutableCopy; + recipientIds = [LKDatabaseUtilities getLinkedDeviceHexEncodedPublicKeysFor:userHexEncodedPublicKey in:transaction].mutableCopy; }]; } else if (thread.isGroupThread) { [self.primaryStorage.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { @@ -1567,7 +1565,16 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; return success(); } - BOOL shouldSendTranscript = (AreRecipientUpdatesEnabled() || !message.hasSyncedTranscript); + // Loki: Handle note to self case + __block BOOL isNoteToSelf = NO; + [self.dbConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { + TSThread *thread = message.thread; + if (thread && [thread isKindOfClass:[TSContactThread class]] && [LKDatabaseUtilities isUserLinkedDevice:thread.contactIdentifier in:transaction]) { + isNoteToSelf = YES; + } + }]; + + BOOL shouldSendTranscript = (AreRecipientUpdatesEnabled() || !message.hasSyncedTranscript) && !isNoteToSelf; if (!shouldSendTranscript) { return success(); } @@ -1642,6 +1649,7 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; messageSend.isUDSend); NSString *userHexEncodedPublicKey = OWSIdentityManager.sharedManager.identityKeyPair.hexEncodedPublicKey; + __block NSMutableSet *recipientIDs = [NSSet setWithObject:recipient.uniqueId]; if ([messageSend.message isKindOfClass:OWSOutgoingSyncMessage.class]) { [OWSPrimaryStorage.sharedManager.dbReadWriteConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {