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)
}
}
})