房间 "夺宝精灵" 自定义购买弹窗 支持输入数量
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
@@ -68,8 +68,8 @@
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_prize_icon"
|
||||
tools:text="10000" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_debris_num"
|
||||
<EditText
|
||||
android:id="@+id/et_num"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="@dimen/dp_29"
|
||||
android:layout_marginStart="@dimen/dp_26"
|
||||
@@ -77,6 +77,7 @@
|
||||
android:layout_marginEnd="@dimen/dp_26"
|
||||
android:background="@color/color_306065"
|
||||
android:gravity="center"
|
||||
android:inputType="number"
|
||||
android:text="@string/zero"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_12"
|
||||
@@ -90,9 +91,9 @@
|
||||
android:layout_height="@dimen/dp_29"
|
||||
android:layout_marginStart="@dimen/dp_42"
|
||||
android:src="@drawable/ic_dialog_fairy_buy_debris_decrease"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_debris_num"
|
||||
app:layout_constraintBottom_toBottomOf="@id/et_num"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_debris_num" />
|
||||
app:layout_constraintTop_toTopOf="@id/et_num" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_increase"
|
||||
@@ -100,9 +101,9 @@
|
||||
android:layout_height="@dimen/dp_29"
|
||||
android:layout_marginEnd="@dimen/dp_42"
|
||||
android:src="@drawable/ic_dialog_fairy_buy_debris_increase"
|
||||
app:layout_constraintBottom_toBottomOf="@id/tv_debris_num"
|
||||
app:layout_constraintBottom_toBottomOf="@id/et_num"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_debris_num" />
|
||||
app:layout_constraintTop_toTopOf="@id/et_num" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:id="@+id/tv_buy"
|
||||
@@ -117,7 +118,7 @@
|
||||
app:corner="@dimen/dp_18"
|
||||
app:layout_constraintEnd_toEndOf="@id/view_bg"
|
||||
app:layout_constraintStart_toStartOf="@id/view_bg"
|
||||
app:layout_constraintTop_toBottomOf="@id/tv_debris_num"
|
||||
app:layout_constraintTop_toBottomOf="@id/et_num"
|
||||
app:shaderEnable="true"
|
||||
app:shaderEndColor="@color/color_3AEAC7"
|
||||
app:shaderMode="topToBottom"
|
||||
|
@@ -53,30 +53,30 @@ class BoxLoveLackDialog : BaseDialog<TreasureBoxDialogLoveLackBinding>() {
|
||||
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<TreasureBoxDialogLoveLackBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
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<TreasureBoxDialogLoveLackBinding>() {
|
||||
)
|
||||
)
|
||||
}
|
||||
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)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
Reference in New Issue
Block a user