From 6be1413d7db5e437b9292f2c6a915f337eb4452e Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 4 Oct 2023 16:41:25 -0400 Subject: [PATCH] Fix link preview overriding edit message with media bug. --- .../securesms/conversation/v2/ConversationFragment.kt | 5 ++++- .../org/thoughtcrime/securesms/util/MessageRecordUtil.kt | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) 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