package com.fuban.user.dialog
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import androidx.fragment.app.DialogFragment
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.myToast
|
import com.fuban.user.R
|
import com.fuban.user.ui.trip.ChooseCouponActivity
|
import com.fuban.user.utils.Const
|
import kotlinx.android.synthetic.main.dialog_pay.*
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.support.v4.startActivityForResult
|
import org.jetbrains.anko.wrapContent
|
|
class PayDialog: DialogFragment() {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
return inflater.inflate(R.layout.dialog_pay,container,false)
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME,R.style.Dialog)
|
}
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout(matchParent, wrapContent)
|
dialog?.window?.setGravity(Gravity.BOTTOM)
|
dialog?.setCanceledOnTouchOutside(false)
|
}
|
|
private val money by lazy {
|
arguments?.getDouble("money",0.0)?:0.0
|
}
|
private val balance by lazy {
|
arguments?.getDouble("balance",0.0)?:0.0
|
}
|
private val isCancel by lazy {
|
arguments?.getBoolean("isCancel",false)?:false
|
}
|
private val coupon by lazy {
|
arguments?.getInt("coupon",0)?:0
|
}
|
private val orderId by lazy {
|
arguments?.getInt("id",0)?:0
|
}
|
private val type by lazy {
|
arguments?.getInt("type",0)?:0
|
}
|
private val isLogistics by lazy {
|
arguments?.getBoolean("isLogistics",false)?:false
|
}
|
private var payWay = 2 //1=微信,2=支付宝,3=余额
|
private var couponId = 0
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
couponId = 0
|
tv_money.text = String.format(if (isCancel) "%.2f元" else "¥%.2f",money)
|
group_coupon.visibility = if (isCancel) { //取消支付没有优惠券
|
View.GONE
|
} else {
|
tv_coupon.text = String.format("%d张可用",coupon)
|
rb_balance.text = String.format("充值余额(%.2f可用)",balance)
|
View.VISIBLE
|
}
|
if (isLogistics){ //物流订单没有优惠券
|
group_coupon.gone()
|
}
|
if (type == Const.OrderType.TYPE_CROSS_CITY) //跨城支付有线下支付
|
rb_offline.gone()
|
tv_action.setOnClickListener {
|
if (payWay == 3&&!isCancel&&balance<money)
|
myToast("余额不足,请选择其他支付方式")
|
else
|
callback?.onOk(payWay,couponId)
|
}
|
iv_close.setOnClickListener {
|
callback?.onClose()
|
dismiss()
|
}
|
tv_coupon.setOnClickListener {
|
startActivityForResult<ChooseCouponActivity>(1,"id" to orderId,"type" to type)
|
}
|
rg_pay.setOnCheckedChangeListener { _, i ->
|
payWay = when(i){
|
R.id.rb_wx->1
|
R.id.rb_ali->2
|
else->3
|
}
|
}
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (requestCode == 1&&resultCode == Activity.RESULT_OK&&data!=null){
|
couponId = data.getIntExtra("id",0)
|
val couponMoney = data.getDoubleExtra("money", 0.0)
|
tv_coupon.text = String.format("-%.2f", couponMoney)
|
tv_money.text = String.format("¥%.2f",money-couponMoney)
|
}
|
}
|
|
interface Callback{
|
fun onOk(way: Int,couponId: Int)
|
fun onClose()
|
}
|
|
private var callback: Callback? = null
|
|
fun setCallback(callback: Callback){
|
this.callback = callback
|
}
|
}
|