mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-03-01 22:22:15 +00:00
Allow users to cancel during pending donation.
This commit is contained in:
committed by
Greyson Parrelli
parent
66e6b5506e
commit
91115fa0bd
@@ -277,7 +277,7 @@ class DonateToSignalFragment :
|
||||
|
||||
space(20.dp)
|
||||
|
||||
if (state.inAppPaymentType == InAppPaymentType.RECURRING_DONATION && state.monthlyDonationState.isSubscriptionActive) {
|
||||
if (state.inAppPaymentType == InAppPaymentType.RECURRING_DONATION && (state.monthlyDonationState.isSubscriptionActive || state.monthlyDonationState.isSubscriptionInProgress)) {
|
||||
primaryButton(
|
||||
text = DSLSettingsText.from(R.string.SubscribeFragment__update_subscription),
|
||||
isEnabled = state.canUpdate,
|
||||
|
||||
@@ -82,7 +82,7 @@ data class DonateToSignalState(
|
||||
val canUpdate: Boolean
|
||||
get() = when (inAppPaymentType) {
|
||||
InAppPaymentType.ONE_TIME_DONATION -> false
|
||||
InAppPaymentType.RECURRING_DONATION -> areFieldsEnabled && monthlyDonationState.isSelectionValid
|
||||
InAppPaymentType.RECURRING_DONATION -> areFieldsEnabled && monthlyDonationState.isSelectionValid && monthlyDonationState.isSubscriptionActive && !monthlyDonationState.transactionState.isInProgress
|
||||
else -> error("This flow does not support $inAppPaymentType")
|
||||
}
|
||||
|
||||
@@ -124,6 +124,7 @@ data class DonateToSignalState(
|
||||
val transactionState: TransactionState = TransactionState()
|
||||
) {
|
||||
val isSubscriptionActive: Boolean = _activeSubscription?.isActive == true
|
||||
val isSubscriptionInProgress: Boolean = _activeSubscription?.isInProgress == true
|
||||
val activeLevel: Int? = _activeSubscription?.activeSubscription?.level
|
||||
val activeSubscription: ActiveSubscription.Subscription? = _activeSubscription?.activeSubscription
|
||||
val isActiveSubscriptionEnding: Boolean = _activeSubscription?.isActive == true && _activeSubscription.activeSubscription.willCancelAtPeriodEnd()
|
||||
|
||||
@@ -119,6 +119,8 @@ class DonateToSignalViewModel(
|
||||
|
||||
fun updateSubscription() {
|
||||
val snapshot = store.state
|
||||
|
||||
check(snapshot.canUpdate)
|
||||
if (snapshot.areFieldsEnabled) {
|
||||
actionDisposable += createInAppPayment(snapshot).subscribeBy {
|
||||
_actions.onNext(DonateToSignalAction.UpdateSubscription(it, snapshot.isUpdateLongRunning))
|
||||
|
||||
@@ -278,9 +278,7 @@ class ManageDonationsFragment :
|
||||
activeSubscription = activeSubscription,
|
||||
subscriberRequiresCancel = state.subscriberRequiresCancel,
|
||||
onRowClick = {
|
||||
if (it != ManageDonationsState.RedemptionState.IN_PROGRESS) {
|
||||
launcher.launch(InAppPaymentType.RECURRING_DONATION)
|
||||
}
|
||||
launcher.launch(InAppPaymentType.RECURRING_DONATION)
|
||||
},
|
||||
onPendingClick = {
|
||||
displayPendingDialog(it)
|
||||
|
||||
Reference in New Issue
Block a user