diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/event/BoxLoveEvent.java b/app/src/module_treasure_box/java/com/yizhuan/erban/event/BoxLoveEvent.java deleted file mode 100644 index 7d8f16ceb..000000000 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/event/BoxLoveEvent.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.yizhuan.erban.event; - -public class BoxLoveEvent { -} diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java index f7a911078..6bea3265c 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/activity/TreasureBoxActivity.java @@ -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 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 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 { - this.userTicketInfo = userTicketInfo; - mBinding.tvBoxNum.setText(String.valueOf(userTicketInfo.getTicketNum())); - }); + .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() { 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() { } } - 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() { } 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 -> - ToastUtils.show("購買成功") - dismissAllowingStateLoss() - } - } else { - BuyLoveDialog.newInstance( - binding?.editNum?.text.toString().toInt(), - ticketPrice * binding?.editNum?.text.toString().toInt() - ).show(context) + 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("購買成功") + return@subscribe + } + BuyLoveSuccessDialog.newInstance(num).show(context) + EventBus.getDefault().post(userTicketInfo) } - } else { - BuyLoveDialog.newInstance( - binding?.editNum?.text.toString().toInt(), - ticketPrice * binding?.editNum?.text.toString().toInt() - ).show(context) - dismissAllowingStateLoss() - } } 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() { SingleToastUtil.showToast(error.message) } } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - EventBus.getDefault().post(BoxLoveEvent()) - } - } \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveDialog.kt b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveDialog.kt index 2768c2891..2a03bc0e7 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveDialog.kt +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveDialog.kt @@ -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,36 +60,28 @@ class BuyLoveDialog : BaseDialog() { binding?.tvBuy?.setOnClickListener { val date = SPUtils.getLong(SpConstants.BOX_BUY_SUCCESS, 0L) - if (date != 0L) { - if (TimeUtils.isToday(date)) { - BoxModel.get() - .buyTicket(num) - .compose(bindToLifecycle()) - .doOnError { dealError(it) } - .subscribe { userTicketInfo: UserTicketInfo -> - ToastUtils.show("購買成功") - dismissAllowingStateLoss() - } - } else { - BoxModel.get() - .buyTicket(num) - .compose(bindToLifecycle()) - .doOnError { dealError(it) } - .subscribe { userTicketInfo: UserTicketInfo -> - BuyLoveSuccessDialog.newInstance(num).show(context) - dismissAllowingStateLoss() - } - } - } else { + if (TimeUtils.isToday(date)) { BoxModel.get() .buyTicket(num) .compose(bindToLifecycle()) .doOnError { dealError(it) } .subscribe { userTicketInfo: UserTicketInfo -> - BuyLoveSuccessDialog.newInstance(num).show(context) + ToastUtils.show("購買成功") dismissAllowingStateLoss() + EventBus.getDefault().post(userTicketInfo) } + return@setOnClickListener } + + 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() { } } - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - EventBus.getDefault().post(BoxLoveEvent()) - } - } \ No newline at end of file diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveSuccessDialog.kt b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveSuccessDialog.kt index 083b5ddd3..f8cad236e 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveSuccessDialog.kt +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BuyLoveSuccessDialog.kt @@ -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( binding?.ivClose?.setOnClickListener { dismissAllowingStateLoss() } - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - EventBus.getDefault().post(BoxLoveEvent()) - } - } \ No newline at end of file