修复 寻爱bug

This commit is contained in:
wzq
2023-09-26 11:34:05 +08:00
parent 05d391bd1b
commit f43afae374
5 changed files with 51 additions and 94 deletions

View File

@@ -1,4 +0,0 @@
package com.yizhuan.erban.event;
public class BoxLoveEvent {
}

View File

@@ -39,7 +39,6 @@ import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseBindingActivity;
import com.yizhuan.erban.databinding.ActivityTreasureBoxBinding;
import com.yizhuan.erban.event.BoxLoveEvent;
import com.yizhuan.erban.treasure_box.widget.dialog.BoxLoveLackDialog;
import com.yizhuan.erban.treasure_box.widget.dialog.BoxMoreDialog;
import com.yizhuan.erban.treasure_box.widget.dialog.BuyLoveDialog;
@@ -160,6 +159,12 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
public void afterTextChanged(Editable s) {
try {
mNum = Integer.parseInt(s.toString());
if (mNum > 200) {
mNum = 200;
mBinding.edInputNum.setText(String.valueOf(mNum));
mBinding.edInputNum.setSelection(mBinding.edInputNum.getText().length());
SingleToastUtil.showToast(ResUtil.getString(R.string.treasure_box_activity_treasureboxactivity_01));
}
setBoxPriceSelect(0);
} catch (NumberFormatException e) {
e.printStackTrace();
@@ -186,7 +191,7 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
.doOnError(throwable -> toast(throwable.getMessage()))
.subscribe(userTicketInfo -> {
ToastUtils.show("購買成功");
loadUserTicket();
onTickerInfoUpdated(userTicketInfo);
});
} else {
BuyLoveDialog.Companion.newInstance(mNum, (int) userTicketInfo.getTicketPrice() * mNum).show(this);
@@ -203,23 +208,18 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
}
/**
* 购买爱心回调
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onBoxLoveEvent(BoxLoveEvent event) {
loadUserTicket();
}
@SuppressLint("CheckResult")
private void loadUserTicket() {
BoxModel.get()
.getUserTicket()
.compose(bindToLifecycle())
.subscribe(userTicketInfo -> {
.subscribe(userTicketInfo -> onTickerInfoUpdated(userTicketInfo));
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onTickerInfoUpdated(UserTicketInfo userTicketInfo) {
this.userTicketInfo = userTicketInfo;
mBinding.tvBoxNum.setText(String.valueOf(userTicketInfo.getTicketNum()));
});
}
private void setBoxPriceSelect(int pos) {
@@ -401,7 +401,7 @@ public class TreasureBoxActivity extends BaseBindingActivity<ActivityTreasureBox
.start();
}
ImageLoadUtils.loadAvatar(prizeInfo.getPicUrl(), ((ImageView) linearLayout.findViewById(R.id.iv_icon)));
ImageLoadUtils.loadAvatar(prizeInfo.getPicUrl(), linearLayout.findViewById(R.id.iv_icon));
((TextView) linearLayout.findViewById(R.id.tv_prize_name)).setText(prizeInfo.getRewardName());
((TextView) linearLayout.findViewById(R.id.tv_diamond)).setText(String.valueOf(prizeInfo.getDiamonds()));
((TextView) linearLayout.findViewById(R.id.tv_prize_num)).setText("x" + prizeInfo.getNum());

View File

@@ -1,7 +1,6 @@
package com.yizhuan.erban.treasure_box.widget.dialog
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.os.Bundle
import android.text.Editable
import android.view.Gravity
@@ -10,7 +9,6 @@ import com.hjq.toast.ToastUtils
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.TreasureBoxDialogLoveLackBinding
import com.yizhuan.erban.event.BoxLoveEvent
import com.yizhuan.erban.treasure_box.widget.dialog.TreasureBoxDialog.Companion.newInstance
import com.yizhuan.treasure_box.bean.UserTicketInfo
import com.yizhuan.treasure_box.model.BoxModel
@@ -35,6 +33,8 @@ class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
override var height = WindowManager.LayoutParams.WRAP_CONTENT
override var gravity = Gravity.CENTER
private var num :Int = 0
companion object {
@JvmStatic
fun newInstance(num: Int, ticketPrice: Int): BoxLoveLackDialog {
@@ -47,11 +47,12 @@ class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
}
}
private val num by lazy { requireArguments().getInt("num") }
private val ticketPrice by lazy { requireArguments().getInt("ticketPrice") }
@SuppressLint("CheckResult", "SetTextI18n")
override fun init() {
num = requireArguments().getInt("num")
binding?.editNum?.setText(num.toString())
binding?.tvPrizeName?.text = (num * ticketPrice).toString()
@@ -74,43 +75,33 @@ class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
}
binding?.tvBuy?.setOnClickListener {
val date = SPUtils.getLong(SpConstants.BOX_BUY_LOVE, 0L)
if (date != 0L) {
if (TimeUtils.isToday(date)) {
BoxModel.get()
.buyTicket(num)
.compose(bindToLifecycle())
.doOnError { dealError(it) }
.subscribe { userTicketInfo: UserTicketInfo ->
dismissAllowingStateLoss()
val date = SPUtils.getLong(SpConstants.BOX_BUY_SUCCESS, 0L)
if (TimeUtils.isToday(date)) {
ToastUtils.show("購買成功")
dismissAllowingStateLoss()
return@subscribe
}
} else {
BuyLoveDialog.newInstance(
binding?.editNum?.text.toString().toInt(),
ticketPrice * binding?.editNum?.text.toString().toInt()
).show(context)
dismissAllowingStateLoss()
}
} else {
BuyLoveDialog.newInstance(
binding?.editNum?.text.toString().toInt(),
ticketPrice * binding?.editNum?.text.toString().toInt()
).show(context)
dismissAllowingStateLoss()
BuyLoveSuccessDialog.newInstance(num).show(context)
EventBus.getDefault().post(userTicketInfo)
}
}
binding?.editNum?.addTextChangedListener(object : TextWatcherWrapper() {
override fun afterTextChanged(editable: Editable) {
var num = StringUtils.toInt(binding?.editNum?.text.toString(), 0)
if (num > 200) {
num = 200
binding?.editNum?.setText(num.toString())
var n = StringUtils.toInt(binding?.editNum?.text.toString(), 0)
if (n > 200) {
n = 200
binding?.editNum?.setText(n.toString())
binding?.editNum?.setSelection(3)
SingleToastUtil.showToast(ResUtil.getString(R.string.treasure_box_activity_treasureboxactivity_01))
}
binding?.tvPrizeName?.text = (num * ticketPrice).toString()
binding?.tvPrizeName?.text = (n * ticketPrice).toString()
num = n
}
})
@@ -138,10 +129,4 @@ class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
SingleToastUtil.showToast(error.message)
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
EventBus.getDefault().post(BoxLoveEvent())
}
}

View File

@@ -1,7 +1,6 @@
package com.yizhuan.erban.treasure_box.widget.dialog
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
@@ -9,7 +8,6 @@ import com.hjq.toast.ToastUtils
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveBinding
import com.yizhuan.erban.event.BoxLoveEvent
import com.yizhuan.treasure_box.bean.UserTicketInfo
import com.yizhuan.treasure_box.model.BoxModel
import com.yizhuan.xchat_android_core.exception.FailReasonException
@@ -62,7 +60,6 @@ class BuyLoveDialog : BaseDialog<TreasureBoxDialogBuyLoveBinding>() {
binding?.tvBuy?.setOnClickListener {
val date = SPUtils.getLong(SpConstants.BOX_BUY_SUCCESS, 0L)
if (date != 0L) {
if (TimeUtils.isToday(date)) {
BoxModel.get()
.buyTicket(num)
@@ -71,8 +68,11 @@ class BuyLoveDialog : BaseDialog<TreasureBoxDialogBuyLoveBinding>() {
.subscribe { userTicketInfo: UserTicketInfo ->
ToastUtils.show("購買成功")
dismissAllowingStateLoss()
EventBus.getDefault().post(userTicketInfo)
}
} else {
return@setOnClickListener
}
BoxModel.get()
.buyTicket(num)
.compose(bindToLifecycle())
@@ -80,17 +80,7 @@ class BuyLoveDialog : BaseDialog<TreasureBoxDialogBuyLoveBinding>() {
.subscribe { userTicketInfo: UserTicketInfo ->
BuyLoveSuccessDialog.newInstance(num).show(context)
dismissAllowingStateLoss()
}
}
} else {
BoxModel.get()
.buyTicket(num)
.compose(bindToLifecycle())
.doOnError { dealError(it) }
.subscribe { userTicketInfo: UserTicketInfo ->
BuyLoveSuccessDialog.newInstance(num).show(context)
dismissAllowingStateLoss()
}
EventBus.getDefault().post(userTicketInfo)
}
}
}
@@ -107,9 +97,4 @@ class BuyLoveDialog : BaseDialog<TreasureBoxDialogBuyLoveBinding>() {
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
EventBus.getDefault().post(BoxLoveEvent())
}
}

View File

@@ -1,7 +1,6 @@
package com.yizhuan.erban.treasure_box.widget.dialog
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.os.Bundle
import android.view.Gravity
import android.view.WindowManager
@@ -9,7 +8,6 @@ import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveBinding
import com.yizhuan.erban.databinding.TreasureBoxDialogBuyLoveSuccessBinding
import com.yizhuan.erban.event.BoxLoveEvent
import com.yizhuan.treasure_box.bean.UserTicketInfo
import com.yizhuan.treasure_box.model.BoxModel
import com.yizhuan.xchat_android_library.common.SpConstants
@@ -53,12 +51,5 @@ class BuyLoveSuccessDialog : BaseDialog<TreasureBoxDialogBuyLoveSuccessBinding>(
binding?.ivClose?.setOnClickListener {
dismissAllowingStateLoss()
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
EventBus.getDefault().post(BoxLoveEvent())
}
}