package com.sinata.xqmuse.dialog
|
|
import android.view.Gravity
|
import androidx.core.os.bundleOf
|
import androidx.fragment.app.FragmentManager
|
import cn.sinata.xldutils.activity.BaseActivity
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.SpanBuilder
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.network.HttpManager
|
import com.sinata.xqmuse.network.request
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_pay.*
|
import org.jetbrains.anko.support.v4.toast
|
|
class PayDialog: BaseDialogFragment() {
|
override fun setContentView() = R.layout.dialog_pay
|
|
var callback:StringCallback? = null
|
private var balance:Double? = null
|
private val price by lazy {//钱
|
arguments?.getDouble("price",0.0)?:0.0
|
}
|
private val enableBalance by lazy {//钱
|
arguments?.getBoolean("enableBalance",true)?:true
|
}
|
|
override fun setGravity() = Gravity.BOTTOM
|
|
override fun initView() {
|
if (!enableBalance)
|
tv_balance.gone()
|
else
|
getBalance()
|
|
iv_close.setOnClickListener {
|
dismissAllowingStateLoss()
|
}
|
tv_action.setOnClickListener {
|
if (tv_balance.isChecked&&balance!=null&&balance!!<price){
|
myToast("余额不足")
|
return@setOnClickListener
|
}
|
val type = when(rg_pay.checkedRadioButtonId){
|
R.id.tv_ali->2
|
R.id.tv_wx->1
|
else->3
|
}
|
callback?.onResult(type.toString())
|
dismissAllowingStateLoss()
|
}
|
}
|
|
private fun getBalance() {
|
HttpManager.wallet().request(requireActivity() as BaseActivity,false){_,data->
|
balance = data?.balance
|
if (balance!=null) {
|
val content = "余额(¥%.2f)".format(balance)
|
tv_balance.text = SpanBuilder(content).color(requireContext(),2,content.length,R.color.colorRed).build()
|
}
|
}
|
}
|
|
companion object{
|
fun show(fm:FragmentManager,callback:StringCallback,price:Double? = null,enableBalance:Boolean = true){
|
val payDialog = PayDialog()
|
payDialog.arguments = bundleOf("price" to price,"enableBalance" to enableBalance)
|
payDialog.callback = callback
|
payDialog.showAllowingStateLoss(fm,"pay")
|
}
|
}
|
|
}
|