From d4cabce876cfc865c69ff876471d75847fa0ec9d Mon Sep 17 00:00:00 2001 From: Lucio Maciel Date: Fri, 13 Aug 2021 18:39:06 -0300 Subject: [PATCH] Fix crash when getLayout() is null. --- .../securesms/components/emoji/EmojiTextView.java | 4 ++-- .../securesms/conversation/ConversationItem.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) 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 7990127c5..a0d8757cd 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 @@ -153,7 +153,7 @@ public class EmojiTextView extends AppCompatTextView { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); CharSequence text = getText(); - if (!measureLastLine || text == null || text.length() == 0) { + if (getLayout() == null || !measureLastLine || text == null || text.length() == 0) { lastLineWidth = -1; } else { Layout layout = getLayout(); @@ -175,7 +175,7 @@ public class EmojiTextView extends AppCompatTextView { } public boolean isSingleLine() { - return getLayout().getLineCount() == 1; + return getLayout() != null && getLayout().getLineCount() == 1; } public void setOverflowText(@Nullable CharSequence overflowText) { 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 f71a8e1df..d1953abd2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -387,7 +387,12 @@ public final class ConversationItem extends RelativeLayout implements BindableCo } } - if (!updatingFooter && !isCaptionlessMms(messageRecord) && !isViewOnceMessage(messageRecord) && isFooterVisible(messageRecord, nextMessageRecord, groupThread)) { + if (!updatingFooter && + !isCaptionlessMms(messageRecord) && + !isViewOnceMessage(messageRecord) && + isFooterVisible(messageRecord, nextMessageRecord, groupThread) && + bodyText.getLastLineWidth() > 0) + { int footerWidth = footer.getMeasuredWidth(); int availableWidth = getAvailableMessageBubbleWidth(bodyText); if (bodyText.isSingleLine()) {