mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 22:04:24 +01:00
move edit button on click listener to setEditUI
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
09905e61fe
commit
15f3240f98
@ -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
|
||||||
@ -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()
|
||||||
@ -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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user