Fix story link previews for broken urls.
This commit is contained in:
parent
50a7c2ba5c
commit
1e491d0b51
1 changed files with 16 additions and 1 deletions
|
@ -17,8 +17,10 @@ import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
||||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs
|
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs
|
||||||
import org.thoughtcrime.securesms.databinding.StoriesTextPostCreationFragmentBinding
|
import org.thoughtcrime.securesms.databinding.StoriesTextPostCreationFragmentBinding
|
||||||
|
import org.thoughtcrime.securesms.linkpreview.LinkPreview
|
||||||
import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository
|
import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository
|
||||||
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel
|
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel
|
||||||
|
import org.thoughtcrime.securesms.linkpreview.LinkPreviewViewModel.LinkPreviewState
|
||||||
import org.thoughtcrime.securesms.mediasend.CameraDisplay
|
import org.thoughtcrime.securesms.mediasend.CameraDisplay
|
||||||
import org.thoughtcrime.securesms.mediasend.v2.HudCommand
|
import org.thoughtcrime.securesms.mediasend.v2.HudCommand
|
||||||
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel
|
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.LifecycleDisposable
|
||||||
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil
|
import org.thoughtcrime.securesms.util.livedata.LiveDataUtil
|
||||||
import org.thoughtcrime.securesms.util.visible
|
import org.thoughtcrime.securesms.util.visible
|
||||||
|
import java.util.Optional
|
||||||
|
|
||||||
class TextStoryPostCreationFragment : Fragment(R.layout.stories_text_post_creation_fragment), TextStoryPostTextEntryFragment.Callback, SafetyNumberBottomSheet.Callbacks {
|
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<ContactSearchKey>) {
|
private fun performSend(contacts: Set<ContactSearchKey>) {
|
||||||
lifecycleDisposable += viewModel.send(
|
lifecycleDisposable += viewModel.send(
|
||||||
contacts = contacts,
|
contacts = contacts,
|
||||||
linkPreviewViewModel.linkPreviewState.value?.linkPreview?.orElse(null)
|
getLinkPreview()
|
||||||
).observeOn(AndroidSchedulers.mainThread()).subscribe { result ->
|
).observeOn(AndroidSchedulers.mainThread()).subscribe { result ->
|
||||||
when (result) {
|
when (result) {
|
||||||
TextStoryPostSendResult.Success -> {
|
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<ContactSearchKey.RecipientSearchKey>) {
|
override fun sendAnywayAfterSafetyNumberChangedInBottomSheet(destinations: List<ContactSearchKey.RecipientSearchKey>) {
|
||||||
performSend(destinations.toSet())
|
performSend(destinations.toSet())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue