From 8e6ccfa6c977c1126ee1d52ece8a657bc16293a7 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 4 Feb 2020 14:04:22 +0100 Subject: [PATCH] Improve unsubscribe handling --- .../habitica/ui/fragments/NavigationDrawerFragment.kt | 2 ++ .../ui/fragments/purchases/SubscriptionFragment.kt | 8 ++++++-- .../ui/views/subscriptions/SubscriptionDetailsView.kt | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt index 0d0f17630..a1e8b8d54 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/NavigationDrawerFragment.kt @@ -253,6 +253,8 @@ class NavigationDrawerFragment : DialogFragment() { } } } + } else if (user.isSubscribed) { + subscriptionItem?.subtitle = null } else { subscriptionItem?.subtitle = context?.getString(R.string.more_out_of_habitica) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt index d3fbda00e..580cb46ff 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/purchases/SubscriptionFragment.kt @@ -179,6 +179,7 @@ class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen selectedSubscriptionSku?.let { sku -> purchaseHandler?.purchaseSubscription(sku) { fetchUser(null) + binding.scrollView.smoothScrollTo(0, 0) } } } @@ -186,7 +187,10 @@ class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen fun setUser(newUser: User) { user = newUser this.updateSubscriptionInfo() - checkIfNeedsCancellation() + purchaseHandler?.checkForSubscription { + purchasedSubscription = it + checkIfNeedsCancellation() + } } private fun updateSubscriptionInfo() { @@ -218,7 +222,7 @@ class SubscriptionFragment : BaseFragment(), GemPurchaseActivity.CheckoutFragmen } private fun checkIfNeedsCancellation() { - if (user?.purchased?.plan?.isActive == true) { + if (user?.purchased?.plan?.isActive == true && purchasedSubscription?.autoRenewing == false) { compositeSubscription.add(apiClient.cancelSubscription().subscribe(Consumer { refresh() }, RxErrorHandler.handleEmptyError())) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt index 284d872d0..1585ed10c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/subscriptions/SubscriptionDetailsView.kt @@ -47,7 +47,7 @@ class SubscriptionDetailsView : LinearLayout { var duration: String? = null - if (plan.planId != null) { + if (plan.planId != null && plan.dateTerminated == null) { if (plan.planId == SubscriptionPlan.PLANID_BASIC || plan.planId == SubscriptionPlan.PLANID_BASICEARNED) { duration = resources.getString(R.string.month) } else if (plan.planId == SubscriptionPlan.PLANID_BASIC3MONTH) {