mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-16 05:01:26 +00:00
reorganise duplicated resend code
This commit is contained in:
parent
ff49363d53
commit
b092742447
@ -93,6 +93,7 @@ import org.thoughtcrime.securesms.conversation.v2.search.SearchViewModel
|
|||||||
import org.thoughtcrime.securesms.conversation.v2.utilities.AttachmentManager
|
import org.thoughtcrime.securesms.conversation.v2.utilities.AttachmentManager
|
||||||
import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog
|
import org.thoughtcrime.securesms.conversation.v2.utilities.BaseDialog
|
||||||
import org.thoughtcrime.securesms.conversation.v2.utilities.MentionUtilities
|
import org.thoughtcrime.securesms.conversation.v2.utilities.MentionUtilities
|
||||||
|
import org.thoughtcrime.securesms.conversation.v2.utilities.ResendMessageUtilities
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
import org.thoughtcrime.securesms.database.DraftDatabase
|
import org.thoughtcrime.securesms.database.DraftDatabase
|
||||||
import org.thoughtcrime.securesms.database.DraftDatabase.Drafts
|
import org.thoughtcrime.securesms.database.DraftDatabase.Drafts
|
||||||
@ -1212,45 +1213,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
|
|||||||
|
|
||||||
override fun resendMessage(messages: Set<MessageRecord>) {
|
override fun resendMessage(messages: Set<MessageRecord>) {
|
||||||
messages.forEach { messageRecord ->
|
messages.forEach { messageRecord ->
|
||||||
val recipient: Recipient = messageRecord.recipient
|
ResendMessageUtilities.resend(messageRecord)
|
||||||
val message = VisibleMessage()
|
|
||||||
message.id = messageRecord.getId()
|
|
||||||
if (messageRecord.isOpenGroupInvitation) {
|
|
||||||
val openGroupInvitation = OpenGroupInvitation()
|
|
||||||
fromJSON(messageRecord.body)?.let { updateMessageData ->
|
|
||||||
val kind = updateMessageData.kind
|
|
||||||
if (kind is UpdateMessageData.Kind.OpenGroupInvitation) {
|
|
||||||
openGroupInvitation.name = kind.groupName
|
|
||||||
openGroupInvitation.url = kind.groupUrl
|
|
||||||
}
|
|
||||||
}
|
|
||||||
message.openGroupInvitation = openGroupInvitation
|
|
||||||
} else {
|
|
||||||
message.text = messageRecord.body
|
|
||||||
}
|
|
||||||
message.sentTimestamp = messageRecord.timestamp
|
|
||||||
if (recipient.isGroupRecipient) {
|
|
||||||
message.groupPublicKey = recipient.address.toGroupString()
|
|
||||||
} else {
|
|
||||||
message.recipient = messageRecord.recipient.address.serialize()
|
|
||||||
}
|
|
||||||
message.threadID = messageRecord.threadId
|
|
||||||
if (messageRecord.isMms) {
|
|
||||||
val mmsMessageRecord = messageRecord as MmsMessageRecord
|
|
||||||
if (mmsMessageRecord.linkPreviews.isNotEmpty()) {
|
|
||||||
message.linkPreview = from(mmsMessageRecord.linkPreviews[0])
|
|
||||||
}
|
|
||||||
if (mmsMessageRecord.quote != null) {
|
|
||||||
message.quote = from(mmsMessageRecord.quote!!.quoteModel)
|
|
||||||
}
|
|
||||||
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()
|
endActionMode()
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import org.session.libsession.utilities.ExpirationUtil
|
|||||||
import org.session.libsession.utilities.TextSecurePreferences
|
import org.session.libsession.utilities.TextSecurePreferences
|
||||||
import org.session.libsession.utilities.recipients.Recipient
|
import org.session.libsession.utilities.recipients.Recipient
|
||||||
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
||||||
|
import org.thoughtcrime.securesms.conversation.v2.utilities.ResendMessageUtilities
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||||
@ -44,11 +45,13 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
setContentView(R.layout.activity_message_detail)
|
setContentView(R.layout.activity_message_detail)
|
||||||
title = resources.getString(R.string.conversation_context__menu_message_details)
|
title = resources.getString(R.string.conversation_context__menu_message_details)
|
||||||
val timestamp = intent.getLongExtra(MESSAGE_TIMESTAMP, -1L)
|
val timestamp = intent.getLongExtra(MESSAGE_TIMESTAMP, -1L)
|
||||||
|
// We only show this screen for messages fail to send,
|
||||||
|
// so the author of the messages must be the current user.
|
||||||
val author = Address.fromSerialized(TextSecurePreferences.getLocalNumber(this)!!)
|
val author = Address.fromSerialized(TextSecurePreferences.getLocalNumber(this)!!)
|
||||||
messageRecord = DatabaseFactory.getMmsSmsDatabase (this).getMessageFor(timestamp, author)
|
messageRecord = DatabaseFactory.getMmsSmsDatabase (this).getMessageFor(timestamp, author)
|
||||||
updateContent()
|
updateContent()
|
||||||
resend_button.setOnClickListener {
|
resend_button.setOnClickListener {
|
||||||
resend()
|
ResendMessageUtilities.resend(messageRecord!!)
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,47 +75,4 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
expires_in.text = duration
|
expires_in.text = duration
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun resend() {
|
|
||||||
val messageRecord = messageRecord!!
|
|
||||||
val recipient: Recipient = messageRecord.recipient
|
|
||||||
val message = VisibleMessage()
|
|
||||||
message.id = messageRecord.getId()
|
|
||||||
if (messageRecord.isOpenGroupInvitation) {
|
|
||||||
val openGroupInvitation = OpenGroupInvitation()
|
|
||||||
UpdateMessageData.fromJSON(messageRecord.body)?.let { updateMessageData ->
|
|
||||||
val kind = updateMessageData.kind
|
|
||||||
if (kind is UpdateMessageData.Kind.OpenGroupInvitation) {
|
|
||||||
openGroupInvitation.name = kind.groupName
|
|
||||||
openGroupInvitation.url = kind.groupUrl
|
|
||||||
}
|
|
||||||
}
|
|
||||||
message.openGroupInvitation = openGroupInvitation
|
|
||||||
} else {
|
|
||||||
message.text = messageRecord.body
|
|
||||||
}
|
|
||||||
message.sentTimestamp = messageRecord.timestamp
|
|
||||||
if (recipient.isGroupRecipient) {
|
|
||||||
message.groupPublicKey = recipient.address.toGroupString()
|
|
||||||
} else {
|
|
||||||
message.recipient = messageRecord.recipient.address.serialize()
|
|
||||||
}
|
|
||||||
message.threadID = messageRecord.threadId
|
|
||||||
if (messageRecord.isMms) {
|
|
||||||
val mmsMessageRecord = messageRecord as MmsMessageRecord
|
|
||||||
if (mmsMessageRecord.linkPreviews.isNotEmpty()) {
|
|
||||||
message.linkPreview = LinkPreview.from(mmsMessageRecord.linkPreviews[0])
|
|
||||||
}
|
|
||||||
if (mmsMessageRecord.quote != null) {
|
|
||||||
message.quote = Quote.from(mmsMessageRecord.quote!!.quoteModel)
|
|
||||||
}
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
package org.thoughtcrime.securesms.conversation.v2.utilities
|
||||||
|
|
||||||
|
import org.session.libsession.messaging.MessagingModuleConfiguration
|
||||||
|
import org.session.libsession.messaging.messages.visible.LinkPreview
|
||||||
|
import org.session.libsession.messaging.messages.visible.OpenGroupInvitation
|
||||||
|
import org.session.libsession.messaging.messages.visible.Quote
|
||||||
|
import org.session.libsession.messaging.messages.visible.VisibleMessage
|
||||||
|
import org.session.libsession.messaging.sending_receiving.MessageSender
|
||||||
|
import org.session.libsession.messaging.utilities.UpdateMessageData
|
||||||
|
import org.session.libsession.utilities.recipients.Recipient
|
||||||
|
import org.thoughtcrime.securesms.database.model.MessageRecord
|
||||||
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord
|
||||||
|
|
||||||
|
object ResendMessageUtilities {
|
||||||
|
|
||||||
|
fun resend(messageRecord: MessageRecord) {
|
||||||
|
val recipient: Recipient = messageRecord.recipient
|
||||||
|
val message = VisibleMessage()
|
||||||
|
message.id = messageRecord.getId()
|
||||||
|
if (messageRecord.isOpenGroupInvitation) {
|
||||||
|
val openGroupInvitation = OpenGroupInvitation()
|
||||||
|
UpdateMessageData.fromJSON(messageRecord.body)?.let { updateMessageData ->
|
||||||
|
val kind = updateMessageData.kind
|
||||||
|
if (kind is UpdateMessageData.Kind.OpenGroupInvitation) {
|
||||||
|
openGroupInvitation.name = kind.groupName
|
||||||
|
openGroupInvitation.url = kind.groupUrl
|
||||||
|
}
|
||||||
|
}
|
||||||
|
message.openGroupInvitation = openGroupInvitation
|
||||||
|
} else {
|
||||||
|
message.text = messageRecord.body
|
||||||
|
}
|
||||||
|
message.sentTimestamp = messageRecord.timestamp
|
||||||
|
if (recipient.isGroupRecipient) {
|
||||||
|
message.groupPublicKey = recipient.address.toGroupString()
|
||||||
|
} else {
|
||||||
|
message.recipient = messageRecord.recipient.address.serialize()
|
||||||
|
}
|
||||||
|
message.threadID = messageRecord.threadId
|
||||||
|
if (messageRecord.isMms) {
|
||||||
|
val mmsMessageRecord = messageRecord as MmsMessageRecord
|
||||||
|
if (mmsMessageRecord.linkPreviews.isNotEmpty()) {
|
||||||
|
message.linkPreview = LinkPreview.from(mmsMessageRecord.linkPreviews[0])
|
||||||
|
}
|
||||||
|
if (mmsMessageRecord.quote != null) {
|
||||||
|
message.quote = Quote.from(mmsMessageRecord.quote!!.quoteModel)
|
||||||
|
}
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user