Fix link preview overriding edit message with media bug.

This commit is contained in:
Cody Henthorne 2023-10-04 16:41:25 -04:00 committed by Nicholas Tinsley
parent fd07ab10ee
commit 6be1413d7d
2 changed files with 7 additions and 1 deletions

View file

@ -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() {

View file

@ -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