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
package com.kuanzhai.user.dialog
 
import android.view.Gravity
import androidx.core.os.bundleOf
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.fragment.BaseDialogFragment
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.showAllowingStateLoss
import com.kuanzhai.user.R
import com.kuanzhai.user.interfaces.StringCallback
import com.kuanzhai.user.network.entity.Passenger
import com.kuanzhai.user.ui.official.adapter.PassengerAdapter
import com.kuanzhai.user.ui.official.adapter.ReasonAdapter
import kotlinx.android.synthetic.main.dialog_reason.*
 
class ReasonDialog:BaseDialogFragment() {
    override fun setContentView() = R.layout.dialog_reason
 
    private val passenger = arrayListOf<Passenger>()
    private val passengerAdapter by lazy { PassengerAdapter(passenger,tv_count) }
    private val reason by lazy { arguments?.getStringArrayList("reason")?: arrayListOf() }
    private val reasonAdapter by lazy { ReasonAdapter(reason) }
 
    private var callback:StringCallback? = null
 
    override fun setGravity() = Gravity.BOTTOM
 
    override fun initView() {
        rv_passenger.layoutManager = LinearLayoutManager(requireContext())
        passenger.add(Passenger(arguments?.getString("name")?:""))
        rv_passenger.adapter = passengerAdapter
        iv_add.setOnClickListener {
            if (passenger.size == 4)
                myToast("最多可添加4人")
            else{
                passenger.add(Passenger())
                passengerAdapter.notifyDataSetChanged()
                tv_count.text = "出行人数 ${passenger.size}"
            }
        }
 
        rv_reason.layoutManager = GridLayoutManager(requireContext(),4)
        rv_reason.adapter = reasonAdapter
        tv_action.setOnClickListener {
            if (passenger.filter { it.name.isEmpty() }.isNotEmpty()){
                myToast("出行人姓名不能为空")
                return@setOnClickListener
            }
            if (reasonAdapter.checked == -1){
                myToast("请选择出行事由")
                return@setOnClickListener
            }
            if (rg_pay_way.checkedRadioButtonId == -1){
                myToast("请选择付费方式")
                return@setOnClickListener
            }
            callback?.onRlt(reason[reasonAdapter.checked])
            dismissAllowingStateLoss()
        }
    }
 
    companion object{
        fun show(fm: FragmentManager, name:String,reason:ArrayList<String>,callback: StringCallback){
            val reasonDialog = ReasonDialog()
            reasonDialog.arguments = bundleOf("name" to name,"reason" to reason)
            reasonDialog.callback = callback
            reasonDialog.showAllowingStateLoss(fm,"reason")
        }
    }
}