This commit is contained in:
Niels Andriesse 2020-11-26 12:46:47 +11:00
parent ac6baec6f2
commit d5dc33e619
4 changed files with 9 additions and 7 deletions

View File

@ -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<SignalAttachment *> new] inThread:thread usingTransaction:transaction];
[thread setDraft:@"" transaction:transaction];
}];

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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 {