move edit button on click listener to setEditUI

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-06-23 17:04:42 +02:00
parent 09905e61fe
commit 15f3240f98
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -40,6 +40,8 @@ import androidx.appcompat.content.res.AppCompatResources
import androidx.appcompat.view.ContextThemeWrapper import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.toDrawable import androidx.core.graphics.drawable.toDrawable
import androidx.core.text.toSpannable
import androidx.core.text.toSpanned
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.widget.doAfterTextChanged import androidx.core.widget.doAfterTextChanged
import androidx.emoji2.widget.EmojiTextView import androidx.emoji2.widget.EmojiTextView
@ -78,6 +80,7 @@ import com.nextcloud.talk.utils.CharPolicy
import com.nextcloud.talk.utils.ImageEmojiEditText import com.nextcloud.talk.utils.ImageEmojiEditText
import com.nextcloud.talk.utils.SpreedFeatures import com.nextcloud.talk.utils.SpreedFeatures
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
import com.nextcloud.talk.utils.message.MessageUtils
import com.nextcloud.talk.utils.text.Spans import com.nextcloud.talk.utils.text.Spans
import com.otaliastudios.autocomplete.Autocomplete import com.otaliastudios.autocomplete.Autocomplete
import com.stfalcon.chatkit.commons.models.IMessage import com.stfalcon.chatkit.commons.models.IMessage
@ -125,6 +128,9 @@ class MessageInputFragment : Fragment() {
@Inject @Inject
lateinit var networkMonitor: NetworkMonitor lateinit var networkMonitor: NetworkMonitor
@Inject
lateinit var messageUtils: MessageUtils
lateinit var binding: FragmentMessageInputBinding lateinit var binding: FragmentMessageInputBinding
private lateinit var conversationInternalId: String private lateinit var conversationInternalId: String
private var typedWhileTypingTimerIsRunning: Boolean = false private var typedWhileTypingTimerIsRunning: Boolean = false
@ -357,7 +363,7 @@ class MessageInputFragment : Fragment() {
binding.fragmentMessageInputView.inputEditText?.error = null binding.fragmentMessageInputView.inputEditText?.error = null
} }
val editable = binding.fragmentMessageInputView.inputEditText?.editableText val editable = binding.fragmentMessageInputView.inputEditText?.editableText
if (editable != null && binding.fragmentMessageInputView.inputEditText != null) { if (editable != null && binding.fragmentMessageInputView.inputEditText != null) {
val mentionSpans = editable.getSpans( val mentionSpans = editable.getSpans(
@ -412,39 +418,6 @@ class MessageInputFragment : Fragment() {
submitMessage(false) submitMessage(false)
} }
binding.fragmentMessageInputView.editMessageButton.setOnClickListener {
val editable = binding.fragmentMessageInputView.inputEditText!!.editableText
val mentionSpans = editable.getSpans(
0,
editable.length,
Spans.MentionChipSpan::class.java
)
var mentionSpan: Spans.MentionChipSpan
for (i in mentionSpans.indices) {
mentionSpan = mentionSpans[i]
var mentionId = mentionSpan.id
val shouldQuote = mentionId.contains(" ") ||
mentionId.contains("@") ||
mentionId.startsWith("guest/") ||
mentionId.startsWith("group/") ||
mentionId.startsWith("email/") ||
mentionId.startsWith("team/")
if (shouldQuote) {
mentionId = "\"" + mentionId + "\""
}
editable.replace(editable.getSpanStart(mentionSpan), editable.getSpanEnd(mentionSpan), "@$mentionId")
}
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
val editedMessage = ChatUtils.getParsedMessage(editable!!.toString(), message.messageParameters)
if (message.message!!.trim() != editedMessage?.trim()) {
editMessageAPI(message, editedMessage!!)
}
clearEditUI()
}
binding.fragmentEditView.clearEdit.setOnClickListener {
clearEditUI()
}
if (CapabilitiesUtil.hasSpreedFeatureCapability(chatActivity.spreedCapabilities, SpreedFeatures.SILENT_SEND)) { if (CapabilitiesUtil.hasSpreedFeatureCapability(chatActivity.spreedCapabilities, SpreedFeatures.SILENT_SEND)) {
binding.fragmentMessageInputView.button?.setOnLongClickListener { binding.fragmentMessageInputView.button?.setOnLongClickListener {
showSendButtonMenu() showSendButtonMenu()
@ -953,8 +926,8 @@ class MessageInputFragment : Fragment() {
} }
} }
private fun setEditUI(message: ChatMessage) { private fun setEditUI(message: ChatMessage) {
val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters) val editedMessage = ChatUtils.getParsedMessage(message.message, message.messageParameters)
binding.fragmentEditView.editMessage.text = editedMessage binding.fragmentEditView.editMessage.text = editedMessage
binding.fragmentMessageInputView.inputEditText.setText(editedMessage) binding.fragmentMessageInputView.inputEditText.setText(editedMessage)
val end = binding.fragmentMessageInputView.inputEditText.text.length val end = binding.fragmentMessageInputView.inputEditText.text.length
@ -964,6 +937,38 @@ class MessageInputFragment : Fragment() {
binding.fragmentMessageInputView.editMessageButton.visibility = View.VISIBLE binding.fragmentMessageInputView.editMessageButton.visibility = View.VISIBLE
binding.fragmentEditView.editMessageView.visibility = View.VISIBLE binding.fragmentEditView.editMessageView.visibility = View.VISIBLE
binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE binding.fragmentMessageInputView.attachmentButton.visibility = View.GONE
binding.fragmentMessageInputView.editMessageButton.setOnClickListener {
val editable = binding.fragmentMessageInputView.inputEditText!!.editableText
val mentionSpans = editable.getSpans(
0,
editable.length,
Spans.MentionChipSpan::class.java
)
var mentionSpan: Spans.MentionChipSpan
for (i in mentionSpans.indices) {
mentionSpan = mentionSpans[i]
var mentionId = mentionSpan.id
val shouldQuote = mentionId.contains(" ") ||
mentionId.contains("@") ||
mentionId.startsWith("guest/") ||
mentionId.startsWith("group/") ||
mentionId.startsWith("email/") ||
mentionId.startsWith("team/")
if (shouldQuote) {
mentionId = "\"" + mentionId + "\""
}
editable.replace(editable.getSpanStart(mentionSpan), editable.getSpanEnd(mentionSpan), "@$mentionId")
}
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
if (message.message!!.trim() != editable?.trim()) {
editMessageAPI(message, editable!!.toString())
}
clearEditUI()
}
binding.fragmentEditView.clearEdit.setOnClickListener {
clearEditUI()
}
} }
private fun clearEditUI() { private fun clearEditUI() {