修复 房间 "夺宝精灵" 购买弹窗bug
This commit is contained in:
@@ -98,6 +98,7 @@ class FairyViewModel : BaseViewModel() {
|
||||
|
||||
private val _buyDebrisLiveData = MutableLiveData<String?>()
|
||||
val buyDebrisLiveData: LiveData<String?> = _buyDebrisLiveData
|
||||
var firstBuyValue = true
|
||||
|
||||
init {
|
||||
initPrizeInfoList()
|
||||
@@ -553,6 +554,7 @@ class FairyViewModel : BaseViewModel() {
|
||||
initDrawInfo()
|
||||
|
||||
_buyDebrisLiveData.value = result
|
||||
firstBuyValue = false
|
||||
}
|
||||
)
|
||||
}
|
||||
|
@@ -8,10 +8,7 @@ import android.content.pm.ActivityInfo
|
||||
import android.graphics.Path
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
@@ -30,6 +27,7 @@ import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity
|
||||
import com.yizhuan.erban.treasurefairy.dialog.*
|
||||
import com.yizhuan.erban.treasurefairy.view.CustomDrawable
|
||||
import com.yizhuan.erban.ui.webview.FairyDialogWebViewActivity
|
||||
import com.yizhuan.erban.utils.KeyBoardUtils
|
||||
import com.yizhuan.erban.utils.SpannableBuilder
|
||||
import com.yizhuan.xchat_android_core.UriProvider
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel
|
||||
@@ -70,8 +68,6 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
|
||||
|
||||
private var isCheck = false
|
||||
|
||||
private var isSelect = false
|
||||
|
||||
private var mPrice = -1
|
||||
|
||||
companion object {
|
||||
@@ -137,28 +133,26 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
|
||||
setFairyPriceSelect(0)
|
||||
} catch (e: NumberFormatException) {
|
||||
e.printStackTrace()
|
||||
mPrice = -1
|
||||
}
|
||||
}
|
||||
|
||||
binding.tvBuy.setOnClickListener {
|
||||
if (!isSelect) {
|
||||
if (mPrice < 1) {
|
||||
toast("請選擇購買的碎片數量")
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_DEBRIS, 0L)
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
viewModel.buyDebris(
|
||||
mPrice,
|
||||
AuthModel.get().currentUid.toString()
|
||||
)
|
||||
} else {
|
||||
FairyBuyDebrisDialog.newInstance(mPrice).show(context)
|
||||
}
|
||||
} else {
|
||||
FairyBuyDebrisDialog.newInstance(mPrice).show(context)
|
||||
if (TimeUtils.isToday(date)) {
|
||||
viewModel.buyDebris(
|
||||
mPrice,
|
||||
AuthModel.get().currentUid.toString()
|
||||
)
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
FairyBuyDebrisDialog.newInstance(mPrice).show(context)
|
||||
}
|
||||
|
||||
binding.ivMyFairy.setOnClickListener {
|
||||
@@ -292,20 +286,24 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
|
||||
}
|
||||
|
||||
private fun setFairyPriceSelect(pos: Int) {
|
||||
isSelect = true
|
||||
when (pos) {
|
||||
0 -> {
|
||||
binding.viewPrice1.isSelected = false
|
||||
binding.viewPrice2.isSelected = false
|
||||
binding.viewPrice3.isSelected = false
|
||||
binding.ivDebris1.alpha = 0.4f
|
||||
binding.ivDebris2.alpha = 0.4f
|
||||
binding.ivDebris3.alpha = 0.4f
|
||||
binding.tvOne.alpha = 0.4f
|
||||
binding.tvTwo.alpha = 0.4f
|
||||
binding.tvThree.alpha = 0.4f
|
||||
}
|
||||
if (pos == 0) {
|
||||
binding.viewPrice1.isSelected = false
|
||||
binding.viewPrice2.isSelected = false
|
||||
binding.viewPrice3.isSelected = false
|
||||
binding.ivDebris1.alpha = 0.4f
|
||||
binding.ivDebris2.alpha = 0.4f
|
||||
binding.ivDebris3.alpha = 0.4f
|
||||
binding.tvOne.alpha = 0.4f
|
||||
binding.tvTwo.alpha = 0.4f
|
||||
binding.tvThree.alpha = 0.4f
|
||||
return
|
||||
}
|
||||
|
||||
binding.etQuantity.text = null
|
||||
KeyBoardUtils.hideKeyBoard(this, binding.etQuantity)
|
||||
binding.etQuantity.clearFocus()
|
||||
|
||||
when (pos) {
|
||||
1 -> {
|
||||
mPrice = 1
|
||||
binding.viewPrice1.isSelected = true
|
||||
|
@@ -11,6 +11,7 @@ import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.TreasureFairyDialogBuyDebrisBinding
|
||||
import com.yizhuan.erban.treasurefairy.FairyViewModel
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||
import com.yizhuan.xchat_android_library.common.SpConstants
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils
|
||||
@@ -36,11 +37,14 @@ class FairyBuyDebrisDialog : BaseDialog<TreasureFairyDialogBuyDebrisBinding>() {
|
||||
}
|
||||
|
||||
private val num by lazy { requireArguments().getInt("num") }
|
||||
private val price by lazy { AvRoomDataManager.get().mSeizeTreasureSwitchVo?.price ?: 0 }
|
||||
|
||||
private var hadBreakFirstValue = false
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
binding.tvDebrisNum.text = getString(R.string.buy_debris, num)
|
||||
binding.tvPrizeName.text = (num * 100).toString()
|
||||
binding.tvPrizeName.text = (num * price).toString()
|
||||
|
||||
binding.cbPay.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked) {
|
||||
@@ -55,19 +59,20 @@ class FairyBuyDebrisDialog : BaseDialog<TreasureFairyDialogBuyDebrisBinding>() {
|
||||
}
|
||||
|
||||
viewModel.buyDebrisLiveData.observe(this) {
|
||||
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L)
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
ToastUtils.show("購買碎片成功")
|
||||
} else {
|
||||
FairyBuySuccessDialog.newInstance(num).show(context)
|
||||
}
|
||||
} else {
|
||||
FairyBuySuccessDialog.newInstance(num).show(context)
|
||||
if (!viewModel.firstBuyValue && !hadBreakFirstValue) {
|
||||
hadBreakFirstValue = true
|
||||
return@observe
|
||||
}
|
||||
|
||||
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L)
|
||||
if (TimeUtils.isToday(date)) {
|
||||
ToastUtils.show("購買碎片成功")
|
||||
return@observe
|
||||
}
|
||||
|
||||
FairyBuySuccessDialog.newInstance(num).show(context)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -38,6 +38,7 @@ class FairyBuyDebrisModifyQuantityDialog :
|
||||
|
||||
private var num = 0
|
||||
private val price by lazy { AvRoomDataManager.get().mSeizeTreasureSwitchVo?.price ?: 0 }
|
||||
private var hadBreakFirstValue = false
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun init() {
|
||||
@@ -63,6 +64,11 @@ class FairyBuyDebrisModifyQuantityDialog :
|
||||
}
|
||||
|
||||
viewModel.buyDebrisLiveData.observe(this) {
|
||||
if (!viewModel.firstBuyValue && !hadBreakFirstValue) {
|
||||
hadBreakFirstValue = true
|
||||
return@observe
|
||||
}
|
||||
|
||||
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L)
|
||||
if (date != 0L) {
|
||||
if (TimeUtils.isToday(date)) {
|
||||
|
Reference in New Issue
Block a user