diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index d639cfde4..a16a3a34b 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -762,4 +762,6 @@ Want to join a party? Open website to create party ID copied to clipboard + You have bought all the Gems you can this month. More become available within the first three days of each month. Thanks for subscribing! + Monthly Gem Cap Reached diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGoldDialog.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGoldDialog.java index 6f4f5c8fd..380d9f136 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGoldDialog.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientGoldDialog.java @@ -11,5 +11,6 @@ public class InsufficientGoldDialog extends InsufficientCurrencyDialog { imageView.setImageBitmap(HabiticaIconsHelper.imageOfGoldReward()); textView.setText(context.getString(R.string.insufficientGold)); + setTitle(R.string.insufficientSubscriberGemsTitle); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientSubscriberGemsDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientSubscriberGemsDialog.kt new file mode 100644 index 000000000..cdc884817 --- /dev/null +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/insufficientCurrency/InsufficientSubscriberGemsDialog.kt @@ -0,0 +1,14 @@ +package com.habitrpg.android.habitica.ui.views.insufficientCurrency + +import android.content.Context + +import com.habitrpg.android.habitica.R +import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper + +class InsufficientSubscriberGemsDialog(context: Context) : InsufficientCurrencyDialog(context) { + init { + + imageView.setImageBitmap(HabiticaIconsHelper.imageOfGem_36()) + textView.text = context.getString(R.string.insufficientSubscriberGems) + } +} 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 62262ab19..538581766 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 @@ -32,6 +32,7 @@ import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar 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 +import com.habitrpg.android.habitica.ui.views.insufficientCurrency.InsufficientSubscriberGemsDialog import org.greenrobot.eventbus.EventBus import rx.Observable import rx.functions.Action1 @@ -164,7 +165,11 @@ class PurchaseDialog(context: Context, component: AppComponent, val item: ShopIt limitedTextView.text = context.getString(R.string.gems_left_nomax, gemsLeft) } limitedTextView.visibility = View.VISIBLE - limitedTextView.setBackgroundColor(ContextCompat.getColor(context, R.color.green_10)) + if (gemsLeft == 0) { + limitedTextView.setBackgroundColor(ContextCompat.getColor(context, R.color.orange_10)) + } else { + limitedTextView.setBackgroundColor(ContextCompat.getColor(context, R.color.green_10)) + } } if (!shopItem.canAfford(user)) { @@ -208,7 +213,8 @@ class PurchaseDialog(context: Context, component: AppComponent, val item: ShopIt if (shopItem.locked) { return } - if (shopItem.canAfford(user)) { + val gemsLeft = if (shopItem.limitedNumberLeft != null) shopItem.limitedNumberLeft else 0 + if ((gemsLeft == 0 && shopItem.purchaseType == "gems") || shopItem.canAfford(user)) { val observable: Observable if (shopIdentifier != null && shopIdentifier == Shop.TIME_TRAVELERS_SHOP || "mystery_set" == shopItem.purchaseType) { observable = if (shopItem.purchaseType == "gear") { @@ -261,6 +267,7 @@ class PurchaseDialog(context: Context, component: AppComponent, val item: ShopIt } } else { when { + "gems" == shopItem.purchaseType -> InsufficientSubscriberGemsDialog(context) "gold" == shopItem.currency -> InsufficientGoldDialog(context) "gems" == shopItem.currency -> InsufficientGemsDialog(context) "hourglasses" == shopItem.currency -> InsufficientHourglassesDialog(context)