From b92c97dfb9630d9e535eef00f8a54b8945ef9e7a Mon Sep 17 00:00:00 2001 From: wzq Date: Thu, 12 Oct 2023 16:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E9=97=B4=20"=E5=A4=BA=E5=AE=9D?= =?UTF-8?q?=E7=B2=BE=E7=81=B5"=20=E8=87=AA=E5=AE=9A=E4=B9=89=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E5=BC=B9=E7=AA=97=20=E6=94=AF=E6=8C=81=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FairyBuyDebrisModifyQuantityDialog.kt | 39 +++++++++++++++-- ...airy_dialog_buy_debris_modify_quantity.xml | 15 +++---- .../widget/dialog/BoxLoveLackDialog.kt | 42 +++++++++---------- 3 files changed, 65 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt index 0ebe613ea..2fada0e58 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/FairyBuyDebrisModifyQuantityDialog.kt @@ -4,15 +4,20 @@ import android.annotation.SuppressLint import android.os.Bundle 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 +import com.yizhuan.erban.treasure_box.activity.TreasureBoxActivity 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 /** @@ -44,21 +49,49 @@ class FairyBuyDebrisModifyQuantityDialog : override fun init() { num = requireArguments().getInt("num") - binding.tvDebrisNum.text = num.toString() + binding.etNum.setText(num.toString()) binding.tvPrizeName.text = (num * price).toString() binding.ivDecrease.setOnClickListener { num = (num - 10).coerceAtLeast(1) - binding.tvDebrisNum.text = num.toString() + binding.etNum.setText(num.toString()) + binding.etNum.setSelection(num.toString().length) binding.tvPrizeName.text = (num * price).toString() } binding.ivIncrease.setOnClickListener { num = (num + 10).coerceAtMost(200) - binding.tvDebrisNum.text = num.toString() + binding.etNum.setText(num.toString()) + binding.etNum.setSelection(num.toString().length) binding.tvPrizeName.text = (num * price).toString() } + binding.etNum.doAfterTextChanged { + var n = StringUtils.toInt(binding.etNum.text.toString(), 0) + + if (n < 1) { + binding.etNum.setText("1") + binding.etNum.setSelection(1) + num = 1 + return@doAfterTextChanged + } + + if (n > TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT) { + n = TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT + binding.etNum.setText(n.toString()) + binding.etNum.setSelection(n.toString().length) + SingleToastUtil.showToast( + getString( + R.string.treasure_box_activity_treasureboxactivity_01, + TreasureBoxActivity.MAX_BUY_QUANTITY_LIMIT + ) + ) + } + binding.tvPrizeName.text = (n * price).toString() + num = n + } + + binding.tvBuy.setOnClickListener { viewModel.buyDebris(num, AuthModel.get().currentUid.toString()) } diff --git a/app/src/main/res/layout/treasure_fairy_dialog_buy_debris_modify_quantity.xml b/app/src/main/res/layout/treasure_fairy_dialog_buy_debris_modify_quantity.xml index 197ea9ad3..3787bd250 100644 --- a/app/src/main/res/layout/treasure_fairy_dialog_buy_debris_modify_quantity.xml +++ b/app/src/main/res/layout/treasure_fairy_dialog_buy_debris_modify_quantity.xml @@ -68,8 +68,8 @@ app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon" tools:text="10000" /> - + app:layout_constraintTop_toTopOf="@id/et_num" /> + app:layout_constraintTop_toTopOf="@id/et_num" /> () { override fun init() { num = requireArguments().getInt("num") - binding?.editNum?.setText(num.toString()) - binding?.tvPrizeName?.text = (num * ticketPrice).toString() + binding.editNum.setText(num.toString()) + binding.tvPrizeName.text = (num * ticketPrice).toString() - binding?.ivSub?.setOnClickListener { + binding.ivSub.setOnClickListener { val editNum = - (StringUtils.toInt(binding?.editNum?.text.toString(), 0) - 10).coerceAtLeast(1) - binding?.editNum?.setText(editNum.toString()) - binding?.tvPrizeName?.text = (editNum * ticketPrice).toString() + (StringUtils.toInt(binding.editNum.text.toString(), 0) - 10).coerceAtLeast(1) + binding.editNum.setText(editNum.toString()) + binding.tvPrizeName.text = (editNum * ticketPrice).toString() } - binding?.ivAdd?.setOnClickListener { + binding.ivAdd.setOnClickListener { val editNum = - (StringUtils.toInt(binding?.editNum?.text.toString(), 0) + 10).coerceAtMost( + (StringUtils.toInt(binding.editNum.text.toString(), 0) + 10).coerceAtMost( MAX_BUY_QUANTITY_LIMIT ) - binding?.editNum?.setText(editNum.toString()) - binding?.tvPrizeName?.text = (editNum * ticketPrice).toString() + binding.editNum.setText(editNum.toString()) + binding.tvPrizeName.text = (editNum * ticketPrice).toString() } - binding?.ivClose?.setOnClickListener { + binding.ivClose.setOnClickListener { dismissAllowingStateLoss() } - binding?.tvBuy?.setOnClickListener { + binding.tvBuy.setOnClickListener { BoxModel.get() .buyTicket(num) .compose(bindToLifecycle()) @@ -93,13 +93,13 @@ class BoxLoveLackDialog : BaseDialog() { } } - binding?.editNum?.addTextChangedListener(object : TextWatcherWrapper() { + binding.editNum.addTextChangedListener(object : TextWatcherWrapper() { override fun afterTextChanged(editable: Editable) { - var n = StringUtils.toInt(binding?.editNum?.text.toString(), 0) + var n = StringUtils.toInt(binding.editNum.text.toString(), 0) if (n > MAX_BUY_QUANTITY_LIMIT) { n = MAX_BUY_QUANTITY_LIMIT - binding?.editNum?.setText(n.toString()) - binding?.editNum?.setSelection(3) + binding.editNum.setText(n.toString()) + binding.editNum.setSelection(3) SingleToastUtil.showToast( getString( R.string.treasure_box_activity_treasureboxactivity_01, @@ -107,19 +107,19 @@ class BoxLoveLackDialog : BaseDialog() { ) ) } - binding?.tvPrizeName?.text = (n * ticketPrice).toString() + binding.tvPrizeName.text = (n * ticketPrice).toString() num = n } }) - SoftKeyboardStateHelper(binding?.editNum).addSoftKeyboardStateListener(object : + SoftKeyboardStateHelper(binding.editNum).addSoftKeyboardStateListener(object : SoftKeyboardStateListener { override fun onSoftKeyboardOpened(keyboardHeightInPx: Int) {} override fun onSoftKeyboardClosed() { - val num = StringUtils.toInt(binding?.editNum?.text.toString(), 0) + val num = StringUtils.toInt(binding.editNum.text.toString(), 0) if (num == 0) { - binding?.editNum?.setText("1") - binding?.editNum?.setSelection(1) + binding.editNum.setText("1") + binding.editNum.setSelection(1) } } })