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")
|
}
|
}
|
}
|