Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/dialog/PurchaseOutfitsDialog.kt
梁小江 15ed708853 1:修改道具商城展示用户头像
2:修改房间用户展示的靓号图标展示
2026-01-09 20:15:46 +08:00

201 lines
7.3 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.xscm.modulemain.dialog
import android.app.Dialog
import android.content.Context
import android.content.Intent
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import com.blankj.utilcode.util.ActivityUtils.startActivity
import com.blankj.utilcode.util.ToastUtils
import com.xscm.modulemain.activity.user.activity.RechargeActivity
import com.xscm.modulemain.adapter.PurchaseOutfitsAdapter
import com.xscm.modulemain.databinding.DialogPurchaseOutfitsBinding
import com.xscm.moduleutil.bean.DecorateDetailBean
import com.xscm.moduleutil.bean.PersonaltyListBean
import com.xscm.moduleutil.color.ThemeableDrawableUtils
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import com.xscm.moduleutil.utils.ColorManager
import com.xscm.moduleutil.utils.ImageUtils
import com.xscm.moduleutil.utils.SpUtil
import com.xscm.moduleutil.widget.GiftAnimView
import io.reactivex.disposables.Disposable
/**
* 项目名称:羽声语音
* 时间2026/1/4 9:36
* 用途:装饰详情
*/
class PurchaseOutfitsDialog(context: Context) :
Dialog(context, com.xscm.moduleutil.R.style.BaseDialogStyleH) {
private var mBinding: DialogPurchaseOutfitsBinding =
DialogPurchaseOutfitsBinding.inflate(LayoutInflater.from(context))
var did: String = ""
var personaltyListBean: PersonaltyListBean? = null
var adapter: PurchaseOutfitsAdapter = PurchaseOutfitsAdapter()
private var mSelectedPriceBean: DecorateDetailBean.PriceListBean? = null
private var mCurrentBuyCount: String? = "1"
var imageBg2: GiftAnimView? = null
init {
setContentView(mBinding.root)
setupWindow()
}
private fun setupViews() {
RetrofitClient.getInstance()
.getDecorateDetail(did, object : BaseObserver<DecorateDetailBean>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: DecorateDetailBean) {
if (t != null && t.decorate != null && t.userInfo != null) {
mBinding.tvRewardGift.text = t.userInfo!!.userCoin.toString()
mBinding.tvOutfitsN.text = t.decorate!!.title
// 2. 初始化RecyclerView
mBinding.rvOutfits.layoutManager = LinearLayoutManager(context)
val adapterDataList = t.convertToAdapterData(t.decorate, 0)
mBinding.rvOutfits.adapter = adapter
adapter.setData(
adapterDataList as MutableList<DecorateDetailBean.DecorateAdapterItem>,
t.decorate!!.priceList.isEmpty()
)
} else {
dismiss()
}
}
})
}
fun show(item: PersonaltyListBean?) {
personaltyListBean = item
did = item?.did.toString()
super.show()
initView()
setupViews()
}
private fun setupWindow() {
val window = window ?: return
window.setGravity(Gravity.BOTTOM)
window.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
)
window.setBackgroundDrawableResource(android.R.color.transparent)
val params = window.attributes
params.windowAnimations = com.xscm.moduleutil.R.style.BaseDialogStyleH
window.attributes = params
}
fun initView() {
setCancelable(true)
setCanceledOnTouchOutside(true)
ThemeableDrawableUtils.setThemeableRoundedBackground(
mBinding.tvOutfitsQd,
ColorManager.getInstance().primaryColorInt,
53
)
mBinding.tvOutfitsQd.setTextColor(ColorManager.getInstance().buttonColorInt)
imageBg2 = GiftAnimView(context)
val parentLayout = mBinding.ccl.parent as ViewGroup // 或者其他合适的父布局
parentLayout.post {
val parentWidth = parentLayout.width
val parentHeight = parentLayout.height
imageBg2!!.layoutParams = ViewGroup.LayoutParams(parentWidth, parentHeight)
}
imageBg2!!.visibility = View.GONE
parentLayout.addView(imageBg2)
// 设置确认按钮点击事件
mBinding.tvOutfitsQd.setOnClickListener {
RetrofitClient.getInstance().payDecorate(
did,
mSelectedPriceBean?.day.toString(),
mCurrentBuyCount,
object : BaseObserver<String>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: String) {
ToastUtils.showLong("购买成功")
dismiss()
}
});
}
mBinding.cz.setOnClickListener {
//充值
startActivity(Intent(context, RechargeActivity::class.java))
}
if (personaltyListBean != null) {
if (personaltyListBean?.type == 12) {
mBinding.ivOutfits.visibility = View.GONE
mBinding.imJsk.visibility = View.VISIBLE
mBinding.imageHeadPortrait.visibility= View.GONE
mBinding.imQp.visibility=View.GONE
ImageUtils.loadHead(personaltyListBean?.base_image, mBinding.imJsk)
}else if (personaltyListBean?.type == 9) {
mBinding.ivOutfits.visibility = View.GONE
mBinding.imJsk.visibility = View.GONE
mBinding.imageHeadPortrait.visibility= View.GONE
mBinding.imQp.visibility=View.VISIBLE
ImageUtils.loadHead(personaltyListBean?.base_image, mBinding.imQp)
} else {
mBinding.ivOutfits.visibility = View.VISIBLE
mBinding.imJsk.visibility = View.GONE
mBinding.imQp.visibility=View.GONE
ImageUtils.loadHead(SpUtil.getUserInfo().avatar, mBinding.ivOutfits)
if (personaltyListBean?.type == 1) {
mBinding.imageHeadPortrait.visibility= View.VISIBLE
imageBg2!!.visibility = View.GONE
mBinding.imageHeadPortrait.stopAll()
mBinding.imageHeadPortrait.setSource(personaltyListBean?.play_image, 1)
}else if (personaltyListBean?.type == 2) {
mBinding.imageHeadPortrait.visibility= View.GONE
imageBg2!!.visibility = View.VISIBLE
imageBg2!!.previewEffectWith(personaltyListBean?.play_image)
}
}
mBinding.tvOutfitsName.text = personaltyListBean?.title
}
adapter.setOnDurationOptionSelectedListener(object :
PurchaseOutfitsAdapter.OnDurationOptionSelectedListener {
override fun onDurationSelected(
selectedPos: Int,
selectedPriceItem: DecorateDetailBean.PriceListBean,
allPriceOptions: List<DecorateDetailBean.PriceListBean>,
) {
mSelectedPriceBean = selectedPriceItem
}
override fun onBuyCountChange(count: Int) {
mCurrentBuyCount = count.toString()
}
})
}
}