diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeFragment.kt index 57195e4b28..98d4c1f04a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeFragment.kt @@ -176,7 +176,7 @@ class SubscribeFragment : DSLSettingsFragment( isSelected = state.selectedSubscription == it, isEnabled = areFieldsEnabled, isActive = isActive, - willRenew = isActive && state.activeSubscription?.activeSubscription?.willCancelAtPeriodEnd() ?: false, + willRenew = isActive && !state.isSubscriptionExpiring(), onClick = { viewModel.setSelectedSubscription(it) }, renewalTimestamp = TimeUnit.SECONDS.toMillis(state.activeSubscription?.activeSubscription?.endOfCurrentPeriod ?: 0L), selectedCurrency = state.currencySelection @@ -190,11 +190,10 @@ class SubscribeFragment : DSLSettingsFragment( val activeAndSameLevel = state.activeSubscription.isActive && state.selectedSubscription?.level == state.activeSubscription.activeSubscription?.level - val isExpiring = state.activeSubscription.isActive && state.activeSubscription.activeSubscription?.willCancelAtPeriodEnd() == true primaryButton( text = DSLSettingsText.from(R.string.SubscribeFragment__update_subscription), - isEnabled = areFieldsEnabled && (!activeAndSameLevel || isExpiring), + isEnabled = areFieldsEnabled && (!activeAndSameLevel || state.isSubscriptionExpiring()), onClick = { val price = viewModel.getPriceOfSelectedSubscription() ?: return@primaryButton val calendar = Calendar.getInstance() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeState.kt index 6d122e0529..60b97b1c8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/subscribe/SubscribeState.kt @@ -13,6 +13,11 @@ data class SubscribeState( val stage: Stage = Stage.INIT, val hasInProgressSubscriptionTransaction: Boolean = false, ) { + + fun isSubscriptionExpiring(): Boolean { + return activeSubscription?.isActive == true && activeSubscription.activeSubscription.willCancelAtPeriodEnd() + } + enum class Stage { INIT, READY,