diff --git a/Habitica/res/layout/purchased_equip_dialog.xml b/Habitica/res/layout/purchased_equip_dialog.xml
new file mode 100644
index 000000000..7ed05b253
--- /dev/null
+++ b/Habitica/res/layout/purchased_equip_dialog.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt
index eca5d87f3..46e94b13a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.kt
@@ -437,7 +437,7 @@ class AvatarView : FrameLayout {
}
}
- fun setAvatarWithBackgroundForPurchase(avatar: Avatar, backgroundForPurchase: String?) {
+ fun setAvatarWithSelectedBackground(avatar: Avatar, backgroundForPurchase: String?) {
val oldUser = this.avatar
this.avatar = avatar
this.backgroundForPurchase = backgroundForPurchase
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt
index a49368688..5cd22a91b 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt
@@ -12,9 +12,11 @@ import com.habitrpg.android.habitica.databinding.CustomizationGridItemBinding
import com.habitrpg.android.habitica.databinding.CustomizationSectionFooterBinding
import com.habitrpg.android.habitica.databinding.CustomizationSectionHeaderBinding
import com.habitrpg.android.habitica.helpers.MainNavigationController
+import com.habitrpg.android.habitica.models.Avatar
import com.habitrpg.android.habitica.models.inventory.Customization
import com.habitrpg.android.habitica.models.inventory.CustomizationSet
import com.habitrpg.android.habitica.models.shops.ShopItem
+import com.habitrpg.android.habitica.ui.AvatarView
import com.habitrpg.android.habitica.ui.helpers.loadImage
import com.habitrpg.android.habitica.ui.views.dialogs.HabiticaAlertDialog
import com.habitrpg.android.habitica.ui.views.shops.PurchaseDialog
@@ -27,6 +29,7 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
var userSize: String? = null
var hairColor: String? = null
+ var avatar: Avatar? = null
var customizationType: String? = null
var gemBalance: Int = 0
var unsortedCustomizations: List = ArrayList()
@@ -194,8 +197,25 @@ class CustomizationRecyclerViewAdapter() : androidx.recyclerview.widget.Recycler
return
}
- customization?.let {
- selectCustomizationEvents.onNext(it)
+ if (customization?.type == "background" && avatar != null){
+ val alert = HabiticaAlertDialog(context = itemView.context)
+ val purchasedCustomizationView: View = LayoutInflater.from(itemView.context).inflate(R.layout.purchased_equip_dialog, null)
+ purchasedCustomizationView.findViewById(R.id.avatar_view).setAvatarWithSelectedBackground(avatar!!, customization?.let { ShopItem.fromCustomization(it, userSize, hairColor).imageName })
+ alert.setAdditionalContentView(purchasedCustomizationView)
+ alert.addButton(R.string.equip, true) { _, _ ->
+ customization?.let {
+ selectCustomizationEvents.onNext(it)
+ }
+ }
+ alert.addButton(R.string.close, false) { _, _ ->
+ alert.dismiss()
+ }
+ alert.show()
+ } else {
+ customization?.let {
+ selectCustomizationEvents.onNext(it)
+ }
+
}
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
index 11cc42bd3..532c2c208 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt
@@ -221,6 +221,7 @@ class AvatarCustomizationFragment :
this.adapter.userSize = user.preferences?.size
this.adapter.hairColor = user.preferences?.hair?.color
this.adapter.gemBalance = user.gemCount
+ this.adapter.avatar = user
adapter.notifyDataSetChanged()
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
index 0c5de89b7..702ad132d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/shops/PurchaseDialogBackgroundContent.kt
@@ -21,6 +21,6 @@ class PurchaseDialogBackgroundContent(context: Context) : PurchaseDialogContent(
}
fun setAvatarWithBackgroundForPurchase(avatar: Avatar, item: ShopItem) {
- binding.avatarView.setAvatarWithBackgroundForPurchase(avatar, item.imageName)
+ binding.avatarView.setAvatarWithSelectedBackground(avatar, item.imageName)
}
}