also get mentions from the input textfield

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2025-06-10 16:39:48 +02:00
parent 50173694ef
commit f14fa59de7
No known key found for this signature in database
GPG Key ID: F7AA2A8B65B50220

View File

@ -413,10 +413,30 @@ class MessageInputFragment : Fragment() {
} }
binding.fragmentMessageInputView.editMessageButton.setOnClickListener { binding.fragmentMessageInputView.editMessageButton.setOnClickListener {
val text = binding.fragmentMessageInputView.inputEditText.text.toString() 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 message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
val editedMessage = ChatUtils.getParsedMessage(text, message.messageParameters) val editedMessage = ChatUtils.getParsedMessage(editable!!.toString(), message.messageParameters)
if (message.message!!.trim() != text.trim()) { if (message.message!!.trim() != editedMessage?.trim()) {
editMessageAPI(message, editedMessage!!) editMessageAPI(message, editedMessage!!)
} }
clearEditUI() clearEditUI()