package com.fuban.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.utils.myToast
|
import cn.sinata.xldutils.visible
|
import com.fuban.user.R
|
import com.fuban.user.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_seat.*
|
import org.jetbrains.anko.imageResource
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.wrapContent
|
|
class SeatDialog : DialogFragment() {
|
private val max by lazy { //最大座位数 6:七座 4:五座
|
arguments?.getInt("max",6)?:6
|
}
|
private val count by lazy { //乘客数
|
arguments?.getInt("count",1)?:1
|
}
|
private val seat by lazy { //可选座位编号
|
arguments?.getString("seat")?:"1,2,3,4"
|
}
|
private val selected by lazy { //已选座位编号
|
arguments?.getString("selected")?:""
|
}
|
private val seats by lazy {
|
arrayListOf(remark_1,remark_2,remark_3,remark_4,remark_5,remark_6)
|
}
|
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
return inflater.inflate(R.layout.dialog_seat, 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(true)
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
|
iv_seat.imageResource = if (max == 6){
|
remark_5.visible()
|
remark_6.visible()
|
R.mipmap.seat_7
|
} else R.mipmap.seat_5
|
|
// if (seat.isEmpty())
|
// tv_empty.visible()
|
// else
|
seat.split(",").filter { it.isNotEmpty() }
|
.forEach {
|
seats[it.toInt()-1].isEnabled = true
|
seats[it.toInt()-1].alpha = 1f
|
seats[it.toInt()-1].isChecked = it in selected.split(",")
|
}
|
|
tv_action.setOnClickListener {
|
if (seat.isEmpty())
|
return@setOnClickListener
|
val checked = seats.filter {
|
it.isChecked
|
}
|
if (checked.size!=count){
|
myToast("请选择${count}个座位")
|
return@setOnClickListener
|
}
|
val s = checked.joinToString(",") {
|
it.text.substring(0,1)
|
}
|
callback?.onRlt(s)
|
dismiss()
|
}
|
}
|
|
private var callback: StringCallback? = null
|
|
fun setCallback(callback: StringCallback) {
|
this.callback = callback
|
}
|
}
|