From 673fe2625cda8d86b9b30ef682202e0cbbe022a5 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Fri, 2 Feb 2024 09:36:38 -0500 Subject: [PATCH] Show iDEAL 0,01 temporary charge warning dialog for monthly subscription. --- .../ideal/IdealTransferDetailsFragment.kt | 30 +++++++++++++++---- app/src/main/res/values/strings.xml | 6 ++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsFragment.kt index 5819a51e93..2e6a6c3dfa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/ideal/IdealTransferDetailsFragment.kt @@ -49,6 +49,7 @@ import androidx.lifecycle.LifecycleOwner import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.navigation.navGraphViewModels +import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.signal.core.ui.Buttons import org.signal.core.ui.Scaffolds import org.signal.core.ui.Texts @@ -156,13 +157,30 @@ class IdealTransferDetailsFragment : ComposeFragment(), DonationCheckoutDelegate } private fun onDonateClick() { - stripePaymentViewModel.provideIDEALData(viewModel.state.value.asIDEALData()) - findNavController().safeNavigate( - IdealTransferDetailsFragmentDirections.actionBankTransferDetailsFragmentToStripePaymentInProgressFragment( - DonationProcessorAction.PROCESS_NEW_DONATION, - args.request + val state = viewModel.state.value + + val continueTransfer = { + stripePaymentViewModel.provideIDEALData(state.asIDEALData()) + findNavController().safeNavigate( + IdealTransferDetailsFragmentDirections.actionBankTransferDetailsFragmentToStripePaymentInProgressFragment( + DonationProcessorAction.PROCESS_NEW_DONATION, + args.request + ) ) - ) + } + + if (args.request.donateToSignalType == DonateToSignalType.MONTHLY) { + MaterialAlertDialogBuilder(requireContext()) + .setTitle(getString(R.string.IdealTransferDetailsFragment__confirm_your_donation_with_s, getString(state.idealBank!!.getUIValues().name))) + .setMessage(R.string.IdealTransferDetailsFragment__monthly_ideal_warning) + .setPositiveButton(R.string.IdealTransferDetailsFragment__continue) { _, _ -> + continueTransfer() + } + .setNegativeButton(android.R.string.cancel, null) + .show() + } else { + continueTransfer() + } } override fun onUserLaunchedAnExternalApplication() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8fc9a0d1db..028b1e22fd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5978,6 +5978,12 @@ Email Choose your bank + + Confirm your donation with %1$s + + To setup your recurring donation tap continue to confirm a €0,01 charge with your bank. This will be automatically refunded and allows your €5/month donation to debited from your account. + + Continue