Guard first time on add to my story.

This commit is contained in:
Alex Hart
2022-03-17 15:26:47 -03:00
committed by Cody Henthorne
parent 945c308cf5
commit 7edef20f4f
7 changed files with 97 additions and 45 deletions

View File

@@ -46,7 +46,7 @@ class TextStoryPostSendFragment : Fragment(R.layout.stories_send_text_post_fragm
private val viewModel: TextStoryPostSendViewModel by viewModels(
factoryProducer = {
TextStoryPostSendViewModel.Factory(TextStoryPostSendRepository(requireContext()))
TextStoryPostSendViewModel.Factory(TextStoryPostSendRepository())
}
)
@@ -83,21 +83,19 @@ class TextStoryPostSendFragment : Fragment(R.layout.stories_send_text_post_fragm
}
shareConfirmButton.setOnClickListener {
if (viewModel.isFirstSendToAStory(contactSearchMediator.getSelectedContacts())) {
StoryDialogs.guardWithAddToYourStoryDialog(
context = requireContext(),
onAddToStory = { send() },
onEditViewers = {
viewModel.onSendCancelled()
HideStoryFromDialogFragment().show(childFragmentManager, null)
},
onCancel = {
viewModel.onSendCancelled()
}
)
} else {
send()
}
viewModel.onSending()
StoryDialogs.guardWithAddToYourStoryDialog(
contacts = contactSearchMediator.getSelectedContacts(),
context = requireContext(),
onAddToStory = { send() },
onEditViewers = {
viewModel.onSendCancelled()
HideStoryFromDialogFragment().show(childFragmentManager, null)
},
onCancel = {
viewModel.onSendCancelled()
}
)
}
disposables += viewModel.untrustedIdentities.subscribe {

View File

@@ -1,6 +1,5 @@
package org.thoughtcrime.securesms.mediasend.v2.text.send
import android.content.Context
import io.reactivex.rxjava3.core.Completable
import io.reactivex.rxjava3.core.Single
import org.signal.core.util.ThreadUtil
@@ -11,7 +10,6 @@ import org.thoughtcrime.securesms.database.ThreadDatabase
import org.thoughtcrime.securesms.database.model.StoryType
import org.thoughtcrime.securesms.database.model.databaseprotos.StoryTextPost
import org.thoughtcrime.securesms.fonts.TextFont
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.linkpreview.LinkPreview
import org.thoughtcrime.securesms.mediasend.v2.UntrustedRecords
import org.thoughtcrime.securesms.mediasend.v2.text.TextStoryPostCreationState
@@ -21,17 +19,7 @@ import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.stories.Stories
import org.thoughtcrime.securesms.util.Base64
class TextStoryPostSendRepository(context: Context) {
private val context = context.applicationContext
fun isFirstSendToStory(shareContacts: Set<ContactSearchKey>): Boolean {
if (SignalStore.storyValues().userHasAddedToAStory) {
return false
}
return shareContacts.any { it is ContactSearchKey.Story }
}
class TextStoryPostSendRepository {
fun send(contactSearchKey: Set<ContactSearchKey>, textStoryPostCreationState: TextStoryPostCreationState, linkPreview: LinkPreview?): Single<TextStoryPostSendResult> {
return UntrustedRecords

View File

@@ -27,12 +27,10 @@ class TextStoryPostSendViewModel(private val repository: TextStoryPostSendReposi
disposables.clear()
}
fun isFirstSendToAStory(contactSearchKeys: Set<ContactSearchKey>): Boolean {
fun onSending() {
store.update {
TextStoryPostSendState.SENDING
}
return repository.isFirstSendToStory(contactSearchKeys)
}
fun onSendCancelled() {