From d5753bc306caca5fe04b93deb605918b6c72ddbf Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 25 Jul 2018 01:16:48 -0400 Subject: [PATCH] Fix spacing issue between short clustered group chats. For short messages in a cluster, the contact photo was sometimes taller than the actual bubble, leading to extra weird space. So instead we use a container to hold the width of the cell, and set the avatar to be GONE instead of INVISIBLE. --- res/layout/conversation_item_received.xml | 27 ++++++++++++------- .../securesms/ConversationItem.java | 12 ++++++--- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/res/layout/conversation_item_received.xml b/res/layout/conversation_item_received.xml index 7d7377ab78..950b33b615 100644 --- a/res/layout/conversation_item_received.xml +++ b/res/layout/conversation_item_received.xml @@ -25,17 +25,24 @@ android:clipToPadding="false" android:clipChildren="false"> - + android:layout_alignParentBottom="true"> + + + + (findViewById(R.id.image_view_stub)); this.audioViewStub = new Stub<>(findViewById(R.id.audio_view_stub)); @@ -702,6 +704,8 @@ public class ConversationItem extends LinearLayout private void setAuthor(@NonNull MessageRecord current, @NonNull Optional previous, @NonNull Optional next, boolean isGroupThread) { if (isGroupThread && !current.isOutgoing()) { + contactPhotoHolder.setVisibility(VISIBLE); + if (!previous.isPresent() || previous.get().isUpdate() || !current.getRecipient().getAddress().equals(previous.get().getRecipient().getAddress()) || !DateUtils.isSameDay(previous.get().getTimestamp(), current.getTimestamp())) { @@ -713,13 +717,13 @@ public class ConversationItem extends LinearLayout if (!next.isPresent() || next.get().isUpdate() || !current.getRecipient().getAddress().equals(next.get().getRecipient().getAddress())) { contactPhoto.setVisibility(VISIBLE); } else { - contactPhoto.setVisibility(INVISIBLE); + contactPhoto.setVisibility(GONE); } } else { groupSenderHolder.setVisibility(GONE); - if (contactPhoto != null) { - contactPhoto.setVisibility(GONE); + if (contactPhotoHolder != null) { + contactPhotoHolder.setVisibility(GONE); } } }