diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index ca91b9a16..f0d80cb87 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -712,6 +712,12 @@ typedef enum : NSUInteger { [SSKEnvironment.shared.profileManager ensureProfileCachedForContactWithID:self.thread.contactIdentifier with:transaction]; }]; } + + if ([self.thread isKindOfClass:TSContactThread.class]) { + [LKStorage writeSyncWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { + [LKSessionManagementProtocol sendSessionRequestIfNeededToPublicKey:self.thread.contactIdentifier transaction:transaction]; + } error:nil]; + } } - (void)createContents diff --git a/SignalServiceKit/src/Loki/Protocol/Session Management/SessionManagementProtocol.swift b/SignalServiceKit/src/Loki/Protocol/Session Management/SessionManagementProtocol.swift index 7bd5f5560..d0c308b42 100644 --- a/SignalServiceKit/src/Loki/Protocol/Session Management/SessionManagementProtocol.swift +++ b/SignalServiceKit/src/Loki/Protocol/Session Management/SessionManagementProtocol.swift @@ -64,6 +64,7 @@ public final class SessionManagementProtocol : NSObject { public static func shouldUseFallbackEncryption(for message: TSOutgoingMessage, recipientID: String, transaction: YapDatabaseReadWriteTransaction) -> Bool { if message is SessionRequestMessage { return true } else if let message = message as? DeviceLinkMessage, message.kind == .request { return true } + else if message is OWSOutgoingNullMessage { return false } return !storage.containsSession(recipientID, deviceId: Int32(OWSDevicePrimaryDeviceId), protocolContext: transaction) } diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 08ff3b9a4..20892702e 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -1543,6 +1543,12 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException"; BOOL shouldUseFallbackEncryption = [LKSessionManagementProtocol shouldUseFallbackEncryptionForMessage:message recipientID:recipientID transaction:transaction]; + if (shouldUseFallbackEncryption) { + [LKLogger print:@"[Loki] Using fallback encryption"]; + } else { + [LKLogger print:@"[Loki] Using Signal Encryption"]; + } + serializedMessage = [secretCipher throwswrapped_encryptMessageWithRecipientPublicKey:recipientID deviceID:@(OWSDevicePrimaryDeviceId).intValue paddedPlaintext:plainText.paddedMessageBody