diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt index 6236f71ede..021a6124ab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationFragment.kt @@ -313,6 +313,7 @@ import org.thoughtcrime.securesms.util.fragments.requireListener import org.thoughtcrime.securesms.util.getRecordQuoteType import org.thoughtcrime.securesms.util.hasAudio import org.thoughtcrime.securesms.util.hasGiftBadge +import org.thoughtcrime.securesms.util.hasNonTextSlide import org.thoughtcrime.securesms.util.isValidReactionTarget import org.thoughtcrime.securesms.util.savedStateViewModel import org.thoughtcrime.securesms.util.viewModel @@ -1680,7 +1681,7 @@ class ConversationFragment : } private fun updateLinkPreviewState() { - if (viewModel.isPushAvailable && !attachmentManager.isAttachmentPresent && context != null) { + if (viewModel.isPushAvailable && !attachmentManager.isAttachmentPresent && context != null && inputPanel.editMessage?.hasNonTextSlide() != true) { linkPreviewViewModel.onEnabled() linkPreviewViewModel.onTextChanged(composeText.textTrimmed.toString(), composeText.selectionStart, composeText.selectionEnd) } else { @@ -3874,6 +3875,7 @@ class ConversationFragment : keyboardPagerViewModel.setOnlyPage(KeyboardPage.EMOJI) onKeyboardChanged(KeyboardPage.EMOJI) stickerViewModel.onInputTextUpdated("") + updateLinkPreviewState() } override fun onExitEditMode() { @@ -3883,6 +3885,7 @@ class ConversationFragment : keyboardPagerViewModel.setPages(previousPages!!) previousPages = null } + updateLinkPreviewState() } override fun onQuickCameraToggleClicked() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt index 06bb92a481..690068285e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MessageRecordUtil.kt @@ -23,6 +23,9 @@ fun MessageRecord.isMediaMessage(): Boolean { slideDeck.stickerSlide == null } +fun MessageRecord.hasNonTextSlide(): Boolean = + isMms && (this as MmsMessageRecord).slideDeck.slides.any { slide -> slide !is TextSlide } + fun MessageRecord.hasSticker(): Boolean = isMms && (this as MmsMessageRecord).slideDeck.stickerSlide != null