1
0
mirror of https://github.com/KokaKiwi/BarInsta synced 2024-11-26 08:37:29 +00:00

Fix weird layout behavior due to async binding

This commit is contained in:
Ammar Githam 2021-01-17 23:15:03 +09:00
parent 52d2baa128
commit 6aacf1945f
3 changed files with 20 additions and 7 deletions

View File

@ -78,6 +78,11 @@ public class DirectItemActionLogViewHolder extends DirectItemViewHolder {
return false; return false;
} }
@Override
protected boolean showUserDetailsInGroup() {
return false;
}
@Override @Override
protected boolean showMessageInfo() { protected boolean showMessageInfo() {
return false; return false;

View File

@ -68,6 +68,11 @@ public class DirectItemVideoCallEventViewHolder extends DirectItemViewHolder {
return false; return false;
} }
@Override
protected boolean showUserDetailsInGroup() {
return false;
}
@Override @Override
protected boolean showMessageInfo() { protected boolean showMessageInfo() {
return false; return false;

View File

@ -112,12 +112,13 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
public void bind(final int position, final DirectItem item) { public void bind(final int position, final DirectItem item) {
this.item = item; this.item = item;
messageDirection = isSelf(item) ? MessageDirection.OUTGOING : MessageDirection.INCOMING; messageDirection = isSelf(item) ? MessageDirection.OUTGOING : MessageDirection.INCOMING;
itemView.post(() -> bindBase(item, messageDirection, position)); // Asynchronous binding causes some weird behaviour
itemView.post(() -> bindItem(item, messageDirection)); // itemView.post(() -> bindBase(item, messageDirection, position));
itemView.post(() -> setupLongClickListener(position, messageDirection)); // itemView.post(() -> bindItem(item, messageDirection));
// bindBase(item, messageDirection); // itemView.post(() -> setupLongClickListener(position, messageDirection));
// bindItem(item, messageDirection); bindBase(item, messageDirection, position);
// setupLongClickListener(position); bindItem(item, messageDirection);
setupLongClickListener(position, messageDirection);
} }
private void bindBase(final DirectItem item, final MessageDirection messageDirection, final int position) { private void bindBase(final DirectItem item, final MessageDirection messageDirection, final int position) {
@ -134,7 +135,9 @@ public abstract class DirectItemViewHolder extends RecyclerView.ViewHolder imple
if (itemType == DirectItemType.TEXT || itemType == DirectItemType.LINK) { if (itemType == DirectItemType.TEXT || itemType == DirectItemType.LINK) {
binding.messageInfo.setPadding(0, 0, dmRadius, dmRadiusSmall); binding.messageInfo.setPadding(0, 0, dmRadius, dmRadiusSmall);
} else { } else {
binding.messageInfo.setPadding(0, 0, messageInfoPaddingSmall, dmRadiusSmall); if (showMessageInfo()) {
binding.messageInfo.setPadding(0, 0, messageInfoPaddingSmall, dmRadiusSmall);
}
} }
setupReply(item, messageDirection); setupReply(item, messageDirection);
setReactions(item, position); setReactions(item, position);