Эх сурвалжийг харах

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 <dev@mhibbe.de>
Marcel Hibbe 1 жил өмнө
parent
commit
8a8b128ac6

+ 18 - 23
app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt

@@ -1159,15 +1159,6 @@ class ChatActivity :
         val filters = arrayOfNulls<InputFilter>(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 {