Split reaction view updates to separate width from adding views.

This commit is contained in:
Alex Hart
2023-09-05 15:30:19 -03:00
committed by Nicholas Tinsley
parent f37568b050
commit c45e79c588
3 changed files with 28 additions and 19 deletions

View File

@@ -1676,7 +1676,8 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
}
private void setReactionsWithWidth(@NonNull MessageRecord current, int width) {
reactionsView.setReactions(current.getReactions(), width);
reactionsView.setReactions(current.getReactions());
reactionsView.setBubbleWidth(width);
reactionsView.setOnClickListener(v -> {
if (eventListener == null) return;

View File

@@ -537,7 +537,7 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
binding.conversationItemReactions.clear()
binding.root.removeOnMeasureListener(reactionMeasureListener)
} else {
reactionMeasureListener.onPostMeasure()
binding.conversationItemReactions.setReactions(conversationMessage.messageRecord.reactions)
binding.root.addOnMeasureListener(reactionMeasureListener)
}
}
@@ -655,11 +655,7 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
override fun onPreMeasure() = Unit
override fun onPostMeasure(): Boolean {
if (binding.conversationItemReactions.setReactions(conversationMessage.messageRecord.reactions, binding.conversationItemBodyWrapper.width)) {
binding.conversationItemReactions.post(binding.conversationItemReactions::requestLayout)
}
return false
return binding.conversationItemReactions.setBubbleWidth(binding.conversationItemBodyWrapper.measuredWidth)
}
}