房间 "夺宝精灵" 购买碎片 成功弹窗显示问题

This commit is contained in:
wzq
2023-10-12 18:30:04 +08:00
parent d0dc4cab49
commit 32814780c2
5 changed files with 31 additions and 45 deletions

View File

@@ -10,7 +10,19 @@ import com.yizhuan.erban.treasurefairy.event.UpdateDataEvent
import com.yizhuan.erban.treasurefairy.view.MyFairyItemView
import com.yizhuan.xchat_android_core.bean.response.ListResult
import com.yizhuan.xchat_android_core.gift.bean.SimpleUserInfo
import com.yizhuan.xchat_android_core.treasurefairy.*
import com.yizhuan.xchat_android_core.treasurefairy.Compound
import com.yizhuan.xchat_android_core.treasurefairy.DrawInfo
import com.yizhuan.xchat_android_core.treasurefairy.ExchangeGiftInfo
import com.yizhuan.xchat_android_core.treasurefairy.FairyInfo
import com.yizhuan.xchat_android_core.treasurefairy.FairyResolveParam
import com.yizhuan.xchat_android_core.treasurefairy.FairyTestParam
import com.yizhuan.xchat_android_core.treasurefairy.ForestInfo
import com.yizhuan.xchat_android_core.treasurefairy.MyFairyInfo
import com.yizhuan.xchat_android_core.treasurefairy.PrizeInfo
import com.yizhuan.xchat_android_core.treasurefairy.ResolveInfo
import com.yizhuan.xchat_android_core.treasurefairy.SendFairyInfo
import com.yizhuan.xchat_android_core.treasurefairy.TestFairyRecordInfo
import com.yizhuan.xchat_android_core.treasurefairy.TreasureFairyModel
import com.yizhuan.xchat_android_core.utils.net.ServerException
import com.yizhuan.xchat_android_core.utils.toast
import org.greenrobot.eventbus.EventBus
@@ -95,9 +107,8 @@ class FairyViewModel : BaseViewModel() {
val exchangeDebrisRecordLiveData: LiveData<ListResult<ExchangeGiftInfo>> =
_exchangeDebrisRecordLiveData
private val _buyDebrisLiveData = MutableLiveData<String?>()
val buyDebrisLiveData: LiveData<String?> = _buyDebrisLiveData
var firstBuyValue = true
private val _buyDebrisLiveData = MutableLiveData<Event<Int>>()
val buyDebrisLiveData: LiveData<Event<Int>> = _buyDebrisLiveData
init {
initPrizeInfoList()
@@ -544,7 +555,7 @@ class FairyViewModel : BaseViewModel() {
fun buyDebris(num: Int, uid: String) {
safeLaunch(
block = {
val result = TreasureFairyModel.buyDebris(num, uid)
TreasureFairyModel.buyDebris(num, uid)
_drawInfoLiveData.value?.apply {
this.drawTicketNum = this.drawTicketNum + num
@@ -553,8 +564,7 @@ class FairyViewModel : BaseViewModel() {
initDrawInfo()
_buyDebrisLiveData.value = result
firstBuyValue = false
_buyDebrisLiveData.value = Event(num)
}
)
}

View File

@@ -18,6 +18,7 @@ import androidx.core.content.ContextCompat
import androidx.core.graphics.toColorInt
import androidx.core.widget.doAfterTextChanged
import com.alibaba.fastjson.JSON
import com.hjq.toast.ToastUtils
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder
import com.yizhuan.erban.R
@@ -157,7 +158,14 @@ class HomeFairyActivity : BaseViewBindingActivity<TreasureFairyDialogHomeBinding
}
viewModel.buyDebrisLiveData.observe(this) {
toast("購買碎片成功")
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L)
if (TimeUtils.isToday(date)) {
ToastUtils.show("購買碎片成功")
return@observe
}
FairyBuySuccessDialog.newInstance(it.peekContent()).show(this)
}
binding.ivMyFairy.setOnClickListener {

View File

@@ -5,7 +5,6 @@ import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
import androidx.fragment.app.activityViewModels
import com.hjq.toast.ToastUtils
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.TreasureFairyDialogBuyDebrisBinding
@@ -14,7 +13,6 @@ 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
/**
* 购买碎片
@@ -39,7 +37,6 @@ 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() {
@@ -59,20 +56,9 @@ class FairyBuyDebrisDialog : BaseDialog<TreasureFairyDialogBuyDebrisBinding>() {
}
viewModel.buyDebrisLiveData.observe(this) {
if (!viewModel.firstBuyValue && !hadBreakFirstValue) {
hadBreakFirstValue = true
return@observe
}
val date = SPUtils.getLong(SpConstants.FAIRY_BUY_SUCCESS, 0L)
if (TimeUtils.isToday(date)) {
ToastUtils.show("購買碎片成功")
it.getContentIfNotHandled()?.let {
dismissAllowingStateLoss()
return@observe
}
FairyBuySuccessDialog.newInstance(num).show(context)
dismissAllowingStateLoss()
}
}

View File

@@ -6,7 +6,6 @@ import android.view.Gravity
import android.view.WindowManager
import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.activityViewModels
import com.hjq.toast.ToastUtils
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.TreasureFairyDialogBuyDebrisModifyQuantityBinding
@@ -15,10 +14,7 @@ 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_core.utils.StringUtils
import com.yizhuan.xchat_android_library.common.SpConstants
import com.yizhuan.xchat_android_library.common.util.SPUtils
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
import com.yizhuan.xchat_android_library.utils.TimeUtils
/**
* 购买碎片
@@ -43,7 +39,6 @@ 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() {
@@ -97,22 +92,9 @@ class FairyBuyDebrisModifyQuantityDialog :
}
viewModel.buyDebrisLiveData.observe(this) {
if (!viewModel.firstBuyValue && !hadBreakFirstValue) {
hadBreakFirstValue = true
return@observe
it.getContentIfNotHandled()?.let {
dismissAllowingStateLoss()
}
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)
}
dismissAllowingStateLoss()
}
}

View File

@@ -34,7 +34,7 @@ class HomePrizeDialog : BaseDialog<TreasureFairyDialogHomePrizeBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding?.rootView?.setOnClickListener {
binding.rootView.setOnClickListener {
dismissAllowingStateLoss()
}
val prizeInfoList = viewModel.resultLiveData.value?.peekContent()
@@ -43,7 +43,7 @@ class HomePrizeDialog : BaseDialog<TreasureFairyDialogHomePrizeBinding>() {
prizeAdapter = HomePrizeAdapter(isSingle)
rvDelegate = RVDelegate.Builder<PrizeInfo>()
.setAdapter(prizeAdapter)
.setRecyclerView(binding?.recyclerView)
.setRecyclerView(binding.recyclerView)
.setLayoutManager(
if (isSingle) {
LinearLayoutManager(context)