diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt index 348cb6b80f..d809b04942 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalFragment.kt @@ -310,7 +310,7 @@ class DonateToSignalFragment : text = DSLSettingsText.from(R.string.SubscribeFragment__cancel_subscription), isEnabled = state.areFieldsEnabled, onClick = { - if (state.monthlyDonationState.transactionState.isTransactionJobPending) { + if (state.monthlyDonationState.transactionState.isTransactionJobPending && !state.monthlyDonationState.transactionState.isKeepAlive) { showDonationPendingDialog(state) } else { MaterialAlertDialogBuilder(requireContext()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalState.kt index c701915eff..b61f6c7633 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalState.kt @@ -139,7 +139,8 @@ data class DonateToSignalState( data class TransactionState( val isTransactionJobPending: Boolean = false, - val isLevelUpdateInProgress: Boolean = false + val isLevelUpdateInProgress: Boolean = false, + val isKeepAlive: Boolean = false ) { val isInProgress: Boolean = isTransactionJobPending || isLevelUpdateInProgress } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt index 627690b6dc..d49020ebbf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/DonateToSignalViewModel.kt @@ -341,7 +341,7 @@ class DonateToSignalViewModel( state.copy( monthlyDonationState = state.monthlyDonationState.copy( nonVerifiedMonthlyDonation = if (jobStatus is DonationRedemptionJobStatus.PendingExternalVerification) jobStatus.nonVerifiedMonthlyDonation else null, - transactionState = DonateToSignalState.TransactionState(jobStatus.isInProgress(), levelUpdateProcessing) + transactionState = DonateToSignalState.TransactionState(jobStatus.isInProgress(), levelUpdateProcessing, jobStatus is DonationRedemptionJobStatus.PendingKeepAlive) ) ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ActiveSubscriptionPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ActiveSubscriptionPreference.kt index 9b8f8d2039..ecf56678bc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ActiveSubscriptionPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ActiveSubscriptionPreference.kt @@ -34,7 +34,6 @@ object ActiveSubscriptionPreference { val activeSubscription: ActiveSubscription.Subscription?, val subscriberRequiresCancel: Boolean, val onContactSupport: () -> Unit, - val onPendingClick: (FiatMoney) -> Unit, val onRowClick: (ManageDonationsState.RedemptionState) -> Unit ) : PreferenceModel() { override fun areItemsTheSame(newItem: Model): Boolean { @@ -79,7 +78,7 @@ object ActiveSubscriptionPreference { when (model.redemptionState) { ManageDonationsState.RedemptionState.NONE -> presentRenewalState(model) - ManageDonationsState.RedemptionState.IS_PENDING_BANK_TRANSFER -> presentPendingBankTransferState(model) + ManageDonationsState.RedemptionState.IS_PENDING_BANK_TRANSFER -> presentPendingBankTransferState() ManageDonationsState.RedemptionState.IN_PROGRESS -> presentInProgressState() ManageDonationsState.RedemptionState.FAILED -> presentFailureState(model) ManageDonationsState.RedemptionState.SUBSCRIPTION_REFRESH -> presentRefreshState() @@ -102,10 +101,9 @@ object ActiveSubscriptionPreference { progress.visible = true } - private fun presentPendingBankTransferState(model: Model) { + private fun presentPendingBankTransferState() { expiry.text = context.getString(R.string.MySupportPreference__payment_pending) progress.visible = true - itemView.setOnClickListener { model.onPendingClick(model.price) } } private fun presentInProgressState() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt index baaafc6e79..6dd01cb7ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt @@ -294,9 +294,6 @@ class ManageDonationsFragment : subscriberRequiresCancel = state.subscriberRequiresCancel, onRowClick = { launcher.launch(InAppPaymentType.RECURRING_DONATION) - }, - onPendingClick = { - displayPendingDialog(it) } ) ) @@ -317,7 +314,6 @@ class ManageDonationsFragment : onContactSupport = {}, activeSubscription = null, subscriberRequiresCancel = state.subscriberRequiresCancel, - onPendingClick = {}, onRowClick = {} ) )