mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-02-16 12:00:03 +03:00
Properly hide preview URLs for messages that don't support previews
Notices and formatted messages don't have imageContentRenderer and previewUrlRetriever set. Accordingly, when recycling messages that previously had an URL preview, we do not want to keep that preview, but actually hide it, instead of returning early (without rendering any update).
This commit is contained in:
parent
2b780a8b76
commit
9fcf7263b5
2 changed files with 13 additions and 3 deletions
|
@ -8,7 +8,7 @@ Improvements 🙌:
|
|||
-
|
||||
|
||||
Bugfix 🐛:
|
||||
-
|
||||
- Url previews sometimes attached to wrong message (#2561)
|
||||
|
||||
Translations 🗣:
|
||||
-
|
||||
|
|
|
@ -19,6 +19,7 @@ package im.vector.app.features.home.room.detail.timeline.item
|
|||
import android.text.method.MovementMethod
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import androidx.core.text.PrecomputedTextCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.TextViewCompat
|
||||
import com.airbnb.epoxy.EpoxyAttribute
|
||||
import com.airbnb.epoxy.EpoxyModelClass
|
||||
|
@ -60,7 +61,12 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
|
|||
// Preview URL
|
||||
previewUrlViewUpdater.previewUrlView = holder.previewUrlView
|
||||
previewUrlViewUpdater.imageContentRenderer = imageContentRenderer
|
||||
previewUrlRetriever?.addListener(attributes.informationData.eventId, previewUrlViewUpdater)
|
||||
val safePreviewUrlRetriever = previewUrlRetriever
|
||||
if (safePreviewUrlRetriever == null) {
|
||||
holder.previewUrlView.isVisible = false
|
||||
} else {
|
||||
safePreviewUrlRetriever.addListener(attributes.informationData.eventId, previewUrlViewUpdater)
|
||||
}
|
||||
holder.previewUrlView.delegate = previewUrlCallback
|
||||
|
||||
if (useBigFont) {
|
||||
|
@ -106,7 +112,11 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
|
|||
var imageContentRenderer: ImageContentRenderer? = null
|
||||
|
||||
override fun onStateUpdated(state: PreviewUrlUiState) {
|
||||
val safeImageContentRenderer = imageContentRenderer ?: return
|
||||
val safeImageContentRenderer = imageContentRenderer
|
||||
if (safeImageContentRenderer == null) {
|
||||
previewUrlView?.isVisible = false
|
||||
return
|
||||
}
|
||||
previewUrlView?.render(state, safeImageContentRenderer)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue