diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java index 9f926023a7..051701a11a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java @@ -149,7 +149,7 @@ public class EmojiTextView extends AppCompatTextView { // Android fails to ellipsize spannable strings. (https://issuetracker.google.com/issues/36991688) // We ellipsize them ourselves by manually truncating the appropriate section. - if (getText() != null && getText().length() > 0 && getEllipsize() == TextUtils.TruncateAt.END) { + if (getText() != null && getText().length() > 0 && isEllipsizedAtEnd()) { if (maxLength > 0) { ellipsizeAnyTextForMaxLength(); } else if (getMaxLines() > 0) { @@ -162,6 +162,17 @@ public class EmojiTextView extends AppCompatTextView { } } + /** + * Used to determine whether to apply custom ellipsizing logic without necessarily having the + * ellipsize property set. This allows us to work around implementations of Layout which apply an + * ellipsis even when maxLines is not set. + */ + private boolean isEllipsizedAtEnd() { + return getEllipsize() == TextUtils.TruncateAt.END || + (getMaxLines() > 0 && getMaxLines() < Integer.MAX_VALUE) || + maxLength > 0; + } + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { widthMeasureSpec = applyWidthMeasureRoundingFix(widthMeasureSpec); diff --git a/app/src/main/res/layout/conversation_item_received_multimedia.xml b/app/src/main/res/layout/conversation_item_received_multimedia.xml index c0ce48aab1..bbc40a47d0 100644 --- a/app/src/main/res/layout/conversation_item_received_multimedia.xml +++ b/app/src/main/res/layout/conversation_item_received_multimedia.xml @@ -183,7 +183,6 @@ android:layout_marginTop="@dimen/message_bubble_top_padding" android:layout_marginEnd="@dimen/message_bubble_horizontal_padding" android:layout_marginBottom="@dimen/message_bubble_bottom_padding" - android:ellipsize="end" android:textColor="@color/signal_text_primary" android:textColorLink="@color/signal_text_primary" app:emoji_maxLength="1000" diff --git a/app/src/main/res/layout/conversation_item_received_text_only.xml b/app/src/main/res/layout/conversation_item_received_text_only.xml index 906f505784..a52b9be45b 100644 --- a/app/src/main/res/layout/conversation_item_received_text_only.xml +++ b/app/src/main/res/layout/conversation_item_received_text_only.xml @@ -113,7 +113,6 @@ android:layout_marginTop="@dimen/message_bubble_top_padding" android:layout_marginEnd="@dimen/message_bubble_horizontal_padding" android:layout_marginBottom="@dimen/message_bubble_collapsed_footer_padding" - android:ellipsize="end" android:textColor="@color/signal_text_primary" android:textColorLink="@color/signal_text_primary" app:emoji_maxLength="1000" diff --git a/app/src/main/res/layout/conversation_item_sent_multimedia.xml b/app/src/main/res/layout/conversation_item_sent_multimedia.xml index be39ba70f1..3ad7ae845a 100644 --- a/app/src/main/res/layout/conversation_item_sent_multimedia.xml +++ b/app/src/main/res/layout/conversation_item_sent_multimedia.xml @@ -124,7 +124,6 @@ android:layout_marginTop="@dimen/message_bubble_top_padding" android:layout_marginEnd="@dimen/message_bubble_horizontal_padding" android:layout_marginBottom="@dimen/message_bubble_bottom_padding" - android:ellipsize="end" android:textColor="@color/conversation_item_sent_text_primary_color" android:textColorLink="@color/conversation_item_sent_text_primary_color" app:emoji_maxLength="1000" diff --git a/app/src/main/res/layout/conversation_item_sent_text_only.xml b/app/src/main/res/layout/conversation_item_sent_text_only.xml index 1de64a750b..6b7d3d1ae9 100644 --- a/app/src/main/res/layout/conversation_item_sent_text_only.xml +++ b/app/src/main/res/layout/conversation_item_sent_text_only.xml @@ -55,7 +55,6 @@ android:layout_marginTop="@dimen/message_bubble_top_padding" android:layout_marginEnd="@dimen/message_bubble_horizontal_padding" android:layout_marginBottom="@dimen/message_bubble_collapsed_footer_padding" - android:ellipsize="end" android:textColor="@color/conversation_item_sent_text_primary_color" android:textColorLink="@color/conversation_item_sent_text_primary_color" app:emoji_maxLength="1000"