lmw
2023-06-07 f9dd2cdac746d308d5c4bcfdbea389ab67a66b12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package com.kuanzhai.user.dialog
 
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.activity.BaseActivity
import cn.sinata.xldutils.utils.SpanBuilder
import cn.sinata.xldutils.utils.myToast
import com.kuanzhai.user.R
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.entity.Card
import com.kuanzhai.user.network.request
import kotlinx.android.synthetic.main.dialog_pay_card.*
import org.jetbrains.anko.matchParent
import org.jetbrains.anko.wrapContent
 
class PayCardDialog: DialogFragment() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.dialog_pay_card,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 card by lazy { arguments?.getParcelable<Card>("data") }
 
    private var balance = 0.0
 
    private var payWay = 3 //1=微信,2=支付宝,3=余额
 
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
 
        card?.apply {
            tv_origin.text = "%.2f元".format(originalPrice.toDouble())
            tv_money.text = SpanBuilder("现价:¥%.2f".format(sellingPrice.toDouble())).size(0,3,15).build()
            tv_action.text = "立即支付%.2f元".format(sellingPrice.toDouble())
        }
 
        HttpManager.queryUserInfo().request(requireActivity() as BaseActivity,false) { _, data ->
            data?.balance?.apply {
                balance = this
                rb_balance.text = "余额(余额:%.2f元)".format(this)
            }
        }
 
        tv_action.setOnClickListener {
            if (payWay == 3&&balance<card!!.sellingPrice.toDouble())
                myToast("余额不足,请选择其他支付方式")
            else{
                callback?.onOk(payWay)
                dismissAllowingStateLoss()
            }
        }
        iv_close.setOnClickListener {
            dismissAllowingStateLoss()
        }
 
        rg_pay.setOnCheckedChangeListener { _, i ->
            payWay = when(i){
                R.id.rb_wx->1
                R.id.rb_ali->2
                else->3
            }
        }
    }
 
    interface Callback{
        fun onOk(way: Int)
    }
 
    private var callback: Callback? = null
 
    fun setCallback(callback: Callback){
        this.callback = callback
    }
}