From 1e491d0b51cc3301290dfabb6dc78f471c7a8fa4 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 11 Oct 2022 12:34:22 -0300 Subject: [PATCH] Fix story link previews for broken urls. --- .../v2/text/TextStoryPostCreationFragment.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationFragment.kt index 28d8237ea..8a51b7f23 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/text/TextStoryPostCreationFragment.kt @@ -17,8 +17,10 @@ import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs import org.thoughtcrime.securesms.databinding.StoriesTextPostCreationFragmentBinding +import org.thoughtcrime.securesms.linkpreview.LinkPreview import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel +import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel.LinkPreviewState import org.thoughtcrime.securesms.mediasend.CameraDisplay import org.thoughtcrime.securesms.mediasend.v2.HudCommand import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel @@ -30,6 +32,7 @@ import org.thoughtcrime.securesms.stories.Stories import org.thoughtcrime.securesms.util.LifecycleDisposable import org.thoughtcrime.securesms.util.livedata.LiveDataUtil import org.thoughtcrime.securesms.util.visible +import java.util.Optional class TextStoryPostCreationFragment : Fragment(R.layout.stories_text_post_creation_fragment), TextStoryPostTextEntryFragment.Callback, SafetyNumberBottomSheet.Callbacks { @@ -212,7 +215,7 @@ class TextStoryPostCreationFragment : Fragment(R.layout.stories_text_post_creati private fun performSend(contacts: Set) { lifecycleDisposable += viewModel.send( contacts = contacts, - linkPreviewViewModel.linkPreviewState.value?.linkPreview?.orElse(null) + getLinkPreview() ).observeOn(AndroidSchedulers.mainThread()).subscribe { result -> when (result) { TextStoryPostSendResult.Success -> { @@ -235,6 +238,18 @@ class TextStoryPostCreationFragment : Fragment(R.layout.stories_text_post_creati } } + private fun getLinkPreview(): LinkPreview? { + val linkPreviewState: LinkPreviewState = linkPreviewViewModel.linkPreviewState.value ?: return null + + return if (linkPreviewState.linkPreview.isPresent) { + linkPreviewState.linkPreview.get() + } else if (!linkPreviewState.activeUrlForError.isNullOrEmpty()) { + LinkPreview(linkPreviewState.activeUrlForError!!, "", "", 0L, Optional.empty()) + } else { + null + } + } + override fun sendAnywayAfterSafetyNumberChangedInBottomSheet(destinations: List) { performSend(destinations.toSet()) }