From dabd1312225cde4ca0c84189371ea9dc3d8c9871 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 5 Apr 2022 12:50:35 -0400 Subject: [PATCH] Fix overlapping text with voice notes. --- .../securesms/conversation/ConversationItem.java | 15 ++++++++------- .../layout/conversation_item_footer_outgoing.xml | 1 - .../layout/conversation_item_received_audio.xml | 3 ++- .../res/layout/conversation_item_sent_audio.xml | 3 ++- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index 1f7cb8c09a..e89d2bcddf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -63,6 +63,7 @@ import com.annimon.stream.Stream; import com.google.android.exoplayer2.MediaItem; import com.google.common.collect.Sets; +import org.signal.core.util.StringUtil; import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BindableConversationItem; import org.thoughtcrime.securesms.MediaPreviewActivity; @@ -128,7 +129,6 @@ import org.thoughtcrime.securesms.util.PlaceholderURLSpan; import org.thoughtcrime.securesms.util.Projection; import org.thoughtcrime.securesms.util.ProjectionList; import org.thoughtcrime.securesms.util.SearchUtil; -import org.signal.core.util.StringUtil; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.UrlClickHandler; import org.thoughtcrime.securesms.util.Util; @@ -525,13 +525,14 @@ public final class ConversationItem extends RelativeLayout implements BindableCo int availableWidth = getAvailableMessageBubbleWidth(footer); if (activeFooter.getVisibility() != GONE && activeFooter.getMeasuredWidth() != availableWidth) { - activeFooter.getLayoutParams().width = availableWidth; + activeFooter.getLayoutParams().width = availableWidth - ViewUtil.getLeftMargin(activeFooter) - ViewUtil.getRightMargin(activeFooter); needsMeasure = true; + updatingFooter = true; } - int desiredWidth = audioViewStub.get().getMeasuredWidth() + ViewUtil.getLeftMargin(audioViewStub.get()) + ViewUtil.getRightMargin(audioViewStub.get()); - if (bodyBubble.getMeasuredWidth() != desiredWidth) { - bodyBubble.getLayoutParams().width = desiredWidth; + if (bodyBubble.getMeasuredWidth() != availableWidth) { + bodyBubble.getLayoutParams().width = availableWidth; + audioViewStub.get().getLayoutParams().width = availableWidth - ViewUtil.getLeftMargin(audioViewStub.get()) - ViewUtil.getRightMargin(audioViewStub.get()); needsMeasure = true; } } @@ -576,7 +577,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo private int getAvailableMessageBubbleWidth(@NonNull View forView) { int availableWidth; if (hasAudio(messageRecord)) { - availableWidth = audioViewStub.get().getMeasuredWidth() + ViewUtil.getLeftMargin(audioViewStub.get()) + ViewUtil.getRightMargin(audioViewStub.get()); + availableWidth = Math.min(getMaxBubbleWidth(), readDimen(R.dimen.message_audio_width)); } else if (!isViewOnceMessage(messageRecord) && (hasThumbnail(messageRecord) || hasBigImageLinkPreview(messageRecord))) { availableWidth = mediaThumbnailStub.require().getMeasuredWidth(); } else { @@ -1513,7 +1514,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo } private void setFooter(@NonNull MessageRecord current, @NonNull Optional next, @NonNull Locale locale, boolean isGroupThread, boolean hasWallpaper) { - ViewUtil.updateLayoutParams(footer, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + ViewUtil.updateLayoutParams(footer, hasAudio(current) ? LayoutParams.MATCH_PARENT : LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); ViewUtil.setTopMargin(footer, readDimen(R.dimen.message_bubble_default_footer_bottom_margin)); footer.setVisibility(GONE); diff --git a/app/src/main/res/layout/conversation_item_footer_outgoing.xml b/app/src/main/res/layout/conversation_item_footer_outgoing.xml index cd3d556cbd..590f894264 100644 --- a/app/src/main/res/layout/conversation_item_footer_outgoing.xml +++ b/app/src/main/res/layout/conversation_item_footer_outgoing.xml @@ -14,7 +14,6 @@ style="@style/Signal.Text.Caption.MessageSent" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="56dp" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/conversation_item_received_audio.xml b/app/src/main/res/layout/conversation_item_received_audio.xml index a80753fd0a..71cddad7f4 100644 --- a/app/src/main/res/layout/conversation_item_received_audio.xml +++ b/app/src/main/res/layout/conversation_item_received_audio.xml @@ -3,8 +3,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/audio_view" - android:layout_width="@dimen/message_audio_width" + android:layout_width="match_parent" android:layout_height="wrap_content" + android:maxWidth="@dimen/message_audio_width" android:visibility="gone" app:backgroundTintColor="@color/white" app:foregroundTintColor="@color/grey_500" diff --git a/app/src/main/res/layout/conversation_item_sent_audio.xml b/app/src/main/res/layout/conversation_item_sent_audio.xml index 495a6c87c3..c324aa8cb8 100644 --- a/app/src/main/res/layout/conversation_item_sent_audio.xml +++ b/app/src/main/res/layout/conversation_item_sent_audio.xml @@ -3,8 +3,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/audio_view" - android:layout_width="@dimen/message_audio_width" + android:layout_width="match_parent" android:layout_height="wrap_content" + android:maxWidth="@dimen/message_audio_width" android:visibility="gone" app:backgroundTintColor="@color/blue_500" app:foregroundTintColor="@color/white"