Skip to content

Commit 63ef40f

Browse files
authored
Fix issue with timeline message view reuse while rich text editor is enabled (#8688)
1 parent fd5530a commit 63ef40f

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

changelog.d/8688.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix issue with timeline message view reuse while rich text editor is enabled

vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageTextItem.kt

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,13 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
8585
}
8686
holder.previewUrlView.delegate = previewUrlCallback
8787
holder.previewUrlView.renderMessageLayout(attributes.informationData.messageLayout)
88-
89-
val messageView: AppCompatTextView = if (useRichTextEditorStyle) holder.richMessageView else holder.plainMessageView
88+
if (useRichTextEditorStyle) {
89+
holder.plainMessageView?.isVisible = false
90+
} else {
91+
holder.richMessageView?.isVisible = false
92+
}
93+
val messageView: AppCompatTextView = if (useRichTextEditorStyle) holder.requireRichMessageView() else holder.requirePlainMessageView()
94+
messageView.isVisible = true
9095
if (useBigFont) {
9196
messageView.textSize = 44F
9297
} else {
@@ -133,11 +138,21 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
133138
val previewUrlView by bind<PreviewUrlView>(R.id.messageUrlPreview)
134139
private val richMessageStub by bind<ViewStub>(R.id.richMessageTextViewStub)
135140
private val plainMessageStub by bind<ViewStub>(R.id.plainMessageTextViewStub)
136-
val richMessageView: AppCompatTextView by lazy {
137-
richMessageStub.inflate().findViewById(R.id.messageTextView)
141+
var richMessageView: AppCompatTextView? = null
142+
private set
143+
var plainMessageView: AppCompatTextView? = null
144+
private set
145+
146+
fun requireRichMessageView(): AppCompatTextView {
147+
val view = richMessageView ?: richMessageStub.inflate().findViewById(R.id.messageTextView)
148+
richMessageView = view
149+
return view
138150
}
139-
val plainMessageView: AppCompatTextView by lazy {
140-
plainMessageStub.inflate().findViewById(R.id.messageTextView)
151+
152+
fun requirePlainMessageView(): AppCompatTextView {
153+
val view = plainMessageView ?: plainMessageStub.inflate().findViewById(R.id.messageTextView)
154+
plainMessageView = view
155+
return view
141156
}
142157
}
143158

0 commit comments

Comments
 (0)