mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 13:59:48 +01:00
add replaceMentionChipSpans function
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
317984919f
commit
26a383e4de
@ -417,31 +417,9 @@ class MessageInputFragment : Fragment() {
|
||||
}
|
||||
|
||||
binding.fragmentMessageInputView.editMessageButton.setOnClickListener {
|
||||
val inputEditText = binding.fragmentMessageInputView.inputEditText!!.editableText
|
||||
val mentionSpans = inputEditText.getSpans(
|
||||
0,
|
||||
inputEditText.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 + "\""
|
||||
}
|
||||
inputEditText.replace(
|
||||
inputEditText.getSpanStart(mentionSpan),
|
||||
inputEditText.getSpanEnd(mentionSpan),
|
||||
"@$mentionId"
|
||||
)
|
||||
}
|
||||
val editable = binding.fragmentMessageInputView.inputEditText!!.editableText
|
||||
replaceMentionChipSpans(editable)
|
||||
val inputEditText = editable.toString()
|
||||
|
||||
val message = chatActivity.messageInputViewModel.getEditChatMessage.value as ChatMessage
|
||||
if (message.message!!.trim() != inputEditText.trim()) {
|
||||
@ -449,7 +427,7 @@ class MessageInputFragment : Fragment() {
|
||||
val editedMessage = messageUtils.processEditMessageParameters(
|
||||
message.messageParameters!!,
|
||||
message,
|
||||
inputEditText.toString()
|
||||
inputEditText
|
||||
)
|
||||
editMessageAPI(message, editedMessage.toString())
|
||||
} else {
|
||||
@ -876,27 +854,7 @@ class MessageInputFragment : Fragment() {
|
||||
private fun submitMessage(sendWithoutNotification: Boolean) {
|
||||
if (binding.fragmentMessageInputView.inputEditText != null) {
|
||||
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")
|
||||
}
|
||||
|
||||
replaceMentionChipSpans(editable)
|
||||
binding.fragmentMessageInputView.inputEditText?.setText("")
|
||||
sendStopTypingMessage()
|
||||
val replyMessageId = binding.fragmentMessageInputView
|
||||
@ -926,6 +884,31 @@ class MessageInputFragment : Fragment() {
|
||||
)
|
||||
}
|
||||
|
||||
private fun replaceMentionChipSpans(editable: Editable) {
|
||||
val mentionSpans = editable.getSpans(
|
||||
0,
|
||||
editable.length,
|
||||
Spans.MentionChipSpan::class.java
|
||||
)
|
||||
for (mentionSpan in mentionSpans) {
|
||||
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"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showSendButtonMenu() {
|
||||
val popupMenu = PopupMenu(
|
||||
ContextThemeWrapper(requireContext(), R.style.ChatSendButtonMenu),
|
||||
|
Loading…
Reference in New Issue
Block a user