From d5dc33e6193ee61577e326f9c413deeb1b3dab0f Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Thu, 26 Nov 2020 12:46:47 +1100 Subject: [PATCH] Debug --- .../ConversationView/ConversationViewController.m | 2 ++ .../Sending & Receiving/MessageReceiver+Handling.swift | 2 +- .../Sending & Receiving/MessageSender+Encryption.swift | 2 +- .../Sending & Receiving/MessageSender.swift | 10 +++++----- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Session/Signal/ConversationView/ConversationViewController.m b/Session/Signal/ConversationView/ConversationViewController.m index b4139b10e..9326faa60 100644 --- a/Session/Signal/ConversationView/ConversationViewController.m +++ b/Session/Signal/ConversationView/ConversationViewController.m @@ -3812,6 +3812,8 @@ typedef enum : NSUInteger { [self.conversationViewModel appendUnsavedOutgoingTextMessage:tsMessage]; [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [tsMessage saveWithTransaction:transaction]; + }]; + [LKStorage writeWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [SNMessageSender send:message withAttachments:[NSArray new] inThread:thread usingTransaction:transaction]; [thread setDraft:@"" transaction:transaction]; }]; diff --git a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift index 8bd51b568..daad909c6 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift @@ -172,7 +172,7 @@ extension MessageReceiver { // Cancel any typing indicators cancelTypingIndicatorsIfNeeded(for: message.sender!) // Notify the user if needed - guard let tsIncomingMessage = TSIncomingMessage.fetch(uniqueId: tsIncomingMessageID), let thread = TSThread.fetch(uniqueId: threadID) else { return } + guard let tsIncomingMessage = TSIncomingMessage.fetch(uniqueId: tsIncomingMessageID, transaction: transaction), let thread = TSThread.fetch(uniqueId: threadID, transaction: transaction) else { return } Storage.read { transaction in SSKEnvironment.shared.notificationsManager!.notifyUser(for: tsIncomingMessage, in: thread, transaction: transaction) } diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender+Encryption.swift b/SessionMessagingKit/Sending & Receiving/MessageSender+Encryption.swift index 3a07bd7ae..c583451e5 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender+Encryption.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender+Encryption.swift @@ -7,7 +7,7 @@ internal extension MessageSender { let storage = Configuration.shared.signalStorage let cipher = try SMKSecretSessionCipher(sessionResetImplementation: Configuration.shared.sessionRestorationImplementation, sessionStore: storage, preKeyStore: storage, signedPreKeyStore: storage, identityStore: Configuration.shared.identityKeyStore) - let certificate = Configuration.shared.storage.getSenderCertificate(for: publicKey) + let certificate = SMKSenderCertificate(senderDeviceId: 1, senderRecipientId: Configuration.shared.storage.getUserPublicKey()!) return try cipher.throwswrapped_encryptMessage(recipientPublicKey: publicKey, deviceID: 1, paddedPlaintext: (plaintext as NSData).paddedMessageBody(), senderCertificate: certificate, protocolContext: transaction, useFallbackSessionCipher: true) } diff --git a/SessionMessagingKit/Sending & Receiving/MessageSender.swift b/SessionMessagingKit/Sending & Receiving/MessageSender.swift index dabf06e6e..d16b9d997 100644 --- a/SessionMessagingKit/Sending & Receiving/MessageSender.swift +++ b/SessionMessagingKit/Sending & Receiving/MessageSender.swift @@ -68,7 +68,7 @@ public final class MessageSender : NSObject { storage.withAsync({ transaction in MessageSender.handleFailedMessageSend(message, with: error, using: transaction) }, completion: { }) - if case .contact(_) = destination { + if case .contact(_) = destination, message is VisibleMessage { NotificationCenter.default.post(name: .messageSendingFailed, object: NSNumber(value: message.sentTimestamp!)) } } @@ -86,7 +86,7 @@ public final class MessageSender : NSObject { return promise } // Encrypt the serialized protobuf - if case .contact(_) = destination { + if case .contact(_) = destination, message is VisibleMessage { DispatchQueue.main.async { NotificationCenter.default.post(name: .encryptingMessage, object: NSNumber(value: message.sentTimestamp!)) } @@ -125,7 +125,7 @@ public final class MessageSender : NSObject { return promise } // Calculate proof of work - if case .contact(_) = destination { + if case .contact(_) = destination, message is VisibleMessage { DispatchQueue.main.async { NotificationCenter.default.post(name: .calculatingMessagePoW, object: NSNumber(value: message.sentTimestamp!)) } @@ -138,7 +138,7 @@ public final class MessageSender : NSObject { return promise } // Send the result - if case .contact(_) = destination { + if case .contact(_) = destination, message is VisibleMessage { DispatchQueue.main.async { NotificationCenter.default.post(name: .messageSending, object: NSNumber(value: message.sentTimestamp!)) } @@ -169,7 +169,7 @@ public final class MessageSender : NSObject { storage.withAsync({ transaction in MessageSender.handleSuccessfulMessageSend(message, using: transaction) }, completion: { }) - if case .contact(_) = destination { + if case .contact(_) = destination, message is VisibleMessage { NotificationCenter.default.post(name: .messageSent, object: NSNumber(value: message.sentTimestamp!)) } if message is VisibleMessage {