diff --git a/Habitica/res/drawable-hdpi/fall_gems_21.png b/Habitica/res/drawable-hdpi/fall_gems_21.png
new file mode 100644
index 000000000..f766d9486
Binary files /dev/null and b/Habitica/res/drawable-hdpi/fall_gems_21.png differ
diff --git a/Habitica/res/drawable-hdpi/fall_gems_4.png b/Habitica/res/drawable-hdpi/fall_gems_4.png
new file mode 100644
index 000000000..8c09f0cd5
Binary files /dev/null and b/Habitica/res/drawable-hdpi/fall_gems_4.png differ
diff --git a/Habitica/res/drawable-hdpi/fall_gems_42.png b/Habitica/res/drawable-hdpi/fall_gems_42.png
new file mode 100644
index 000000000..7025fcba3
Binary files /dev/null and b/Habitica/res/drawable-hdpi/fall_gems_42.png differ
diff --git a/Habitica/res/drawable-hdpi/fall_gems_84.png b/Habitica/res/drawable-hdpi/fall_gems_84.png
new file mode 100644
index 000000000..e5409b7fc
Binary files /dev/null and b/Habitica/res/drawable-hdpi/fall_gems_84.png differ
diff --git a/Habitica/res/drawable-hdpi/spooky_gems_21.png b/Habitica/res/drawable-hdpi/spooky_gems_21.png
new file mode 100644
index 000000000..3a17e23c9
Binary files /dev/null and b/Habitica/res/drawable-hdpi/spooky_gems_21.png differ
diff --git a/Habitica/res/drawable-hdpi/spooky_gems_4.png b/Habitica/res/drawable-hdpi/spooky_gems_4.png
new file mode 100644
index 000000000..479663474
Binary files /dev/null and b/Habitica/res/drawable-hdpi/spooky_gems_4.png differ
diff --git a/Habitica/res/drawable-hdpi/spooky_gems_42.png b/Habitica/res/drawable-hdpi/spooky_gems_42.png
new file mode 100644
index 000000000..8434f2cc5
Binary files /dev/null and b/Habitica/res/drawable-hdpi/spooky_gems_42.png differ
diff --git a/Habitica/res/drawable-hdpi/spooky_gems_84.png b/Habitica/res/drawable-hdpi/spooky_gems_84.png
new file mode 100644
index 000000000..fc52ff518
Binary files /dev/null and b/Habitica/res/drawable-hdpi/spooky_gems_84.png differ
diff --git a/Habitica/res/drawable-xhdpi/fall_gems_21.png b/Habitica/res/drawable-xhdpi/fall_gems_21.png
new file mode 100644
index 000000000..69b81a672
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/fall_gems_21.png differ
diff --git a/Habitica/res/drawable-xhdpi/fall_gems_4.png b/Habitica/res/drawable-xhdpi/fall_gems_4.png
new file mode 100644
index 000000000..cad6e540d
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/fall_gems_4.png differ
diff --git a/Habitica/res/drawable-xhdpi/fall_gems_42.png b/Habitica/res/drawable-xhdpi/fall_gems_42.png
new file mode 100644
index 000000000..02f8c8343
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/fall_gems_42.png differ
diff --git a/Habitica/res/drawable-xhdpi/fall_gems_84.png b/Habitica/res/drawable-xhdpi/fall_gems_84.png
new file mode 100644
index 000000000..97768873e
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/fall_gems_84.png differ
diff --git a/Habitica/res/drawable-xhdpi/spooky_gems_21.png b/Habitica/res/drawable-xhdpi/spooky_gems_21.png
new file mode 100644
index 000000000..c9ff5ba6b
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/spooky_gems_21.png differ
diff --git a/Habitica/res/drawable-xhdpi/spooky_gems_4.png b/Habitica/res/drawable-xhdpi/spooky_gems_4.png
new file mode 100644
index 000000000..81241006e
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/spooky_gems_4.png differ
diff --git a/Habitica/res/drawable-xhdpi/spooky_gems_42.png b/Habitica/res/drawable-xhdpi/spooky_gems_42.png
new file mode 100644
index 000000000..3bce039f5
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/spooky_gems_42.png differ
diff --git a/Habitica/res/drawable-xhdpi/spooky_gems_84.png b/Habitica/res/drawable-xhdpi/spooky_gems_84.png
new file mode 100644
index 000000000..a8d3a378e
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/spooky_gems_84.png differ
diff --git a/Habitica/res/drawable-xxhdpi/fall_gems_21.png b/Habitica/res/drawable-xxhdpi/fall_gems_21.png
new file mode 100644
index 000000000..2e59c48c6
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/fall_gems_21.png differ
diff --git a/Habitica/res/drawable-xxhdpi/fall_gems_4.png b/Habitica/res/drawable-xxhdpi/fall_gems_4.png
new file mode 100644
index 000000000..3b54a666d
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/fall_gems_4.png differ
diff --git a/Habitica/res/drawable-xxhdpi/fall_gems_42.png b/Habitica/res/drawable-xxhdpi/fall_gems_42.png
new file mode 100644
index 000000000..8dd7c1aa8
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/fall_gems_42.png differ
diff --git a/Habitica/res/drawable-xxhdpi/fall_gems_84.png b/Habitica/res/drawable-xxhdpi/fall_gems_84.png
new file mode 100644
index 000000000..8757d1300
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/fall_gems_84.png differ
diff --git a/Habitica/res/drawable-xxhdpi/spooky_gems_21.png b/Habitica/res/drawable-xxhdpi/spooky_gems_21.png
new file mode 100644
index 000000000..701b30ff9
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/spooky_gems_21.png differ
diff --git a/Habitica/res/drawable-xxhdpi/spooky_gems_4.png b/Habitica/res/drawable-xxhdpi/spooky_gems_4.png
new file mode 100644
index 000000000..6704caf80
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/spooky_gems_4.png differ
diff --git a/Habitica/res/drawable-xxhdpi/spooky_gems_42.png b/Habitica/res/drawable-xxhdpi/spooky_gems_42.png
new file mode 100644
index 000000000..815b74f08
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/spooky_gems_42.png differ
diff --git a/Habitica/res/drawable-xxhdpi/spooky_gems_84.png b/Habitica/res/drawable-xxhdpi/spooky_gems_84.png
new file mode 100644
index 000000000..ab73f510c
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/spooky_gems_84.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/fall_gems_21.png b/Habitica/res/drawable-xxxhdpi/fall_gems_21.png
new file mode 100644
index 000000000..d086b585a
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/fall_gems_21.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/fall_gems_4.png b/Habitica/res/drawable-xxxhdpi/fall_gems_4.png
new file mode 100644
index 000000000..b7b33acd4
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/fall_gems_4.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/fall_gems_42.png b/Habitica/res/drawable-xxxhdpi/fall_gems_42.png
new file mode 100644
index 000000000..fc13cf769
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/fall_gems_42.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/fall_gems_84.png b/Habitica/res/drawable-xxxhdpi/fall_gems_84.png
new file mode 100644
index 000000000..0ec58519d
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/fall_gems_84.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/spooky_gems_21.png b/Habitica/res/drawable-xxxhdpi/spooky_gems_21.png
new file mode 100644
index 000000000..939b6149a
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/spooky_gems_21.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/spooky_gems_4.png b/Habitica/res/drawable-xxxhdpi/spooky_gems_4.png
new file mode 100644
index 000000000..428e4a0d8
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/spooky_gems_4.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/spooky_gems_42.png b/Habitica/res/drawable-xxxhdpi/spooky_gems_42.png
new file mode 100644
index 000000000..527bce18f
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/spooky_gems_42.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/spooky_gems_84.png b/Habitica/res/drawable-xxxhdpi/spooky_gems_84.png
new file mode 100644
index 000000000..e5ddaf737
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/spooky_gems_84.png differ
diff --git a/Habitica/res/layout/fragment_gem_purchase.xml b/Habitica/res/layout/fragment_gem_purchase.xml
index 1333f53b4..b071f1d1e 100644
--- a/Habitica/res/layout/fragment_gem_purchase.xml
+++ b/Habitica/res/layout/fragment_gem_purchase.xml
@@ -17,6 +17,7 @@
android:background="@drawable/g1g1_box"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
+ android:layout_marginBottom="@dimen/spacing_large"
android:clipChildren="true"
android:clipToPadding="true"
android:clickable="true"
@@ -29,14 +30,16 @@
android:scaleType="center"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
- android:layout_alignParentBottom="false"/>
+ android:layout_alignParentBottom="false"
+ android:importantForAccessibility="no"/>
+ android:layout_alignParentEnd="true"
+ android:importantForAccessibility="no"/>
"5 GEMS"
- 21 -> "30 GEMS"
- 42 -> "60 GEMS"
- 84 -> "125 GEMS"
+ when (regularAmount) {
+ 4 -> {
+ binding.gemAmount.text = "5"
+ binding.gemImage.setImageResource(R.drawable.fall_gems_4)
+ }
+ 21 -> {
+ binding.gemAmount.text = "30"
+ binding.gemImage.setImageResource(R.drawable.fall_gems_21)
+ }
+ 42 -> {
+ binding.gemAmount.text = "60"
+ binding.gemImage.setImageResource(R.drawable.fall_gems_42)
+ }
+ 84 -> {
+ binding.gemAmount.text = "125"
+ binding.gemImage.setImageResource(R.drawable.fall_gems_84)
+ }
else -> regularAmount.toString()
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt
index 836614ade..4ebcea8fb 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/promotions/SpookyExtraGemsHabiticaPromotion.kt
@@ -1,5 +1,6 @@
package com.habitrpg.android.habitica.models.promotions
+import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.Drawable
@@ -88,18 +89,33 @@ class SpookyExtraGemsHabiticaPromotion(startDate: Date?, endDate: Date?) : Habit
override fun configurePurchaseBanner(binding: FragmentSubscriptionBinding) {
}
+ @SuppressLint("SetTextI18n")
override fun configureGemView(binding: PurchaseGemViewBinding, regularAmount: Int) {
val context = binding.root.context
binding.root.background = promoBackgroundDrawable(context)
binding.purchaseButton.background = buttonDrawable(context)
+ binding.purchaseButton.setTextColor(ContextCompat.getColor(context, R.color.white))
binding.gemAmount.setTextColor(Color.parseColor("#FEE2B6"))
+ binding.gemLabel.setTextColor(Color.parseColor("#FEE2B6"))
binding.footerTextView.visibility = View.VISIBLE
binding.footerTextView.text = context.getString(R.string.usually_x_gems, regularAmount)
- binding.gemAmount.text = when (regularAmount) {
- 4 -> "5 GEMS"
- 21 -> "30 GEMS"
- 42 -> "60 GEMS"
- 84 -> "125 GEMS"
+ when (regularAmount) {
+ 4 -> {
+ binding.gemAmount.text = "5"
+ binding.gemImage.setImageResource(R.drawable.spooky_gems_4)
+ }
+ 21 -> {
+ binding.gemAmount.text = "30"
+ binding.gemImage.setImageResource(R.drawable.spooky_gems_21)
+ }
+ 42 -> {
+ binding.gemAmount.text = "60"
+ binding.gemImage.setImageResource(R.drawable.spooky_gems_42)
+ }
+ 84 -> {
+ binding.gemAmount.text = "125"
+ binding.gemImage.setImageResource(R.drawable.spooky_gems_84)
+ }
else -> regularAmount.toString()
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt
index 898acb9f9..7682a4ce8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/shops/ShopFragment.kt
@@ -27,6 +27,7 @@ import com.habitrpg.android.habitica.ui.viewmodels.MainUserViewModel
import com.habitrpg.android.habitica.ui.views.CurrencyViews
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.common.habitica.helpers.RecyclerViewState
+import io.reactivex.rxjava3.kotlin.combineLatest
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch
import javax.inject.Inject
@@ -270,19 +271,19 @@ open class ShopFragment : BaseMainFragment()
private fun loadMarketGear() {
compositeSubscription.add(
inventoryRepository.retrieveMarketGear()
- .zipWith(
- inventoryRepository.getOwnedEquipment().map { equipment -> equipment.map { it.key } },
- { shop, equipment ->
- for (category in shop.categories) {
- val items = category.items.asSequence().filter {
- !equipment.contains(it.key)
- }.sortedBy { it.locked }.toList()
- category.items.clear()
- category.items.addAll(items)
- }
- shop
- }
+ .combineLatest(
+ inventoryRepository.getOwnedEquipment().map { equipment -> equipment.map { it.key } }
)
+ .map { (shop, equipment) ->
+ for (category in shop.categories) {
+ val items = category.items.asSequence().filter {
+ !equipment.contains(it.key)
+ }.sortedBy { it.locked }.toList()
+ category.items.clear()
+ category.items.addAll(items)
+ }
+ shop
+ }
.subscribe(
{
this.gearCategories = it.categories
diff --git a/fastlane/README.md b/fastlane/README.md
index 9db559d7a..8df76ccf8 100644
--- a/fastlane/README.md
+++ b/fastlane/README.md
@@ -23,6 +23,14 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
Runs all the tests
+### android staffapk
+
+```sh
+[bundle exec] fastlane android staffapk
+```
+
+Build Staff APK for sara
+
### android staff
```sh
diff --git a/version.properties b/version.properties
index 91578a429..cbb87ac43 100644
--- a/version.properties
+++ b/version.properties
@@ -1,2 +1,2 @@
-NAME=4.0.2
-CODE=4510
+NAME=4.0.3
+CODE=4521
\ No newline at end of file