mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-08 21:37:53 +00:00
Test adding remaining subscription time in menu
This commit is contained in:
parent
f2701dfcd0
commit
f1c83abef3
5 changed files with 57 additions and 2 deletions
|
|
@ -238,12 +238,22 @@
|
|||
<string name="equipped">Equipped</string>
|
||||
<string name="quest_cancel_message">Are you sure you want to cancel this quest? All invitation acceptances will be lost. The quest owner will retain possession of the quest scroll.</string>
|
||||
<string name="quest_begin_message">Are you sure? Only %1$d of your %2$d party members have joined this quest! Quests start automatically when all players have joined or rejected the invitation.</string>
|
||||
<string name="ago_1month">1 month ago</string>
|
||||
<string name="ago_months">%d month ago</string>
|
||||
<string name="ago_1day">1d ago</string>
|
||||
<string name="ago_days">%dd ago</string>
|
||||
<string name="ago_1Minute">1m ago</string>
|
||||
<string name="ago_minutes">%dm ago</string>
|
||||
<string name="ago_hours">%dh ago</string>
|
||||
<string name="ago_1hour">1h ago</string>
|
||||
<string name="remaining_1month">1 month remaining</string>
|
||||
<string name="remaining_months">%d months remaining</string>
|
||||
<string name="remaining_1day">1d remaining</string>
|
||||
<string name="remaining_days">%dd remaining</string>
|
||||
<string name="remaining_1Minute">1m remaining</string>
|
||||
<string name="remaining_minutes">%dm remaining</string>
|
||||
<string name="remaining_hours">%dh remaining</string>
|
||||
<string name="remaining_1hour">1h remaining</string>
|
||||
<string name="today">Today</string>
|
||||
<string name="sidebar_items">Items</string>
|
||||
<string name="eggs">Eggs</string>
|
||||
|
|
|
|||
|
|
@ -27,8 +27,12 @@ fun Long.getAgoString(res: Resources): String {
|
|||
val diffMinutes = diff / (60 * 1000) % 60
|
||||
val diffHours = diff / (60 * 60 * 1000) % 24
|
||||
val diffDays = diff / (24 * 60 * 60 * 1000)
|
||||
val diffMonths = diffDays / 30
|
||||
|
||||
return when {
|
||||
diffMonths != 0L -> if (diffMonths == 1L) {
|
||||
res.getString(R.string.ago_1month)
|
||||
} else res.getString(R.string.ago_months, diffMonths)
|
||||
diffDays != 0L -> if (diffDays == 1L) {
|
||||
res.getString(R.string.ago_1day)
|
||||
} else res.getString(R.string.ago_days, diffDays)
|
||||
|
|
@ -38,4 +42,31 @@ fun Long.getAgoString(res: Resources): String {
|
|||
diffMinutes == 1L -> res.getString(R.string.ago_1Minute)
|
||||
else -> res.getString(R.string.ago_minutes, diffMinutes)
|
||||
}
|
||||
}
|
||||
|
||||
fun Date.getRemainingString(res: Resources): String {
|
||||
return this.time.getRemainingString(res)
|
||||
}
|
||||
|
||||
fun Long.getRemainingString(res: Resources): String {
|
||||
val diff = this - Date().time
|
||||
|
||||
val diffMinutes = diff / (60 * 1000) % 60
|
||||
val diffHours = diff / (60 * 60 * 1000) % 24
|
||||
val diffDays = diff / (24 * 60 * 60 * 1000)
|
||||
val diffMonths = diffDays / 30
|
||||
|
||||
return when {
|
||||
diffMonths != 0L -> if (diffMonths == 1L) {
|
||||
res.getString(R.string.remaining_1month)
|
||||
} else res.getString(R.string.remaining_months, diffMonths)
|
||||
diffDays != 0L -> if (diffDays == 1L) {
|
||||
res.getString(R.string.remaining_1day)
|
||||
} else res.getString(R.string.remaining_days, diffDays)
|
||||
diffHours != 0L -> if (diffHours == 1L) {
|
||||
res.getString(R.string.remaining_1hour)
|
||||
} else res.getString(R.string.remaining_hours, diffHours)
|
||||
diffMinutes == 1L -> res.getString(R.string.remaining_1Minute)
|
||||
else -> res.getString(R.string.remaining_minutes, diffMinutes)
|
||||
}
|
||||
}
|
||||
|
|
@ -158,7 +158,7 @@ class NavigationDrawerAdapter(tintColor: Int, backgroundTintColor: Int): Recycle
|
|||
if (additionalInfoView != null) {
|
||||
additionalInfoView.text = drawerItem.additionalInfo
|
||||
additionalInfoView.visibility = View.VISIBLE
|
||||
additionalInfoView.setTextColor(tintColor)
|
||||
additionalInfoView.setTextColor(drawerItem.additionalInfoTextColor ?: tintColor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.habitrpg.android.habitica.R
|
|||
import com.habitrpg.android.habitica.data.InventoryRepository
|
||||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.extensions.getRemainingString
|
||||
import com.habitrpg.android.habitica.extensions.getThemeColor
|
||||
import com.habitrpg.android.habitica.extensions.subscribeWithErrorHandler
|
||||
import com.habitrpg.android.habitica.helpers.AppConfigManager
|
||||
|
|
@ -232,6 +233,16 @@ class NavigationDrawerFragment : DialogFragment() {
|
|||
updateItem(statsItem)
|
||||
}
|
||||
|
||||
val subscriptionItem = getItemWithIdentifier(SIDEBAR_SUBSCRIPTION)
|
||||
if (user.isSubscribed && user.purchased?.plan?.dateTerminated != null) {
|
||||
context?.let {
|
||||
subscriptionItem?.additionalInfo = user.purchased?.plan?.dateTerminated?.getRemainingString(it.resources)
|
||||
subscriptionItem?.additionalInfoTextColor = it.getThemeColor(R.attr.textColorSecondary)
|
||||
}
|
||||
} else {
|
||||
subscriptionItem?.additionalInfo = null
|
||||
}
|
||||
|
||||
val promoItem = getItemWithIdentifier(SIDEBAR_SUBSCRIPTION_PROMO)
|
||||
if (promoItem != null) {
|
||||
promoItem.isVisible = !user.isSubscribed
|
||||
|
|
@ -268,8 +279,8 @@ class NavigationDrawerFragment : DialogFragment() {
|
|||
items.add(HabiticaDrawerItem(R.id.equipmentOverviewFragment, SIDEBAR_EQUIPMENT, context.getString(R.string.sidebar_equipment)))
|
||||
items.add(HabiticaDrawerItem(R.id.itemsFragment, SIDEBAR_ITEMS, context.getString(R.string.sidebar_items)))
|
||||
items.add(HabiticaDrawerItem(R.id.stableFragment, SIDEBAR_STABLE, context.getString(R.string.sidebar_stable)))
|
||||
items.add(HabiticaDrawerItem(R.id.subscriptionPurchaseActivity, SIDEBAR_SUBSCRIPTION, context.getString(R.string.sidebar_subscription)))
|
||||
items.add(HabiticaDrawerItem(R.id.gemPurchaseActivity, SIDEBAR_GEMS, context.getString(R.string.sidebar_gems)))
|
||||
items.add(HabiticaDrawerItem(R.id.subscriptionPurchaseActivity, SIDEBAR_SUBSCRIPTION, context.getString(R.string.sidebar_subscription), isHeader = false, additionalInfoAsPill = false))
|
||||
items.add(HabiticaDrawerItem(0, SIDEBAR_ABOUT_HEADER, context.getString(R.string.sidebar_about), true))
|
||||
items.add(HabiticaDrawerItem(R.id.newsFragment, SIDEBAR_NEWS, context.getString(R.string.sidebar_news)))
|
||||
items.add(HabiticaDrawerItem(R.id.FAQOverviewFragment, SIDEBAR_HELP, context.getString(R.string.sidebar_help)))
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
package com.habitrpg.android.habitica.ui.menu
|
||||
|
||||
import android.graphics.Color
|
||||
|
||||
data class HabiticaDrawerItem(val transitionId: Int, val identifier: String, val text: String, val isHeader: Boolean = false, var additionalInfoAsPill: Boolean = true) {
|
||||
constructor(transitionId: Int, identifier: String) : this(transitionId, identifier, "")
|
||||
|
||||
var isPromo: Boolean = false
|
||||
var additionalInfo: String? = null
|
||||
var additionalInfoTextColor: Int? = null
|
||||
var showBubble: Boolean = false
|
||||
var isVisible: Boolean = true
|
||||
var isEnabled: Boolean = true
|
||||
|
|
|
|||
Loading…
Reference in a new issue