diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index e2abbff332..1c47e99355 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -1182,11 +1182,6 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe } message.addSignalAttachments(mmsMessageRecord.slideDeck.asAttachments()) } - val sentTimestamp = message.sentTimestamp - val sender = MessagingModuleConfiguration.shared.storage.getUserPublicKey() - if (sentTimestamp != null && sender != null) { - MessagingModuleConfiguration.shared.storage.markAsSending(sentTimestamp, sender) - } MessageSender.send(message, recipient.address) } endActionMode() diff --git a/libsession/src/main/java/org/session/libsession/messaging/jobs/MessageSendJob.kt b/libsession/src/main/java/org/session/libsession/messaging/jobs/MessageSendJob.kt index b4b04c9ed3..cd19d7f8ca 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/jobs/MessageSendJob.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/jobs/MessageSendJob.kt @@ -36,6 +36,7 @@ class MessageSendJob(val message: Message, val destination: Destination) : Job { override fun execute() { val messageDataProvider = MessagingModuleConfiguration.shared.messageDataProvider val message = message as? VisibleMessage + val storage = MessagingModuleConfiguration.shared.storage if (message != null) { if (!messageDataProvider.isOutgoingMessage(message.sentTimestamp!!)) return // The message has been deleted val attachmentIDs = mutableListOf() @@ -45,7 +46,7 @@ class MessageSendJob(val message: Message, val destination: Destination) : Job { val attachments = attachmentIDs.mapNotNull { messageDataProvider.getDatabaseAttachment(it) } val attachmentsToUpload = attachments.filter { it.url.isNullOrEmpty() } attachmentsToUpload.forEach { - if (MessagingModuleConfiguration.shared.storage.getAttachmentUploadJob(it.attachmentId.rowId) != null) { + if (storage.getAttachmentUploadJob(it.attachmentId.rowId) != null) { // Wait for it to finish } else { val job = AttachmentUploadJob(it.attachmentId.rowId, message.threadID!!.toString(), message, id!!) @@ -57,6 +58,11 @@ class MessageSendJob(val message: Message, val destination: Destination) : Job { return } // Wait for all attachments to upload before continuing } + val sentTimestamp = this.message.sentTimestamp + val sender = storage.getUserPublicKey() + if (sentTimestamp != null && sender != null) { + storage.markAsSending(sentTimestamp, sender) + } val promise = MessageSender.send(this.message, this.destination).success { this.handleSuccess() }.fail { exception ->