GLDriver/app/src/main/java/com/arpa/hndahesudintocctmsdriver/mypop/PopBottomCar.kt
2024-04-26 16:19:26 +08:00

99 lines
2.9 KiB
Kotlin

package com.arpa.hndahesudintocctmsdriver.mypop
import android.content.Context
import android.graphics.Color
import android.widget.Button
import android.widget.LinearLayout
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.arpa.hndahesudintocctmsdriver.R
import com.arpa.hndahesudintocctmsdriver.adapter.SelectCarAdapter
import com.arpa.hndahesudintocctmsdriver.bean.CarBean
import com.arpa.mylibrary.recycleviewswipe.RecycleViewDivider
import com.arpa.mylibrary.utils.ConvertUtils
import com.lxj.xpopup.core.BottomPopupView
/**
* @ClassName PopBottomPic
* @Author john
* @Date 2024/1/31 11:11
* @Description TODO
*/
class PopBottomCar(
context: Context,
cars: MutableList<CarBean>,
private var isCap: Boolean,
private var selDriverId: String = "",
private var selCarId: String = "",
onCarSelectListener: OnCarSelectListener
) : BottomPopupView(context) {
private var cars: MutableList<CarBean>
private var listener: OnCarSelectListener
private var currCar: CarBean? = null
init {
this.listener = onCarSelectListener
this.cars = cars
}
override fun getImplLayoutId() = R.layout.choice_car
override fun onCreate() {
super.onCreate()
var recycler = findViewById<RecyclerView>(R.id.recycler)
var btnOk = findViewById<Button>(R.id.btnOk)
cars.find { if (isCap) (it.carId == selCarId && it.driverId == selDriverId) else it.carId == selCarId }
?.run {
isSelect = true
currCar = this
}
initRecycle(recycler)
btnOk.text = if (isCap) "分配车辆" else "接单"
btnOk.setOnClickListener {
if (currCar == null) {
dismiss()
return@setOnClickListener
}
if (listener != null) {
listener.onResult(currCar!!)
dismiss()
}
}
}
private fun initRecycle(recycler: RecyclerView) {
recycler.run {
layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
setHasFixedSize(true)
addItemDecoration(
RecycleViewDivider(
LinearLayout.VERTICAL,
ConvertUtils.dp2px(10.0f),
Color.TRANSPARENT
)
)
adapter = SelectCarAdapter(isCap)
(adapter as SelectCarAdapter).submitList(cars)
(adapter as SelectCarAdapter)
}.run {
setOnItemClickListener() { adapter, view, position ->
currCar = items[position]
items.find { it.isSelect }?.isSelect = false
items[position].isSelect = true
notifyDataSetChanged()
}
}
}
}
fun interface OnCarSelectListener {
fun onResult(result: CarBean)
}