From 8a8b128ac6903d461b5196cdb2cee308033ccbed Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Thu, 18 Apr 2024 12:45:50 +0200 Subject: [PATCH] fix to keep text of message-editing after 30sec without this fix, the text when editing a message was lost after pulling chat messages (30sec), because inputEditText was initialized again with the initial text As a fix, message editing is only initialized once when the edit button was clicked. Signed-off-by: Marcel Hibbe --- .../com/nextcloud/talk/chat/ChatActivity.kt | 41 ++++++++----------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt index 78544e5db..8dbcf72fc 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt @@ -1159,15 +1159,6 @@ class ChatActivity : val filters = arrayOfNulls(1) val lengthFilter = CapabilitiesUtil.getMessageMaxLength(spreedCapabilities) - binding.editView.editMessageView.visibility = View.GONE - - if (editableBehaviorSubject.value!!) { - val editableText = Editable.Factory.getInstance().newEditable(editMessage.message) - binding.messageInputView.inputEditText.text = editableText - binding.messageInputView.inputEditText.setSelection(editableText.length) - binding.editView.editMessage.setText(editMessage.message) - } - filters[0] = InputFilter.LengthFilter(lengthFilter) binding.messageInputView.inputEditText?.filters = filters @@ -1229,9 +1220,6 @@ class ChatActivity : uploadFile(it.toString(), false) } initVoiceRecordButton() - if (editableBehaviorSubject.value!!) { - setEditUI() - } if (sharedText.isNotEmpty()) { binding.messageInputView.inputEditText?.setText(sharedText) @@ -1245,17 +1233,6 @@ class ChatActivity : submitMessage(false) } - binding.messageInputView.editMessageButton.setOnClickListener { - if (editMessage.message == editedTextBehaviorSubject.value!!) { - clearEditUI() - return@setOnClickListener - } - editMessageAPI(editMessage, editedMessageText = editedTextBehaviorSubject.value!!) - } - binding.editView.clearEdit.setOnClickListener { - clearEditUI() - } - if (CapabilitiesUtil.hasSpreedFeatureCapability(spreedCapabilities, SpreedFeatures.SILENT_SEND)) { binding.messageInputView.button?.setOnLongClickListener { showSendButtonMenu() @@ -4918,6 +4895,24 @@ class ChatActivity : editableBehaviorSubject.onNext(true) editMessage = message initMessageInputView() + + setEditUI() + + val editableText = Editable.Factory.getInstance().newEditable(editMessage.message) + binding.messageInputView.inputEditText.text = editableText + binding.messageInputView.inputEditText.setSelection(editableText.length) + binding.editView.editMessage.text = editMessage.message + + binding.messageInputView.editMessageButton.setOnClickListener { + if (editMessage.message == editedTextBehaviorSubject.value!!) { + clearEditUI() + return@setOnClickListener + } + editMessageAPI(editMessage, editedMessageText = editedTextBehaviorSubject.value!!) + } + binding.editView.clearEdit.setOnClickListener { + clearEditUI() + } } companion object {