Equip background dialog added

This commit is contained in:
Hafiz 2022-05-15 01:03:39 -04:00
parent 3ab122883c
commit 491e7f33f9
5 changed files with 40 additions and 4 deletions

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/colorContentBackground">
<com.habitrpg.android.habitica.ui.AvatarView
android:id="@+id/avatar_view"
android:layout_centerHorizontal="true"
android:layout_width="@dimen/avatar_width"
android:layout_height="@dimen/avatar_height"
android:layout_marginTop="24dp"/>
</RelativeLayout>

View file

@ -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

View file

@ -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<Customization> = 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<AvatarView>(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)
}
}
}
}

View file

@ -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()
}

View file

@ -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)
}
}