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