diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationItem.java b/src/org/thoughtcrime/securesms/conversation/ConversationItem.java index 21518fc16..ca157cd76 100644 --- a/src/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -307,7 +307,7 @@ public class ConversationItem extends LinearLayout int availableWidth; if (hasAudio(messageRecord)) { availableWidth = audioViewStub.get().getMeasuredWidth() + ViewUtil.getLeftMargin(audioViewStub.get()) + ViewUtil.getRightMargin(audioViewStub.get()); - } else if (hasThumbnail(messageRecord)) { + } else if (hasThumbnail(messageRecord) || hasBigImageLinkPreview(messageRecord)) { availableWidth = mediaThumbnailStub.get().getMeasuredWidth(); } else { availableWidth = bodyBubble.getMeasuredWidth() - bodyBubble.getPaddingLeft() - bodyBubble.getPaddingRight(); @@ -440,6 +440,17 @@ public class ConversationItem extends LinearLayout return messageRecord.isMms() && !((MmsMessageRecord)messageRecord).getLinkPreviews().isEmpty(); } + private boolean hasBigImageLinkPreview(MessageRecord messageRecord) { + if (!hasLinkPreview(messageRecord)) return false; + + LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0); + int minWidth = getResources().getDimensionPixelSize(R.dimen.media_bubble_min_width); + + return linkPreview.getThumbnail().isPresent() && + linkPreview.getThumbnail().get().getWidth() >= minWidth && + !StickerUrl.isValidShareLink(linkPreview.getUrl()); + } + private void setBodyText(MessageRecord messageRecord, @Nullable String searchQuery) { bodyText.setClickable(false); bodyText.setFocusable(false); @@ -500,7 +511,7 @@ public class ConversationItem extends LinearLayout //noinspection ConstantConditions LinkPreview linkPreview = ((MmsMessageRecord) messageRecord).getLinkPreviews().get(0); - if (linkPreview.getThumbnail().isPresent() && shouldPromotePreviewImage(linkPreview.getThumbnail().get(), linkPreview.getUrl())) { + if (hasBigImageLinkPreview(messageRecord)) { mediaThumbnailStub.get().setVisibility(VISIBLE); mediaThumbnailStub.get().setImageResource(glideRequests, Collections.singletonList(new ImageSlide(context, linkPreview.getThumbnail().get())), showControls, false); mediaThumbnailStub.get().setThumbnailClickListener(new LinkPreviewThumbnailClickListener()); @@ -722,11 +733,6 @@ public class ConversationItem extends LinearLayout contactPhoto.setAvatar(glideRequests, recipient, true); } - private boolean shouldPromotePreviewImage(@NonNull Attachment attachment, @NonNull String url) { - int minWidth = getResources().getDimensionPixelSize(R.dimen.media_bubble_min_width); - return attachment.getWidth() >= minWidth && !StickerUrl.isValidShareLink(url); - } - private SpannableString linkifyMessageBody(SpannableString messageBody, boolean shouldLinkifyAllLinks) { int linkPattern = Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS; boolean hasLinks = Linkify.addLinks(messageBody, shouldLinkifyAllLinks ? linkPattern : 0);