From 6da4f1a34d9654f185be6f128448ab35736b2e5d Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 16 May 2024 19:51:21 +0200 Subject: [PATCH] update locked state for gear --- .../layout/dialog_purchase_content_gear.xml | 16 ++++++++++- .../layout/dialog_purchase_content_item.xml | 2 +- Habitica/res/values/strings.xml | 6 +++++ .../habitica/ui/views/AppHeaderView.kt | 13 +++++++++ .../habitica/ui/views/shops/PurchaseDialog.kt | 27 +++++++++++-------- 5 files changed, 51 insertions(+), 13 deletions(-) diff --git a/Habitica/res/layout/dialog_purchase_content_gear.xml b/Habitica/res/layout/dialog_purchase_content_gear.xml index 5989bc4e2f..850d3c4a28 100644 --- a/Habitica/res/layout/dialog_purchase_content_gear.xml +++ b/Habitica/res/layout/dialog_purchase_content_gear.xml @@ -109,4 +109,18 @@ android:textColor="@color/text_ternary" android:layout_marginTop="@dimen/spacing_medium" android:gravity="center_horizontal"/> - \ No newline at end of file + + + + diff --git a/Habitica/res/layout/dialog_purchase_content_item.xml b/Habitica/res/layout/dialog_purchase_content_item.xml index c910de3c16..7c23899e5f 100644 --- a/Habitica/res/layout/dialog_purchase_content_item.xml +++ b/Habitica/res/layout/dialog_purchase_content_item.xml @@ -63,4 +63,4 @@ android:layout_marginTop="20dp" android:gravity="center" style="@style/Caption2"/> - \ No newline at end of file + diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index eb23b2de3d..5227c62506 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -656,7 +656,9 @@ You already have all equipment! More will be released during the Grand Galas, near the solstices and equinoxes. Classless This item is only available to a specific class.\nYou can change your class from Settings. + This item is only available to %s.\nOpen Settings to change class. This item is only available to a specific class.\nYou can select a class after level 10. + This item is only available to %s.\nYou can select a class after level 10. You can only purchase gear for your current class Check into Inn Community Guidelines @@ -1520,6 +1522,10 @@ You can try them on by customizing your avatar. Be sure to check back later for next season’s options! "You can try them on by customizing your avatar. " "You can try them on by Equipment. Be sure to check back later for next month’s options! " + Healers + Rogues + Warriors + Mages You diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt index f16eff73b6..82fc647d17 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/AppHeaderView.kt @@ -107,6 +107,19 @@ fun getTranslatedClassName( } } +fun getTranslatedClassNamePlural( + resources: Resources, + className: String?, +): String { + return when (className) { + Stats.HEALER -> resources.getString(R.string.healers) + Stats.ROGUE -> resources.getString(R.string.rogues) + Stats.WARRIOR -> resources.getString(R.string.warriors) + Stats.MAGE -> resources.getString(R.string.mages) + else -> resources.getString(R.string.warriors) + } +} + @Composable fun AppHeaderView( user: Avatar?, diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt index 1dc7ff41fc..6263c6137b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialog.kt @@ -38,6 +38,8 @@ import com.habitrpg.android.habitica.ui.views.CurrencyViews import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper import com.habitrpg.android.habitica.ui.views.SnackbarActivity import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog +import com.habitrpg.android.habitica.ui.views.getTranslatedClassName +import com.habitrpg.android.habitica.ui.views.getTranslatedClassNamePlural import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGemsDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientGoldDialog import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientHourglassesDialog @@ -151,6 +153,19 @@ class PurchaseDialog( } } + val userLvl = user?.stats?.lvl ?: 0 + if (shopItem.habitClass != null && (shopItem.habitClass != "special" || shopItem.pinType == "marketGear") && shopItem.habitClass != "armoire" && user?.stats?.habitClass != shopItem.habitClass) { + val classDisclaimerView = contentView.findViewById(R.id.class_disclaimer_view) + val className = getTranslatedClassNamePlural(context.resources, shopItem.habitClass ?: "") + classDisclaimerView.text = + if (userLvl >= 10) { + context.getString(R.string.class_equipment_shop_dialog_new, className) + } else { + context.getString(R.string.insufficient_level_equipment_dialog_new, className) + } + classDisclaimerView.visibility = View.VISIBLE + } + amountErrorLabel = contentView.findViewById(R.id.amount_error_label) contentView.setItem(shopItem) @@ -204,17 +219,7 @@ class PurchaseDialog( private fun setLimitedTextView() { if (user == null) return - val userLvl = user?.stats?.lvl ?: 0 - if (shopItem.habitClass != null && shopItem.habitClass != "special" && shopItem.habitClass != "armoire" && user?.stats?.habitClass != shopItem.habitClass) { - limitedTextView.text = - if (userLvl >= 10) { - context.getString(R.string.class_equipment_shop_dialog) - } else { - context.getString(R.string.insufficient_level_equipment_dialog) - } - limitedTextView.visibility = View.VISIBLE - limitedTextView.setBackgroundColor(ContextCompat.getColor(context, R.color.inverted_background)) - } else if (shopItem.availableUntil != null) { + if (shopItem.availableUntil != null) { val endDate = shopItem.availableUntil limitedTextViewJob?.cancel() limitedTextViewJob =