Properly hide preview URLs for notices
Notices 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. Change-Id: I245d4bf5006ffc756fa35196351decb9cdabfb8a
This commit is contained in:
parent
002edb5e36
commit
5f30336542
@ -21,6 +21,7 @@ import android.text.TextUtils
|
|||||||
import android.text.method.MovementMethod
|
import android.text.method.MovementMethod
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import androidx.core.text.PrecomputedTextCompat
|
import androidx.core.text.PrecomputedTextCompat
|
||||||
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.TextViewCompat
|
import androidx.core.widget.TextViewCompat
|
||||||
import com.airbnb.epoxy.EpoxyAttribute
|
import com.airbnb.epoxy.EpoxyAttribute
|
||||||
import com.airbnb.epoxy.EpoxyModelClass
|
import com.airbnb.epoxy.EpoxyModelClass
|
||||||
@ -67,7 +68,12 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
|
|||||||
previewUrlViewUpdater.holder = holder
|
previewUrlViewUpdater.holder = holder
|
||||||
previewUrlViewUpdater.previewUrlView = holder.previewUrlView
|
previewUrlViewUpdater.previewUrlView = holder.previewUrlView
|
||||||
previewUrlViewUpdater.imageContentRenderer = imageContentRenderer
|
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
|
holder.previewUrlView.delegate = previewUrlCallback
|
||||||
|
|
||||||
if (useBigFont) {
|
if (useBigFont) {
|
||||||
@ -125,7 +131,11 @@ abstract class MessageTextItem : AbsMessageItem<MessageTextItem.Holder>() {
|
|||||||
var imageContentRenderer: ImageContentRenderer? = null
|
var imageContentRenderer: ImageContentRenderer? = null
|
||||||
|
|
||||||
override fun onStateUpdated(state: PreviewUrlUiState) {
|
override fun onStateUpdated(state: PreviewUrlUiState) {
|
||||||
val safeImageContentRenderer = imageContentRenderer ?: return
|
val safeImageContentRenderer = imageContentRenderer
|
||||||
|
if (safeImageContentRenderer == null) {
|
||||||
|
previewUrlView?.isVisible = false
|
||||||
|
return
|
||||||
|
}
|
||||||
previewUrlView?.render(state, safeImageContentRenderer)
|
previewUrlView?.render(state, safeImageContentRenderer)
|
||||||
|
|
||||||
// Don't reserve footer space in message view, but preview view | TODO
|
// Don't reserve footer space in message view, but preview view | TODO
|
||||||
|
Loading…
x
Reference in New Issue
Block a user