diff --git a/app/src/main/res/drawable-xhdpi/bg_add_num_bg.webp b/app/src/main/res/drawable-xhdpi/bg_add_num_bg.webp new file mode 100644 index 000000000..dcd7c7fe5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_add_num_bg.webp differ diff --git a/app/src/main/res/drawable-xhdpi/ic_add_num_bg.webp b/app/src/main/res/drawable-xhdpi/ic_add_num_bg.webp deleted file mode 100644 index cfdcb522e..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_add_num_bg.webp and /dev/null differ diff --git a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxLoveLackDialog.kt b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxLoveLackDialog.kt index e7617ab7a..a9f24487e 100644 --- a/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxLoveLackDialog.kt +++ b/app/src/module_treasure_box/java/com/yizhuan/erban/treasure_box/widget/dialog/BoxLoveLackDialog.kt @@ -9,12 +9,12 @@ import android.view.WindowManager import com.hjq.toast.ToastUtils import com.yizhuan.erban.R import com.yizhuan.erban.base.BaseDialog -import com.yizhuan.erban.base.Event import com.yizhuan.erban.databinding.TreasureBoxDialogLoveLackBinding import com.yizhuan.erban.event.BoxLoveEvent -import com.yizhuan.erban.treasurefairy.dialog.FairyBuySuccessDialog +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 +import com.yizhuan.xchat_android_core.exception.FailReasonException 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 @@ -57,14 +57,14 @@ class BoxLoveLackDialog : BaseDialog() { binding?.ivSub?.setOnClickListener { val editNum = - (StringUtils.toInt(binding?.editNum?.text.toString(), 0) - 1).coerceAtLeast(1) + (StringUtils.toInt(binding?.editNum?.text.toString(), 0) - 10).coerceAtLeast(1) binding?.editNum?.setText(editNum.toString()) binding?.tvPrizeName?.text = (editNum * ticketPrice).toString() } binding?.ivAdd?.setOnClickListener { val editNum = - (StringUtils.toInt(binding?.editNum?.text.toString(), 0) + 1).coerceAtMost(9999) + (StringUtils.toInt(binding?.editNum?.text.toString(), 0) + 10).coerceAtMost(200) binding?.editNum?.setText(editNum.toString()) binding?.tvPrizeName?.text = (editNum * ticketPrice).toString() } @@ -79,7 +79,8 @@ class BoxLoveLackDialog : BaseDialog() { if (TimeUtils.isToday(date)) { BoxModel.get() .buyTicket(num) - .compose(bindToLifecycle()) + .compose(bindToLifecycle()) + .doOnError { dealError(it) } .subscribe { userTicketInfo: UserTicketInfo -> ToastUtils.show("購買成功") dismissAllowingStateLoss() @@ -124,6 +125,18 @@ class BoxLoveLackDialog : BaseDialog() { }) } + private fun dealError(error: Throwable) { + if (error is FailReasonException) { + if (error.code == BoxModel.ERROR_CODE_DIAMOND) { + newInstance().show(context) + } else { + SingleToastUtil.showToast(error.message) + } + } else { + SingleToastUtil.showToast(error.message) + } + } + override fun onDismiss(dialog: DialogInterface) { super.onDismiss(dialog) EventBus.getDefault().post(BoxLoveEvent()) 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 b0c0cb8f5..2768c2891 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 @@ -12,8 +12,10 @@ 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 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 import org.greenrobot.eventbus.EventBus @@ -65,7 +67,7 @@ class BuyLoveDialog : BaseDialog() { BoxModel.get() .buyTicket(num) .compose(bindToLifecycle()) - .doOnError { ToastUtils.show(it.message) } + .doOnError { dealError(it) } .subscribe { userTicketInfo: UserTicketInfo -> ToastUtils.show("購買成功") dismissAllowingStateLoss() @@ -74,7 +76,7 @@ class BuyLoveDialog : BaseDialog() { BoxModel.get() .buyTicket(num) .compose(bindToLifecycle()) - .doOnError { ToastUtils.show(it.message) } + .doOnError { dealError(it) } .subscribe { userTicketInfo: UserTicketInfo -> BuyLoveSuccessDialog.newInstance(num).show(context) dismissAllowingStateLoss() @@ -84,14 +86,25 @@ class BuyLoveDialog : BaseDialog() { BoxModel.get() .buyTicket(num) .compose(bindToLifecycle()) - .doOnError { ToastUtils.show(it.message) } + .doOnError { dealError(it) } .subscribe { userTicketInfo: UserTicketInfo -> BuyLoveSuccessDialog.newInstance(num).show(context) dismissAllowingStateLoss() } } } + } + private fun dealError(error: Throwable) { + if (error is FailReasonException) { + if (error.code == BoxModel.ERROR_CODE_DIAMOND) { + TreasureBoxDialog.newInstance().show(context) + } else { + SingleToastUtil.showToast(error.message) + } + } else { + SingleToastUtil.showToast(error.message) + } } override fun onDismiss(dialog: DialogInterface) { diff --git a/app/src/module_treasure_box/res/layout/treasure_box_dialog_love_lack.xml b/app/src/module_treasure_box/res/layout/treasure_box_dialog_love_lack.xml index 130e3df3b..daf075c9c 100644 --- a/app/src/module_treasure_box/res/layout/treasure_box_dialog_love_lack.xml +++ b/app/src/module_treasure_box/res/layout/treasure_box_dialog_love_lack.xml @@ -6,23 +6,26 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - @@ -52,8 +55,8 @@ @@ -125,8 +128,8 @@ - * @return - */ @@ -286,6 +292,7 @@ public class RxHelper { /** * 超管不能玩游戏 + * * @param - * @return - */ diff --git a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java index 799037514..df6647f87 100644 --- a/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java +++ b/core/src/model_treasure_box/java/com/yizhuan/treasure_box/model/BoxModel.java @@ -93,7 +93,7 @@ public class BoxModel extends BaseModel implements IBoxModel { @Override public Single buyTicket(int num) { return api.buyTicket(num) - .compose(RxHelper.handleBeanData()) + .compose(RxHelper.handleCommon()) .compose(RxHelper.handleSchedulers()); }