From b4655d5f73e5e4a4fa575621939b01d19375fb17 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Sun, 15 May 2022 14:13:03 -0400 Subject: [PATCH] Handle basic monthly subscription user receive hourglass on four month --- Habitica/res/values/strings.xml | 2 +- .../subscriptions/SubscriptionDetailsView.kt | 17 ++++++++--------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index e8913d925..622d3e6c8 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -432,7 +432,7 @@ Current Bonuses Months subscribed Current Mystic Hourglasses - Next Hourglass* + Next Hourglass Monthly gem cap Inactive 1 Month 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 cd400dc45..edd5ec440 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 @@ -4,8 +4,6 @@ import android.content.Context import android.content.Intent import android.graphics.drawable.BitmapDrawable import android.net.Uri -import android.text.format.DateUtils -import android.text.format.DateUtils.getRelativeTimeSpanString import android.util.AttributeSet import android.view.View import android.widget.LinearLayout @@ -15,7 +13,6 @@ import com.habitrpg.android.habitica.extensions.layoutInflater import com.habitrpg.android.habitica.models.user.SubscriptionPlan import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import java.text.DateFormat -import java.time.Instant import java.time.LocalDate import java.time.format.DateTimeFormatter import java.util.* @@ -50,21 +47,23 @@ class SubscriptionDetailsView : LinearLayout { updateSubscriptionStatusPill(plan) var duration: String? = null - var subscriptionRenewalDuration = 3 + var renewalUntilNextHourglass = 3 if (plan.planId != null && plan.dateTerminated == null) { if (plan.planId == SubscriptionPlan.PLANID_BASIC || plan.planId == SubscriptionPlan.PLANID_BASICEARNED) { duration = resources.getString(R.string.month) - subscriptionRenewalDuration = 3; + renewalUntilNextHourglass = 3; + //If user has a initial basic monthly subscription, receive hourglasses on fourth month + plan.consecutive?.count.let { if (it!! < 3) { renewalUntilNextHourglass + 1 } } } else if (plan.planId == SubscriptionPlan.PLANID_BASIC3MONTH) { duration = resources.getString(R.string.three_months) - subscriptionRenewalDuration = 3; + renewalUntilNextHourglass = 3; } else if (plan.planId == SubscriptionPlan.PLANID_BASIC6MONTH || plan.planId == SubscriptionPlan.PLANID_GOOGLE6MONTH) { duration = resources.getString(R.string.six_months) - subscriptionRenewalDuration = 6; + renewalUntilNextHourglass = 6; } else if (plan.planId == SubscriptionPlan.PLANID_BASIC12MONTH) { duration = resources.getString(R.string.twelve_months) - subscriptionRenewalDuration = 12; + renewalUntilNextHourglass = 12; } } @@ -110,7 +109,7 @@ class SubscriptionDetailsView : LinearLayout { binding.gemCapTextView.text = plan.totalNumberOfGems.toString() if (plan.consecutive?.count != null) { - val monthsTillNextHourglass = subscriptionRenewalDuration - (plan.consecutive?.count!! % subscriptionRenewalDuration) + val monthsTillNextHourglass = renewalUntilNextHourglass - (plan.consecutive?.count!! % renewalUntilNextHourglass) val nextHourglassMonth = LocalDate.now().plusMonths(monthsTillNextHourglass.toLong()) val nextHourGlassMonthString = nextHourglassMonth.format(DateTimeFormatter.ofPattern("MMM")); binding.nextHourglassTextView.text = nextHourGlassMonthString