Remove unsafe message getter from UnpreparedOutgoingMessage
This commit is contained in:
parent
f7e109e50b
commit
4ce5fbd7d9
@ -2923,13 +2923,12 @@ class DebugUIMessages: DebugUIPage, Dependencies {
|
||||
}
|
||||
|
||||
databaseStorage.read { transaction in
|
||||
let message = ThreadUtil.enqueueMessage(
|
||||
ThreadUtil.enqueueMessage(
|
||||
body: messageBody,
|
||||
mediaAttachments: attachments,
|
||||
thread: thread,
|
||||
transaction: transaction
|
||||
)
|
||||
Logger.debug("timestamp: \(message.timestamp)")
|
||||
}
|
||||
}
|
||||
|
||||
@ -2972,14 +2971,13 @@ class DebugUIMessages: DebugUIPage, Dependencies {
|
||||
Logger.flush()
|
||||
|
||||
let text = "\(counter) " + randomText()
|
||||
let message = databaseStorage.write { transaction in
|
||||
return ThreadUtil.enqueueMessage(
|
||||
databaseStorage.write { transaction in
|
||||
ThreadUtil.enqueueMessage(
|
||||
body: MessageBody(text: text, ranges: .empty),
|
||||
thread: thread,
|
||||
transaction: transaction
|
||||
)
|
||||
}
|
||||
Logger.info("sendTextMessageInThread timestamp: \(message.timestamp).")
|
||||
}
|
||||
|
||||
private static func sendOversizeTextMessageInThread(_ thread: TSThread) {
|
||||
|
||||
@ -83,18 +83,18 @@ public class UnpreparedOutgoingMessage {
|
||||
return try self._prepare(tx: tx)
|
||||
}
|
||||
|
||||
public var message: TSOutgoingMessage {
|
||||
public var messageTimestampForLogging: UInt64 {
|
||||
switch messageType {
|
||||
case .persistable(let message):
|
||||
return message.message
|
||||
return message.message.timestamp
|
||||
case .editMessage(let message):
|
||||
return message.messageForSending
|
||||
return message.messageForSending.timestamp
|
||||
case .contactSync(let contactSync):
|
||||
return contactSync.message
|
||||
return contactSync.message.timestamp
|
||||
case .story(let story):
|
||||
return story.message
|
||||
return story.message.timestamp
|
||||
case .transient(let message):
|
||||
return message
|
||||
return message.timestamp
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -222,7 +222,7 @@ extension SharingThreadPickerViewController {
|
||||
let nonStorySendPromise = sendToOutgoingMessageThreads { thread in
|
||||
return firstly(on: DispatchQueue.global()) { () -> Promise<Void> in
|
||||
return self.databaseStorage.write { transaction in
|
||||
let unpreparedMessage = UnpreparedOutgoingMessage.build(
|
||||
let (_, unpreparedMessage) = UnpreparedOutgoingMessage.build(
|
||||
thread: thread,
|
||||
messageBody: body,
|
||||
quotedReplyDraft: nil,
|
||||
|
||||
@ -64,7 +64,7 @@ extension TSOutgoingMessage {
|
||||
thread: TSThread,
|
||||
transaction: SDSAnyWriteTransaction
|
||||
) throws -> PreparedOutgoingMessage {
|
||||
let unpreparedMessage = UnpreparedOutgoingMessage.build(
|
||||
let (_, unpreparedMessage) = UnpreparedOutgoingMessage.build(
|
||||
thread: thread,
|
||||
messageBody: messageBody,
|
||||
mediaAttachments: mediaAttachments,
|
||||
|
||||
@ -22,7 +22,7 @@ public extension ThreadUtil {
|
||||
) -> TSOutgoingMessage {
|
||||
AssertIsOnMainThread()
|
||||
|
||||
let unpreparedMessage = UnpreparedOutgoingMessage.build(
|
||||
let (message, unpreparedMessage) = UnpreparedOutgoingMessage.build(
|
||||
thread: thread,
|
||||
messageBody: messageBody,
|
||||
mediaAttachments: mediaAttachments,
|
||||
@ -32,27 +32,27 @@ public extension ThreadUtil {
|
||||
transaction: readTransaction
|
||||
)
|
||||
|
||||
return enqueueMessage(
|
||||
enqueueMessage(
|
||||
unpreparedMessage,
|
||||
thread: thread,
|
||||
persistenceCompletionHandler: persistenceCompletion,
|
||||
transaction: readTransaction
|
||||
)
|
||||
return message
|
||||
}
|
||||
|
||||
// MARK: - Durable Message Enqueue
|
||||
|
||||
@discardableResult
|
||||
class func enqueueMessage(
|
||||
_ unpreparedMessage: UnpreparedOutgoingMessage,
|
||||
thread: TSThread,
|
||||
persistenceCompletionHandler persistenceCompletion: PersistenceCompletion? = nil,
|
||||
transaction readTransaction: SDSAnyReadTransaction
|
||||
) -> TSOutgoingMessage {
|
||||
let message = unpreparedMessage.message
|
||||
let eventId = "sendMessageMarkedAsSent-\(message.timestamp)"
|
||||
) {
|
||||
let messageTimestampForLogging = unpreparedMessage.messageTimestampForLogging
|
||||
let eventId = "sendMessageMarkedAsSent-\(messageTimestampForLogging)"
|
||||
BenchEventStart(
|
||||
title: "Send Message Milestone: Marked as Sent (\(message.timestamp))",
|
||||
title: "Send Message Milestone: Marked as Sent (\(messageTimestampForLogging))",
|
||||
eventId: eventId,
|
||||
logInProduction: true
|
||||
)
|
||||
@ -82,7 +82,6 @@ public extension ThreadUtil {
|
||||
thread.donateSendMessageIntent(for: messageForIntent, transaction: writeTransaction)
|
||||
}
|
||||
}
|
||||
return message
|
||||
}
|
||||
}
|
||||
|
||||
@ -98,7 +97,7 @@ extension UnpreparedOutgoingMessage {
|
||||
linkPreviewDraft: OWSLinkPreviewDraft?,
|
||||
editTarget: TSOutgoingMessage?,
|
||||
transaction: SDSAnyReadTransaction
|
||||
) -> UnpreparedOutgoingMessage {
|
||||
) -> (TSOutgoingMessage, UnpreparedOutgoingMessage) {
|
||||
|
||||
var attachments = mediaAttachments
|
||||
let truncatedText: String?
|
||||
@ -171,11 +170,12 @@ extension UnpreparedOutgoingMessage {
|
||||
|
||||
let attachmentInfos = attachments.map { $0.buildAttachmentDataSource(message: message) }
|
||||
|
||||
return UnpreparedOutgoingMessage.forMessage(
|
||||
let unpreparedMessage = UnpreparedOutgoingMessage.forMessage(
|
||||
message,
|
||||
unsavedBodyAttachments: attachmentInfos,
|
||||
linkPreviewDraft: linkPreviewDraft,
|
||||
quotedReplyDraft: quotedReplyDraft
|
||||
)
|
||||
return (message, unpreparedMessage)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user