lmw
2025-04-24 718f31c92e2029d05260810435a2c70cef6e6ce5
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
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")
        }
    }
 
}