Merge pull request #707 from esensar/fix/554-duplicate-resent-messages

Prevent duplication of messages on resend
This commit is contained in:
Tibor Kaputa 2023-07-24 23:32:25 +02:00 committed by GitHub
commit 96c8b4b1ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 13 deletions

View file

@ -107,6 +107,7 @@ class ThreadActivity : SimpleActivity() {
private var wasProtectionHandled = false
private var isScheduledMessage: Boolean = false
private var messageToResend: Long? = null
private var scheduledMessage: Message? = null
private lateinit var scheduledDateTime: DateTime
@ -291,6 +292,7 @@ class ThreadActivity : SimpleActivity() {
super.onActivityResult(requestCode, resultCode, resultData)
if (resultCode != Activity.RESULT_OK) return
val data = resultData?.data
messageToResend = null
if (requestCode == CAPTURE_PHOTO_INTENT && capturedImageUri != null) {
addAttachment(capturedImageUri!!)
@ -492,7 +494,10 @@ class ThreadActivity : SimpleActivity() {
private fun handleItemClick(any: Any) {
when {
any is Message && any.isScheduled -> showScheduledMessageInfo(any)
any is ThreadError -> thread_type_message.setText(any.messageText)
any is ThreadError -> {
thread_type_message.setText(any.messageText)
messageToResend = any.messageId
}
}
}
@ -635,6 +640,7 @@ class ThreadActivity : SimpleActivity() {
thread_send_message.isClickable = false
thread_type_message.onTextChangeListener {
messageToResend = null
checkSendMessageAvailability()
val messageString = if (config.useSimpleCharacters) {
it.normalizeString()
@ -1334,7 +1340,7 @@ class ThreadActivity : SimpleActivity() {
try {
refreshedSinceSent = false
sendMessageCompat(text, addresses, subscriptionId, attachments)
sendMessageCompat(text, addresses, subscriptionId, attachments, messageToResend)
ensureBackgroundThread {
val messageIds = messages.map { it.id }
val messages = getMessages(threadId, getImageResolutions = true, limit = maxOf(1, attachments.size))