Fix expiring label.

This commit is contained in:
Alex Hart 2021-11-15 15:59:28 -04:00 committed by Cody Henthorne
parent 732a6324d6
commit 02dc457636
2 changed files with 7 additions and 3 deletions

View file

@ -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()

View file

@ -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,