diff --git a/Habitica/res/layout/dialog_purchase_content_gear.xml b/Habitica/res/layout/dialog_purchase_content_gear.xml
index 5989bc4e2..850d3c4a2 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 c910de3c1..7c23899e5 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 eb23b2de3..5227c6250 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 f16eff73b..82fc647d1 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 1dc7ff41f..6263c6137 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 =