diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemLayout.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemLayout.kt index 2061d80869..abf7992140 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemLayout.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemLayout.kt @@ -35,7 +35,11 @@ class V2ConversationItemLayout @JvmOverloads constructor( onMeasureListeners.forEach { it.onPreMeasure() } super.onMeasure(widthMeasureSpec, heightMeasureSpec) - val remeasure = onMeasureListeners.map { it.onPostMeasure() }.any { it } + var remeasure = false + onMeasureListeners.forEach { + remeasure = it.onPostMeasure() || remeasure + } + if (remeasure) { super.onMeasure(widthMeasureSpec, heightMeasureSpec) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt index 56da64da16..27a3c3fc15 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/items/V2ConversationItemTextOnlyViewHolder.kt @@ -112,17 +112,17 @@ open class V2ConversationItemTextOnlyViewHolder>( override fun onPreMeasure() = Unit override fun onPostMeasure(): Boolean { - val wrapperHeight = binding.bodyWrapper.measuredHeight - val yTranslation = (wrapperHeight - 38.dp) / 2f - binding.reply.translationY = -yTranslation - return false } } init { binding.root.addOnMeasureListener(footerDelegate) - binding.root.addOnMeasureListener(replyDelegate) + binding.bodyWrapper.addOnLayoutChangeListener { _, _, top, _, bottom, _, _, _, _ -> + val wrapperHeight = bottom - top + val yTranslation = (wrapperHeight - 38.dp) / 2f + binding.reply.translationY = -yTranslation + } binding.root.onDispatchTouchEventListener = dispatchTouchEventListener