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