package com.kuanzhai.driver.ui.adapter
|
|
import android.view.View
|
import cn.sinata.xldutils.utils.*
|
import com.kuanzhai.driver.R
|
import com.kuanzhai.driver.base.BaseEvent
|
import com.kuanzhai.driver.base.BaseRvAdapter
|
import com.kuanzhai.driver.base.BaseViewHolder
|
import com.kuanzhai.driver.bean.OrderCityBean
|
import com.kuanzhai.driver.netUtls.Api
|
import com.kuanzhai.driver.netUtls.callNet
|
import com.kuanzhai.driver.netUtls.getMapByAny
|
import com.kuanzhai.driver.ui.to_city.CityOrderOverActivity
|
import kotlinx.android.synthetic.main.item_card_list.view.*
|
import kotlinx.android.synthetic.main.item_trip_item.view.*
|
import org.greenrobot.eventbus.EventBus
|
import org.jetbrains.anko.startActivity
|
|
class TripItemAdapter : BaseRvAdapter<OrderCityBean.CityDataBean>() {
|
|
var isShowAll = true
|
|
override fun getDataItemCount(): Int {
|
if (isShowAll) {
|
return super.getDataItemCount()
|
} else {
|
return 1
|
}
|
}
|
|
override fun getLayoutResId(viewType: Int): Int {
|
return R.layout.item_trip_item
|
}
|
|
override fun onBindItem(
|
holder: BaseViewHolder?,
|
view: View?,
|
item: OrderCityBean.CityDataBean?
|
) {
|
holder?.let {
|
if (it.adapterPosition == 0) {
|
it.itemView.tv_wait_up.setDrawableNull()
|
} else {
|
it.itemView.tv_wait_up.setDrawableTop(R.mipmap.icon_top)
|
}
|
it.itemView.tv_number.text = (it.adapterPosition + 1).toString()
|
it.itemView.tv_name.text = item!!.nickName
|
it.itemView.tv_time.text = item!!.travelTime_
|
it.itemView.tv_people_num.text = item!!.peopleNumber + "人乘车"
|
it.itemView.tv_start_address.text = item!!.startAddress
|
it.itemView.tv_end_address.text = item!!.endAddress
|
it.itemView.iv_phone.visibility = if (item.orderState in 6..10) View.GONE else View.VISIBLE
|
it.itemView.iv_phone.clickDelay {
|
callPhone(context, item.phone)
|
}
|
it.itemView.tv_wait_up.clickDelay {
|
if (data[it.adapterPosition].orderState >= 5 && getCurrentIndexByNun(5)){
|
toast("还有未上车的乘客")
|
return@clickDelay
|
}
|
if (it.adapterPosition - 1 >= 0 && data[it.adapterPosition - 1].orderState < 6) {
|
callChangeLocation(item.orderId) {
|
data.removeAt(it.adapterPosition)
|
data.add(getCurrentIndex(), item)
|
EventBus.getDefault()
|
.post(BaseEvent(BaseEvent.CITY_CHANGE_ORDER, getCurrentIndex()))
|
notifyDataSetChanged()
|
}
|
} else {
|
toast("无法操作")
|
}
|
}
|
it.itemView.clickDelay {
|
return@clickDelay
|
}
|
when (item.orderState) {
|
2, 3, 4 -> {
|
it.itemView.tv_wait_up.text = "待上车"
|
it.itemView.tv_wait_up.textColor(context, R.color.red_main)
|
}
|
5 -> {
|
it.itemView.tv_wait_up.text = "已上车"
|
it.itemView.tv_wait_up.textColor(context, R.color.main_blue)
|
// it.itemView.clickDelay {
|
// context.startActivity<CityOrderOverActivity>("orderType" to 3,"orderId" to item.orderId.toString()
|
// ,"seatNumber" to item.seatNumber,"money" to doubleTwo(item.payMoney))
|
// }
|
}
|
6,7,8,9 -> {
|
it.itemView.tv_wait_up.text = "已送达"
|
it.itemView.tv_wait_up.textColor(context, R.color.black)
|
it.itemView.clickDelay {
|
context.startActivity<CityOrderOverActivity>("orderType" to 3,"orderId" to item.orderId.toString()
|
,"seatNumber" to item.seatNumber,"money" to doubleTwo(item.payMoney))
|
}
|
}
|
10 -> {
|
it.itemView.tv_wait_up.text = "已取消"
|
it.itemView.tv_wait_up.textColor(context, R.color.color_F85460)
|
}
|
11 -> {
|
it.itemView.tv_wait_up.text = "改派中"
|
it.itemView.tv_wait_up.textColor(context, R.color.color_F85460)
|
}
|
}
|
|
//1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付
|
}
|
}
|
|
private fun getCurrentIndex(): Int {
|
for (position in data.indices){
|
var item = data[position]
|
if (item.orderState < 6){
|
return position
|
}
|
}
|
return 0
|
}
|
|
private fun getCurrentIndexByNun(num:Int): Boolean {
|
for (position in data.indices){
|
var item = data[position]
|
if (item.orderState < num){
|
return true
|
}
|
}
|
return false
|
}
|
|
private fun callChangeLocation(orderId: Int, function: () -> Unit) {
|
var map = getMapByAny()
|
map["orderId"] = orderId
|
callNet(context, Api.setOrderCrossCitySort, map) {
|
function()
|
}
|
}
|
}
|