session-ios/SignalUtilitiesKit/Messaging/Sending & Receiving/MessageSenderDelegate.swift

29 lines
1.5 KiB
Swift
Raw Normal View History

2020-11-19 05:24:09 +01:00
2020-11-19 06:51:08 +01:00
public final class MessageSenderDelegate : SessionMessagingKit.MessageSenderDelegate, SharedSenderKeysDelegate {
2020-11-19 05:24:09 +01:00
public static let shared = MessageSenderDelegate()
2020-11-19 06:51:08 +01:00
public func handleSuccessfulMessageSend(_ message: Message, using transaction: Any) {
guard let tsMessage = TSOutgoingMessage.find(withTimestamp: message.sentTimestamp!) else { return }
2020-11-23 05:58:48 +01:00
if let openGroupServerMessageID = message.openGroupServerMessageID {
tsMessage.openGroupServerMessageID = openGroupServerMessageID
}
2020-11-19 06:51:08 +01:00
tsMessage.update(withSentRecipient: message.recipient!, wasSentByUD: true, transaction: transaction as! YapDatabaseReadWriteTransaction)
}
2020-11-20 04:04:56 +01:00
public func handleFailedMessageSend(_ message: Message, using transaction: Any) {
// TODO: Implement
}
2020-11-19 06:51:08 +01:00
2020-11-19 05:24:09 +01:00
public func requestSenderKey(for groupPublicKey: String, senderPublicKey: String, using transaction: Any) {
2020-11-20 00:14:35 +01:00
SNLog("Requesting sender key for group public key: \(groupPublicKey), sender public key: \(senderPublicKey).")
2020-11-19 05:24:09 +01:00
let transaction = transaction as! YapDatabaseReadWriteTransaction
let thread = TSContactThread.getOrCreateThread(withContactId: senderPublicKey, transaction: transaction)
thread.save(with: transaction)
let closedGroupUpdateKind = ClosedGroupUpdate.Kind.senderKeyRequest(groupPublicKey: Data(hex: groupPublicKey))
let closedGroupUpdate = ClosedGroupUpdate()
closedGroupUpdate.kind = closedGroupUpdateKind
MessageSender.send(closedGroupUpdate, in: thread, using: transaction)
}
}