Rename more in-app-payment classes.
This commit is contained in:
parent
77d3116431
commit
4cfdfab31e
15 changed files with 125 additions and 125 deletions
|
@ -17,8 +17,8 @@ import androidx.navigation.compose.rememberNavController
|
|||
import androidx.navigation.fragment.findNavController
|
||||
import io.reactivex.rxjava3.processors.PublishProcessor
|
||||
import org.signal.donations.InAppPaymentType
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.Nav
|
||||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
|
@ -28,7 +28,7 @@ import org.thoughtcrime.securesms.util.viewModel
|
|||
/**
|
||||
* Handles the selection, payment, and changing of a user's backup tier.
|
||||
*/
|
||||
class MessageBackupsFlowFragment : ComposeFragment(), DonationCheckoutDelegate.Callback {
|
||||
class MessageBackupsFlowFragment : ComposeFragment(), InAppPaymentCheckoutDelegate.Callback {
|
||||
|
||||
private val viewModel: MessageBackupsFlowViewModel by viewModel { MessageBackupsFlowViewModel() }
|
||||
|
||||
|
@ -41,7 +41,7 @@ class MessageBackupsFlowFragment : ComposeFragment(), DonationCheckoutDelegate.C
|
|||
val navController = rememberNavController()
|
||||
|
||||
val checkoutDelegate = remember {
|
||||
DonationCheckoutDelegate(this, this, inAppPaymentIdProcessor)
|
||||
InAppPaymentCheckoutDelegate(this, this, inAppPaymentIdProcessor)
|
||||
}
|
||||
|
||||
LaunchedEffect(state.inAppPayment?.id) {
|
||||
|
@ -184,7 +184,7 @@ class MessageBackupsFlowFragment : ComposeFragment(), DonationCheckoutDelegate.C
|
|||
private fun cancelSubscription() {
|
||||
findNavController().safeNavigate(
|
||||
MessageBackupsFlowFragmentDirections.actionDonateToSignalFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.CANCEL_SUBSCRIPTION,
|
||||
InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION,
|
||||
null,
|
||||
InAppPaymentType.RECURRING_BACKUP
|
||||
)
|
||||
|
@ -194,7 +194,7 @@ class MessageBackupsFlowFragment : ComposeFragment(), DonationCheckoutDelegate.C
|
|||
override fun navigateToStripePaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
MessageBackupsFlowFragmentDirections.actionDonateToSignalFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
@ -204,7 +204,7 @@ class MessageBackupsFlowFragment : ComposeFragment(), DonationCheckoutDelegate.C
|
|||
override fun navigateToPayPalPaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
MessageBackupsFlowFragmentDirections.actionDonateToSignalFragmentToPaypalPaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -26,8 +26,8 @@ import org.thoughtcrime.securesms.components.emoji.MediaKeyboard
|
|||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||
import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment
|
||||
import org.thoughtcrime.securesms.components.settings.DSLSettingsText
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.gateway.GatewaySelectorBottomSheet
|
||||
import org.thoughtcrime.securesms.components.settings.configure
|
||||
import org.thoughtcrime.securesms.components.settings.conversation.preferences.RecipientPreference
|
||||
|
@ -56,7 +56,7 @@ class GiftFlowConfirmationFragment :
|
|||
EmojiKeyboardPageFragment.Callback,
|
||||
EmojiEventListener,
|
||||
EmojiSearchFragment.Callback,
|
||||
DonationCheckoutDelegate.Callback {
|
||||
InAppPaymentCheckoutDelegate.Callback {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(GiftFlowConfirmationFragment::class.java)
|
||||
|
@ -85,7 +85,7 @@ class GiftFlowConfirmationFragment :
|
|||
RecipientPreference.register(adapter)
|
||||
GiftRowItem.register(adapter)
|
||||
|
||||
val checkoutDelegate = DonationCheckoutDelegate(this, this, viewModel.state.filter { it.inAppPaymentId != null }.map { it.inAppPaymentId!! })
|
||||
val checkoutDelegate = InAppPaymentCheckoutDelegate(this, this, viewModel.state.filter { it.inAppPaymentId != null }.map { it.inAppPaymentId!! })
|
||||
|
||||
keyboardPagerViewModel.setOnlyPage(KeyboardPage.EMOJI)
|
||||
|
||||
|
@ -265,7 +265,7 @@ class GiftFlowConfirmationFragment :
|
|||
override fun navigateToStripePaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
GiftFlowConfirmationFragmentDirections.actionGiftFlowConfirmationFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
@ -275,7 +275,7 @@ class GiftFlowConfirmationFragment :
|
|||
override fun navigateToPayPalPaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
GiftFlowConfirmationFragmentDirections.actionGiftFlowConfirmationFragmentToPaypalPaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -61,7 +61,7 @@ class DonateToSignalFragment :
|
|||
layoutId = R.layout.donate_to_signal_fragment
|
||||
),
|
||||
ThanksForYourSupportBottomSheetDialogFragment.Callback,
|
||||
DonationCheckoutDelegate.Callback {
|
||||
InAppPaymentCheckoutDelegate.Callback {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(DonateToSignalFragment::class.java)
|
||||
|
@ -118,7 +118,7 @@ class DonateToSignalFragment :
|
|||
}
|
||||
|
||||
override fun bindAdapter(adapter: MappingAdapter) {
|
||||
val checkoutDelegate = DonationCheckoutDelegate(this, this, viewModel.inAppPaymentId)
|
||||
val checkoutDelegate = InAppPaymentCheckoutDelegate(this, this, viewModel.inAppPaymentId)
|
||||
|
||||
val recyclerView = this.recyclerView!!
|
||||
recyclerView.overScrollMode = RecyclerView.OVER_SCROLL_IF_CONTENT_SCROLLS
|
||||
|
@ -172,7 +172,7 @@ class DonateToSignalFragment :
|
|||
|
||||
is DonateToSignalAction.CancelSubscription -> {
|
||||
DonateToSignalFragmentDirections.actionDonateToSignalFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.CANCEL_SUBSCRIPTION,
|
||||
InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION,
|
||||
null,
|
||||
InAppPaymentType.RECURRING_DONATION
|
||||
)
|
||||
|
@ -181,13 +181,13 @@ class DonateToSignalFragment :
|
|||
is DonateToSignalAction.UpdateSubscription -> {
|
||||
if (action.inAppPayment.data.paymentMethodType == InAppPaymentData.PaymentMethodType.PAYPAL) {
|
||||
DonateToSignalFragmentDirections.actionDonateToSignalFragmentToPaypalPaymentInProgressFragment(
|
||||
DonationProcessorAction.UPDATE_SUBSCRIPTION,
|
||||
InAppPaymentProcessorAction.UPDATE_SUBSCRIPTION,
|
||||
action.inAppPayment,
|
||||
action.inAppPayment.type
|
||||
)
|
||||
} else {
|
||||
DonateToSignalFragmentDirections.actionDonateToSignalFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.UPDATE_SUBSCRIPTION,
|
||||
InAppPaymentProcessorAction.UPDATE_SUBSCRIPTION,
|
||||
action.inAppPayment,
|
||||
action.inAppPayment.type
|
||||
)
|
||||
|
@ -473,7 +473,7 @@ class DonateToSignalFragment :
|
|||
override fun navigateToStripePaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
DonateToSignalFragmentDirections.actionDonateToSignalFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
@ -483,7 +483,7 @@ class DonateToSignalFragment :
|
|||
override fun navigateToPayPalPaymentInProgress(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
findNavController().safeNavigate(
|
||||
DonateToSignalFragmentDirections.actionDonateToSignalFragmentToPaypalPaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
inAppPayment,
|
||||
inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -43,14 +43,14 @@ import org.thoughtcrime.securesms.util.fragments.requireListener
|
|||
/**
|
||||
* Abstracts out some common UI-level interactions between gift flow and normal donate flow.
|
||||
*/
|
||||
class DonationCheckoutDelegate(
|
||||
class InAppPaymentCheckoutDelegate(
|
||||
private val fragment: Fragment,
|
||||
private val callback: Callback,
|
||||
inAppPaymentIdSource: Flowable<InAppPaymentTable.InAppPaymentId>
|
||||
) : DefaultLifecycleObserver {
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(DonationCheckoutDelegate::class.java)
|
||||
private val TAG = Log.tag(InAppPaymentCheckoutDelegate::class.java)
|
||||
}
|
||||
|
||||
private val inAppPaymentComponent: InAppPaymentComponent by lazy { fragment.requireListener() }
|
||||
|
@ -74,17 +74,17 @@ class DonationCheckoutDelegate(
|
|||
registerGooglePayCallback()
|
||||
|
||||
fragment.setFragmentResultListener(StripePaymentInProgressFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
handleDonationProcessorActionResult(result)
|
||||
}
|
||||
|
||||
fragment.setFragmentResultListener(CreditCardFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
handleDonationProcessorActionResult(result)
|
||||
}
|
||||
|
||||
fragment.setFragmentResultListener(BankTransferRequestKeys.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
handleDonationProcessorActionResult(result)
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ class DonationCheckoutDelegate(
|
|||
}
|
||||
|
||||
fragment.setFragmentResultListener(PayPalPaymentInProgressFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(PayPalPaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(PayPalPaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
handleDonationProcessorActionResult(result)
|
||||
}
|
||||
}
|
||||
|
@ -114,25 +114,25 @@ class DonationCheckoutDelegate(
|
|||
}
|
||||
}
|
||||
|
||||
private fun handleDonationProcessorActionResult(result: DonationProcessorActionResult) {
|
||||
private fun handleDonationProcessorActionResult(result: InAppPaymentProcessorActionResult) {
|
||||
when (result.status) {
|
||||
DonationProcessorActionResult.Status.SUCCESS -> handleSuccessfulDonationProcessorActionResult(result)
|
||||
DonationProcessorActionResult.Status.FAILURE -> handleFailedDonationProcessorActionResult(result)
|
||||
InAppPaymentProcessorActionResult.Status.SUCCESS -> handleSuccessfulDonationProcessorActionResult(result)
|
||||
InAppPaymentProcessorActionResult.Status.FAILURE -> handleFailedDonationProcessorActionResult(result)
|
||||
}
|
||||
|
||||
callback.onProcessorActionProcessed()
|
||||
}
|
||||
|
||||
private fun handleSuccessfulDonationProcessorActionResult(result: DonationProcessorActionResult) {
|
||||
if (result.action == DonationProcessorAction.CANCEL_SUBSCRIPTION) {
|
||||
private fun handleSuccessfulDonationProcessorActionResult(result: InAppPaymentProcessorActionResult) {
|
||||
if (result.action == InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION) {
|
||||
callback.onSubscriptionCancelled(result.inAppPaymentType)
|
||||
} else {
|
||||
callback.onPaymentComplete(result.inAppPayment!!)
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleFailedDonationProcessorActionResult(result: DonationProcessorActionResult) {
|
||||
if (result.action == DonationProcessorAction.CANCEL_SUBSCRIPTION) {
|
||||
private fun handleFailedDonationProcessorActionResult(result: InAppPaymentProcessorActionResult) {
|
||||
if (result.action == InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION) {
|
||||
MaterialAlertDialogBuilder(fragment.requireContext())
|
||||
.setTitle(R.string.DonationsErrors__failed_to_cancel_subscription)
|
||||
.setMessage(R.string.DonationsErrors__subscription_cancellation_requires_an_internet_connection)
|
|
@ -4,8 +4,8 @@ import android.os.Parcelable
|
|||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Parcelize
|
||||
enum class DonationProcessorAction : Parcelable {
|
||||
PROCESS_NEW_DONATION,
|
||||
enum class InAppPaymentProcessorAction : Parcelable {
|
||||
PROCESS_NEW_IN_APP_PAYMENT,
|
||||
UPDATE_SUBSCRIPTION,
|
||||
CANCEL_SUBSCRIPTION
|
||||
}
|
|
@ -6,8 +6,8 @@ import org.signal.donations.InAppPaymentType
|
|||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
|
||||
@Parcelize
|
||||
class DonationProcessorActionResult(
|
||||
val action: DonationProcessorAction,
|
||||
class InAppPaymentProcessorActionResult(
|
||||
val action: InAppPaymentProcessorAction,
|
||||
val inAppPayment: InAppPaymentTable.InAppPayment?,
|
||||
val inAppPaymentType: InAppPaymentType,
|
||||
val status: Status
|
|
@ -1,6 +1,6 @@
|
|||
package org.thoughtcrime.securesms.components.settings.app.subscription.donate
|
||||
|
||||
enum class DonationProcessorStage {
|
||||
enum class InAppPaymentProcessorStage {
|
||||
INIT,
|
||||
PAYMENT_PIPELINE,
|
||||
CANCELLING,
|
|
@ -22,9 +22,9 @@ import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity
|
|||
import org.thoughtcrime.securesms.components.ViewBinderDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatMoney
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentComponent
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressFragment
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressViewModel
|
||||
import org.thoughtcrime.securesms.databinding.CreditCardFragmentBinding
|
||||
|
@ -48,11 +48,11 @@ class CreditCardFragment : Fragment(R.layout.credit_card_fragment) {
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this)
|
||||
DonationCheckoutDelegate.ErrorHandler().attach(this, null, args.inAppPayment.id)
|
||||
InAppPaymentCheckoutDelegate.ErrorHandler().attach(this, null, args.inAppPayment.id)
|
||||
|
||||
setFragmentResultListener(StripePaymentInProgressFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
if (result.status == DonationProcessorActionResult.Status.SUCCESS) {
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
if (result.status == InAppPaymentProcessorActionResult.Status.SUCCESS) {
|
||||
findNavController().popBackStack()
|
||||
setFragmentResult(REQUEST_KEY, bundle)
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ class CreditCardFragment : Fragment(R.layout.credit_card_fragment) {
|
|||
stripePaymentViewModel.provideCardData(viewModel.getCardData())
|
||||
findNavController().safeNavigate(
|
||||
CreditCardFragmentDirections.actionCreditCardFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
args.inAppPayment,
|
||||
args.inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -23,9 +23,9 @@ import org.signal.core.util.logging.Log
|
|||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.ViewBinderDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.toErrorSource
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError
|
||||
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
|
||||
import org.thoughtcrime.securesms.databinding.DonationInProgressFragmentBinding
|
||||
|
@ -60,15 +60,15 @@ class PayPalPaymentInProgressFragment : DialogFragment(R.layout.donation_in_prog
|
|||
if (savedInstanceState == null) {
|
||||
viewModel.onBeginNewAction()
|
||||
when (args.action) {
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION -> {
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT -> {
|
||||
viewModel.processNewDonation(args.inAppPayment!!, this::oneTimeConfirmationPipeline, this::monthlyConfirmationPipeline)
|
||||
}
|
||||
|
||||
DonationProcessorAction.UPDATE_SUBSCRIPTION -> {
|
||||
InAppPaymentProcessorAction.UPDATE_SUBSCRIPTION -> {
|
||||
viewModel.updateSubscription(args.inAppPayment!!)
|
||||
}
|
||||
|
||||
DonationProcessorAction.CANCEL_SUBSCRIPTION -> {
|
||||
InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION -> {
|
||||
viewModel.cancelSubscription(InAppPaymentSubscriberRecord.Type.DONATION) // TODO [message-backups] Remove hardcode
|
||||
}
|
||||
}
|
||||
|
@ -80,43 +80,43 @@ class PayPalPaymentInProgressFragment : DialogFragment(R.layout.donation_in_prog
|
|||
}
|
||||
}
|
||||
|
||||
private fun presentUiState(stage: DonationProcessorStage) {
|
||||
private fun presentUiState(stage: InAppPaymentProcessorStage) {
|
||||
when (stage) {
|
||||
DonationProcessorStage.INIT -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
DonationProcessorStage.PAYMENT_PIPELINE -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
DonationProcessorStage.FAILED -> {
|
||||
InAppPaymentProcessorStage.INIT -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
InAppPaymentProcessorStage.PAYMENT_PIPELINE -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
InAppPaymentProcessorStage.FAILED -> {
|
||||
viewModel.onEndAction()
|
||||
findNavController().popBackStack()
|
||||
setFragmentResult(
|
||||
REQUEST_KEY,
|
||||
bundleOf(
|
||||
REQUEST_KEY to DonationProcessorActionResult(
|
||||
REQUEST_KEY to InAppPaymentProcessorActionResult(
|
||||
action = args.action,
|
||||
inAppPayment = args.inAppPayment,
|
||||
inAppPaymentType = args.inAppPaymentType,
|
||||
status = DonationProcessorActionResult.Status.FAILURE
|
||||
status = InAppPaymentProcessorActionResult.Status.FAILURE
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
DonationProcessorStage.COMPLETE -> {
|
||||
InAppPaymentProcessorStage.COMPLETE -> {
|
||||
viewModel.onEndAction()
|
||||
findNavController().popBackStack()
|
||||
setFragmentResult(
|
||||
REQUEST_KEY,
|
||||
bundleOf(
|
||||
REQUEST_KEY to DonationProcessorActionResult(
|
||||
REQUEST_KEY to InAppPaymentProcessorActionResult(
|
||||
action = args.action,
|
||||
inAppPayment = args.inAppPayment,
|
||||
inAppPaymentType = args.inAppPaymentType,
|
||||
status = DonationProcessorActionResult.Status.SUCCESS
|
||||
status = InAppPaymentProcessorActionResult.Status.SUCCESS
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
DonationProcessorStage.CANCELLING -> binding.progressCardStatus.setText(R.string.StripePaymentInProgressFragment__cancelling)
|
||||
InAppPaymentProcessorStage.CANCELLING -> binding.progressCardStatus.setText(R.string.StripePaymentInProgressFragment__cancelling)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaym
|
|||
import org.thoughtcrime.securesms.components.settings.app.subscription.OneTimeInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.PayPalRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource
|
||||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
|
@ -43,8 +43,8 @@ class PayPalPaymentInProgressViewModel(
|
|||
private val TAG = Log.tag(PayPalPaymentInProgressViewModel::class.java)
|
||||
}
|
||||
|
||||
private val store = RxStore(DonationProcessorStage.INIT)
|
||||
val state: Flowable<DonationProcessorStage> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
private val store = RxStore(InAppPaymentProcessorStage.INIT)
|
||||
val state: Flowable<InAppPaymentProcessorStage> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
private val disposables = CompositeDisposable()
|
||||
override fun onCleared() {
|
||||
|
@ -63,7 +63,7 @@ class PayPalPaymentInProgressViewModel(
|
|||
Preconditions.checkState(store.state.isTerminal)
|
||||
|
||||
Log.d(TAG, "Ending current state. Clearing state and setting stage to INIT", true)
|
||||
store.update { DonationProcessorStage.INIT }
|
||||
store.update { InAppPaymentProcessorStage.INIT }
|
||||
disposables.clear()
|
||||
}
|
||||
|
||||
|
@ -84,16 +84,16 @@ class PayPalPaymentInProgressViewModel(
|
|||
fun updateSubscription(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
Log.d(TAG, "Beginning subscription update...", true)
|
||||
|
||||
store.update { DonationProcessorStage.PAYMENT_PIPELINE }
|
||||
store.update { InAppPaymentProcessorStage.PAYMENT_PIPELINE }
|
||||
disposables += RecurringInAppPaymentRepository.cancelActiveSubscriptionIfNecessary(inAppPayment.type.requireSubscriberType()).andThen(RecurringInAppPaymentRepository.setSubscriptionLevel(inAppPayment, PaymentSourceType.PayPal))
|
||||
.subscribeBy(
|
||||
onComplete = {
|
||||
Log.w(TAG, "Completed subscription update", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
},
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failed to update subscription", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.MONTHLY, PaymentSourceType.PayPal, throwable)
|
||||
}
|
||||
)
|
||||
|
@ -102,18 +102,18 @@ class PayPalPaymentInProgressViewModel(
|
|||
fun cancelSubscription(subscriberType: InAppPaymentSubscriberRecord.Type) {
|
||||
Log.d(TAG, "Beginning cancellation...", true)
|
||||
|
||||
store.update { DonationProcessorStage.CANCELLING }
|
||||
store.update { InAppPaymentProcessorStage.CANCELLING }
|
||||
disposables += RecurringInAppPaymentRepository.cancelActiveSubscription(subscriberType).subscribeBy(
|
||||
onComplete = {
|
||||
Log.d(TAG, "Cancellation succeeded", true)
|
||||
SignalStore.inAppPayments.updateLocalStateForManualCancellation(subscriberType)
|
||||
MultiDeviceSubscriptionSyncRequestJob.enqueue()
|
||||
RecurringInAppPaymentRepository.syncAccountRecord().subscribe()
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
},
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Cancellation failed", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ class PayPalPaymentInProgressViewModel(
|
|||
routeToPaypalConfirmation: (PayPalCreatePaymentIntentResponse) -> Single<PayPalConfirmationResult>
|
||||
) {
|
||||
Log.d(TAG, "Proceeding with one-time payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.PAYMENT_PIPELINE }
|
||||
store.update { InAppPaymentProcessorStage.PAYMENT_PIPELINE }
|
||||
val verifyUser = if (inAppPayment.type == InAppPaymentType.ONE_TIME_GIFT) {
|
||||
OneTimeInAppPaymentRepository.verifyRecipientIsAllowedToReceiveAGift(RecipientId.from(inAppPayment.data.recipientId!!))
|
||||
} else {
|
||||
|
@ -158,12 +158,12 @@ class PayPalPaymentInProgressViewModel(
|
|||
.subscribeBy(
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failure in one-time payment pipeline...", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.ONE_TIME, PaymentSourceType.PayPal, throwable)
|
||||
},
|
||||
onComplete = {
|
||||
Log.d(TAG, "Finished one-time payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -182,12 +182,12 @@ class PayPalPaymentInProgressViewModel(
|
|||
.subscribeBy(
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failure in monthly payment pipeline...", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.MONTHLY, PaymentSourceType.PayPal, throwable)
|
||||
},
|
||||
onComplete = {
|
||||
Log.d(TAG, "Finished subscription payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
|
|
@ -26,9 +26,9 @@ import org.thoughtcrime.securesms.components.ViewBinderDelegate
|
|||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentComponent
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.requireSubscriberType
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository.toErrorSource
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError
|
||||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
import org.thoughtcrime.securesms.databinding.DonationInProgressFragmentBinding
|
||||
|
@ -65,13 +65,13 @@ class StripePaymentInProgressFragment : DialogFragment(R.layout.donation_in_prog
|
|||
if (savedInstanceState == null) {
|
||||
viewModel.onBeginNewAction()
|
||||
when (args.action) {
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION -> {
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT -> {
|
||||
viewModel.processNewDonation(args.inAppPayment!!, this::handleSecure3dsAction)
|
||||
}
|
||||
DonationProcessorAction.UPDATE_SUBSCRIPTION -> {
|
||||
InAppPaymentProcessorAction.UPDATE_SUBSCRIPTION -> {
|
||||
viewModel.updateSubscription(args.inAppPayment!!)
|
||||
}
|
||||
DonationProcessorAction.CANCEL_SUBSCRIPTION -> {
|
||||
InAppPaymentProcessorAction.CANCEL_SUBSCRIPTION -> {
|
||||
viewModel.cancelSubscription(args.inAppPaymentType.requireSubscriberType())
|
||||
}
|
||||
}
|
||||
|
@ -83,41 +83,41 @@ class StripePaymentInProgressFragment : DialogFragment(R.layout.donation_in_prog
|
|||
}
|
||||
}
|
||||
|
||||
private fun presentUiState(stage: DonationProcessorStage) {
|
||||
private fun presentUiState(stage: InAppPaymentProcessorStage) {
|
||||
when (stage) {
|
||||
DonationProcessorStage.INIT -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
DonationProcessorStage.PAYMENT_PIPELINE -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
DonationProcessorStage.FAILED -> {
|
||||
InAppPaymentProcessorStage.INIT -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
InAppPaymentProcessorStage.PAYMENT_PIPELINE -> binding.progressCardStatus.setText(R.string.SubscribeFragment__processing_payment)
|
||||
InAppPaymentProcessorStage.FAILED -> {
|
||||
viewModel.onEndAction()
|
||||
findNavController().popBackStack()
|
||||
setFragmentResult(
|
||||
REQUEST_KEY,
|
||||
bundleOf(
|
||||
REQUEST_KEY to DonationProcessorActionResult(
|
||||
REQUEST_KEY to InAppPaymentProcessorActionResult(
|
||||
action = args.action,
|
||||
inAppPayment = args.inAppPayment,
|
||||
inAppPaymentType = args.inAppPaymentType,
|
||||
status = DonationProcessorActionResult.Status.FAILURE
|
||||
status = InAppPaymentProcessorActionResult.Status.FAILURE
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
DonationProcessorStage.COMPLETE -> {
|
||||
InAppPaymentProcessorStage.COMPLETE -> {
|
||||
viewModel.onEndAction()
|
||||
findNavController().popBackStack()
|
||||
setFragmentResult(
|
||||
REQUEST_KEY,
|
||||
bundleOf(
|
||||
REQUEST_KEY to DonationProcessorActionResult(
|
||||
REQUEST_KEY to InAppPaymentProcessorActionResult(
|
||||
action = args.action,
|
||||
inAppPayment = args.inAppPayment,
|
||||
inAppPaymentType = args.inAppPaymentType,
|
||||
status = DonationProcessorActionResult.Status.SUCCESS
|
||||
status = InAppPaymentProcessorActionResult.Status.SUCCESS
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
DonationProcessorStage.CANCELLING -> binding.progressCardStatus.setText(R.string.StripePaymentInProgressFragment__cancelling)
|
||||
InAppPaymentProcessorStage.CANCELLING -> binding.progressCardStatus.setText(R.string.StripePaymentInProgressFragment__cancelling)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaym
|
|||
import org.thoughtcrime.securesms.components.settings.app.subscription.OneTimeInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.RecurringInAppPaymentRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.StripeRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorStage
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationError
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.DonationErrorSource
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.toDonationError
|
||||
|
@ -48,8 +48,8 @@ class StripePaymentInProgressViewModel(
|
|||
private val TAG = Log.tag(StripePaymentInProgressViewModel::class.java)
|
||||
}
|
||||
|
||||
private val store = RxStore(DonationProcessorStage.INIT)
|
||||
val state: Flowable<DonationProcessorStage> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
private val store = RxStore(InAppPaymentProcessorStage.INIT)
|
||||
val state: Flowable<InAppPaymentProcessorStage> = store.stateFlowable.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
private val disposables = CompositeDisposable()
|
||||
private var stripePaymentData: StripePaymentData? = null
|
||||
|
@ -71,7 +71,7 @@ class StripePaymentInProgressViewModel(
|
|||
Preconditions.checkState(store.state.isTerminal)
|
||||
|
||||
Log.d(TAG, "Ending current state. Clearing state and setting stage to INIT", true)
|
||||
store.update { DonationProcessorStage.INIT }
|
||||
store.update { InAppPaymentProcessorStage.INIT }
|
||||
disposables.clear()
|
||||
}
|
||||
|
||||
|
@ -151,7 +151,7 @@ class StripePaymentInProgressViewModel(
|
|||
val setLevel: Completable = RecurringInAppPaymentRepository.setSubscriptionLevel(inAppPayment, paymentSourceProvider.paymentSourceType)
|
||||
|
||||
Log.d(TAG, "Starting subscription payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.PAYMENT_PIPELINE }
|
||||
store.update { InAppPaymentProcessorStage.PAYMENT_PIPELINE }
|
||||
|
||||
val setup: Completable = ensureSubscriberId
|
||||
.andThen(RecurringInAppPaymentRepository.cancelActiveSubscriptionIfNecessary(inAppPayment.type.requireSubscriberType()))
|
||||
|
@ -183,12 +183,12 @@ class StripePaymentInProgressViewModel(
|
|||
disposables += setup.andThen(setLevel).subscribeBy(
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failure in subscription payment pipeline...", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.MONTHLY, paymentSourceProvider.paymentSourceType, throwable)
|
||||
},
|
||||
onComplete = {
|
||||
Log.d(TAG, "Finished subscription payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -240,12 +240,12 @@ class StripePaymentInProgressViewModel(
|
|||
}.subscribeBy(
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failure in one-time payment pipeline...", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.ONE_TIME, paymentSourceProvider.paymentSourceType, throwable)
|
||||
},
|
||||
onComplete = {
|
||||
Log.w(TAG, "Completed one-time payment pipeline...", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@ -253,22 +253,22 @@ class StripePaymentInProgressViewModel(
|
|||
fun cancelSubscription(subscriberType: InAppPaymentSubscriberRecord.Type) {
|
||||
Log.d(TAG, "Beginning cancellation...", true)
|
||||
|
||||
store.update { DonationProcessorStage.CANCELLING }
|
||||
store.update { InAppPaymentProcessorStage.CANCELLING }
|
||||
disposables += RecurringInAppPaymentRepository.cancelActiveSubscription(subscriberType).subscribeBy(
|
||||
onComplete = {
|
||||
Log.d(TAG, "Cancellation succeeded", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
},
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Cancellation failed", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun updateSubscription(inAppPayment: InAppPaymentTable.InAppPayment) {
|
||||
Log.d(TAG, "Beginning subscription update...", true)
|
||||
store.update { DonationProcessorStage.PAYMENT_PIPELINE }
|
||||
store.update { InAppPaymentProcessorStage.PAYMENT_PIPELINE }
|
||||
disposables += RecurringInAppPaymentRepository
|
||||
.cancelActiveSubscriptionIfNecessary(inAppPayment.type.requireSubscriberType())
|
||||
.andThen(RecurringInAppPaymentRepository.getPaymentSourceTypeOfLatestSubscription(inAppPayment.type.requireSubscriberType()))
|
||||
|
@ -276,11 +276,11 @@ class StripePaymentInProgressViewModel(
|
|||
.subscribeBy(
|
||||
onComplete = {
|
||||
Log.w(TAG, "Completed subscription update", true)
|
||||
store.update { DonationProcessorStage.COMPLETE }
|
||||
store.update { InAppPaymentProcessorStage.COMPLETE }
|
||||
},
|
||||
onError = { throwable ->
|
||||
Log.w(TAG, "Failed to update subscription", throwable, true)
|
||||
store.update { DonationProcessorStage.FAILED }
|
||||
store.update { InAppPaymentProcessorStage.FAILED }
|
||||
SignalExecutors.BOUNDED_IO.execute {
|
||||
val paymentSourceType = InAppPaymentsRepository.getLatestPaymentMethodType(inAppPayment.type.requireSubscriberType()).toPaymentSourceType()
|
||||
InAppPaymentsRepository.handlePipelineError(inAppPayment.id, DonationErrorSource.MONTHLY, paymentSourceType, throwable)
|
||||
|
|
|
@ -57,9 +57,9 @@ import org.thoughtcrime.securesms.R
|
|||
import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatMoney
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentComponent
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressFragment
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressViewModel
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.transfer.BankTransferRequestKeys
|
||||
|
@ -74,7 +74,7 @@ import org.thoughtcrime.securesms.util.navigation.safeNavigate
|
|||
/**
|
||||
* Collects SEPA Debit bank transfer details from the user to proceed with donation.
|
||||
*/
|
||||
class BankTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate.ErrorHandlerCallback {
|
||||
class BankTransferDetailsFragment : ComposeFragment(), InAppPaymentCheckoutDelegate.ErrorHandlerCallback {
|
||||
|
||||
private val args: BankTransferDetailsFragmentArgs by navArgs()
|
||||
private val viewModel: BankTransferDetailsViewModel by viewModels()
|
||||
|
@ -89,11 +89,11 @@ class BankTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate.
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this)
|
||||
|
||||
DonationCheckoutDelegate.ErrorHandler().attach(this, this, args.inAppPayment.id)
|
||||
InAppPaymentCheckoutDelegate.ErrorHandler().attach(this, this, args.inAppPayment.id)
|
||||
|
||||
setFragmentResultListener(StripePaymentInProgressFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
if (result.status == DonationProcessorActionResult.Status.SUCCESS) {
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
if (result.status == InAppPaymentProcessorActionResult.Status.SUCCESS) {
|
||||
findNavController().popBackStack(R.id.donateToSignalFragment, false)
|
||||
setFragmentResult(BankTransferRequestKeys.REQUEST_KEY, bundle)
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ class BankTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate.
|
|||
stripePaymentViewModel.provideSEPADebitData(viewModel.state.value.asSEPADebitData())
|
||||
findNavController().safeNavigate(
|
||||
BankTransferDetailsFragmentDirections.actionBankTransferDetailsFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
args.inAppPayment,
|
||||
args.inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -58,9 +58,9 @@ import org.thoughtcrime.securesms.R
|
|||
import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.DonationSerializationHelper.toFiatMoney
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentComponent
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentCheckoutDelegate
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorActionResult
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressFragment
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.stripe.StripePaymentInProgressViewModel
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.donate.transfer.BankTransferRequestKeys
|
||||
|
@ -76,7 +76,7 @@ import org.thoughtcrime.securesms.util.viewModel
|
|||
/**
|
||||
* Fragment for inputting necessary bank transfer information for iDEAL donation
|
||||
*/
|
||||
class IdealTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate.ErrorHandlerCallback {
|
||||
class IdealTransferDetailsFragment : ComposeFragment(), InAppPaymentCheckoutDelegate.ErrorHandlerCallback {
|
||||
|
||||
private val args: IdealTransferDetailsFragmentArgs by navArgs()
|
||||
private val viewModel: IdealTransferDetailsViewModel by viewModel {
|
||||
|
@ -93,11 +93,11 @@ class IdealTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
TemporaryScreenshotSecurity.bindToViewLifecycleOwner(this)
|
||||
|
||||
DonationCheckoutDelegate.ErrorHandler().attach(this, this, args.inAppPayment.id)
|
||||
InAppPaymentCheckoutDelegate.ErrorHandler().attach(this, this, args.inAppPayment.id)
|
||||
|
||||
setFragmentResultListener(StripePaymentInProgressFragment.REQUEST_KEY) { _, bundle ->
|
||||
val result: DonationProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, DonationProcessorActionResult::class.java)!!
|
||||
if (result.status == DonationProcessorActionResult.Status.SUCCESS) {
|
||||
val result: InAppPaymentProcessorActionResult = bundle.getParcelableCompat(StripePaymentInProgressFragment.REQUEST_KEY, InAppPaymentProcessorActionResult::class.java)!!
|
||||
if (result.status == InAppPaymentProcessorActionResult.Status.SUCCESS) {
|
||||
findNavController().popBackStack(R.id.donateToSignalFragment, false)
|
||||
setFragmentResult(BankTransferRequestKeys.REQUEST_KEY, bundle)
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ class IdealTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate
|
|||
stripePaymentViewModel.provideIDEALData(state.asIDEALData())
|
||||
findNavController().safeNavigate(
|
||||
IdealTransferDetailsFragmentDirections.actionBankTransferDetailsFragmentToStripePaymentInProgressFragment(
|
||||
DonationProcessorAction.PROCESS_NEW_DONATION,
|
||||
InAppPaymentProcessorAction.PROCESS_NEW_IN_APP_PAYMENT,
|
||||
args.inAppPayment,
|
||||
args.inAppPayment.type
|
||||
)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
<argument
|
||||
android:name="action"
|
||||
app:argType="org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction"
|
||||
app:argType="org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction"
|
||||
app:nullable="false" />
|
||||
|
||||
<argument
|
||||
|
@ -94,7 +94,7 @@
|
|||
|
||||
<argument
|
||||
android:name="action"
|
||||
app:argType="org.thoughtcrime.securesms.components.settings.app.subscription.donate.DonationProcessorAction"
|
||||
app:argType="org.thoughtcrime.securesms.components.settings.app.subscription.donate.InAppPaymentProcessorAction"
|
||||
app:nullable="false" />
|
||||
|
||||
<argument
|
||||
|
|
Loading…
Add table
Reference in a new issue