From fac8dd333a45774fd201ed37b5e64aaaec7fd30f Mon Sep 17 00:00:00 2001
From: Benoit Marty <benoit@matrix.org>
Date: Wed, 20 Dec 2023 10:15:39 +0100
Subject: [PATCH] RTE: fix API break...

---
 .../home/room/detail/AutoCompleter.kt         |  3 ++-
 .../detail/composer/RichTextComposerLayout.kt | 24 ++++++++++---------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/AutoCompleter.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/AutoCompleter.kt
index 568f4cf9e7..daf401efc3 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/AutoCompleter.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/AutoCompleter.kt
@@ -232,6 +232,7 @@ class AutoCompleter @AssistedInject constructor(
     private fun insertMatrixItemIntoRichTextEditor(editorEditText: EditorEditText, matrixItem: MatrixItem) {
         if (matrixItem is MatrixItem.EveryoneInRoomItem) {
             editorEditText.replaceTextSuggestion(matrixItem.displayName)
+            // Note: not using editorEditText.insertAtRoomMentionAtSuggestion() since we want to keep the existing look and feel of the mention for @room.
             return
         }
 
@@ -253,7 +254,7 @@ class AutoCompleter @AssistedInject constructor(
                 matrixItem.getBestName()
         }
 
-        editorEditText.setLinkSuggestion(url = permalink, text = linkText)
+        editorEditText.insertMentionAtSuggestion(url = permalink, text = linkText)
     }
 
     private fun insertMatrixItemIntoEditable(editText: EditText, editable: Editable, firstChar: Char, matrixItem: MatrixItem) {
diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/RichTextComposerLayout.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/RichTextComposerLayout.kt
index 1b999b65c8..b0923885e8 100644
--- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/RichTextComposerLayout.kt
+++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/RichTextComposerLayout.kt
@@ -105,10 +105,10 @@ internal class RichTextComposerLayout @JvmOverloads constructor(
     override val attachmentButton: ImageButton
         get() = views.attachmentButton
 
-    val richTextEditText: EditText get() =
-        views.richTextComposerEditText
-    val plainTextEditText: EditText get() =
-        views.plainTextComposerEditText
+    val richTextEditText: EditText
+        get() = views.richTextComposerEditText
+    val plainTextEditText: EditText
+        get() = views.plainTextComposerEditText
 
     var pillDisplayHandler: PillDisplayHandler? = null
 
@@ -237,14 +237,16 @@ internal class RichTextComposerLayout @JvmOverloads constructor(
         views.composerEditTextOuterBorder.background = borderShapeDrawable
 
         setupRichTextMenu()
-        views.richTextComposerEditText.mentionDisplayHandler = object : MentionDisplayHandler {
-            override fun resolveMentionDisplay(text: String, url: String): TextDisplay =
-                pillDisplayHandler?.resolveMentionDisplay(text, url) ?: TextDisplay.Plain
-
-            override fun resolveAtRoomMentionDisplay(): TextDisplay =
-                pillDisplayHandler?.resolveAtRoomMentionDisplay() ?: TextDisplay.Plain
-        }
+        views.richTextComposerEditText.updateStyle(
+                styleConfig = views.richTextComposerEditText.styleConfig,
+                mentionDisplayHandler = object : MentionDisplayHandler {
+                    override fun resolveMentionDisplay(text: String, url: String): TextDisplay =
+                            pillDisplayHandler?.resolveMentionDisplay(text, url) ?: TextDisplay.Plain
 
+                    override fun resolveAtRoomMentionDisplay(): TextDisplay =
+                            pillDisplayHandler?.resolveAtRoomMentionDisplay() ?: TextDisplay.Plain
+                }
+        )
         updateTextFieldBorder(isFullScreen)
     }