|
|
|
@ -62,7 +62,8 @@ public final class SessionManagementProtocol : NSObject {
|
|
|
|
|
|
|
|
|
|
@objc(shouldUseFallbackEncryptionForMessage:recipientID:transaction:)
|
|
|
|
|
public static func shouldUseFallbackEncryption(for message: TSOutgoingMessage, recipientID: String, transaction: YapDatabaseReadWriteTransaction) -> Bool {
|
|
|
|
|
if message is SessionRequestMessage { return true }
|
|
|
|
|
if SharedSenderKeysImplementation.shared.isClosedGroup(recipientID) { return true } // We don't actually use fallback encryption but this indicates that we don't need a session
|
|
|
|
|
else 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)
|
|
|
|
|