package com.ziang.driver.ui.adapter
|
|
import android.content.Context
|
import android.content.Intent
|
import android.view.View
|
import cn.sinata.xldutils.utils.TimeUtils
|
import cn.sinata.xldutils.utils.Toast
|
import cn.sinata.xldutils.utils.gone
|
import cn.sinata.xldutils.utils.visible
|
import com.ziang.driver.R
|
import com.ziang.driver.base.BaseRvAdapter
|
import com.ziang.driver.base.BaseViewHolder
|
import com.ziang.driver.bean.OrderHall
|
import com.ziang.driver.netUtls.Api
|
import com.ziang.driver.netUtls.callNet
|
import com.ziang.driver.netUtls.getMapByAny
|
import com.ziang.driver.ui.main.CallOrderActivity
|
import com.ziang.driver.ui.main.OrderHallActivity
|
import com.ziang.driver.ui.main.TripActivity
|
import com.ziang.driver.ui.main.VoiceOrderFragment
|
import com.ziang.driver.utils.AudioRecoderUtils
|
import kotlinx.android.synthetic.main.item_hall.view.*
|
import org.jetbrains.anko.startActivity
|
|
class OrderHallAdapter:BaseRvAdapter<OrderHall>() {
|
override fun getLayoutResId(viewType: Int): Int {
|
return R.layout.item_hall
|
}
|
|
private val audioRecoderUtils by lazy { AudioRecoderUtils() }
|
|
override fun onBindItem(holder: BaseViewHolder?, view: View?, item: OrderHall) {
|
holder?.let {
|
it.itemView.tv_type.text = item!!.name
|
it.itemView.tv_statue.text = item.stateStr()
|
it.itemView.tv_time.text = item.time
|
it.itemView.tv_start.visibility = if (item.startAddress.isNullOrEmpty()) View.GONE else View.VISIBLE
|
it.itemView.tv_end.visibility = if (item.endAddress.isNullOrEmpty()) View.GONE else View.VISIBLE
|
it.itemView.tv_start.text = item.startAddress
|
it.itemView.tv_end.text = item.endAddress
|
if (item.audioLinkUrl.isNullOrEmpty()){
|
it.itemView.tv_length.gone()
|
it.itemView.tv_play.gone()
|
}else{
|
it.itemView.tv_length.visible()
|
it.itemView.tv_length.text = "%02d:%02d".format(
|
item.audioTime.toInt() / 60,
|
item.audioTime.toInt() % 60
|
)
|
it.itemView.tv_play.visible()
|
it.itemView.tv_play.setOnClickListener {
|
val intent = Intent(context, VoiceOrderFragment::class.java)
|
intent.putExtra("audio", item.audioLinkUrl)
|
intent.putExtra("orderId", item.id)
|
intent.putExtra("orderType", item.type.toString())
|
intent.putExtra("time", item.audioTime.toInt()+3)
|
intent.putExtra("type", 1)
|
intent.putExtra("needPlayRing", false)
|
intent.putExtra("fromList", true)
|
context.startActivity(intent)
|
}
|
}
|
it.itemView.tv_action.setOnClickListener {
|
getOrder(item.id, item.type, context, !item.audioLinkUrl.isNullOrEmpty())
|
}
|
val l = TimeUtils.parseTimeMillisecond(item.endTime) - System.currentTimeMillis()
|
it.itemView.tv_timer.text = if (l>0) "%02d:%02d".format(
|
l/1000/ 60,
|
l/1000 % 60
|
) else "00:00"
|
}
|
}
|
|
private fun getOrder(orderId: String, orderType: Int, context: Context, isCall: Boolean) {
|
var map = getMapByAny()
|
map["orderId"] = orderId
|
map["orderType"] = orderType
|
callNet(context, Api.grabOrder, map) {
|
Toast.create(context).show("抢单成功")
|
if (isCall){
|
context.startActivity<CallOrderActivity>(
|
"orderId" to orderId,
|
"orderType" to orderType.toString()
|
)
|
audioRecoderUtils.stopPlayMusic()
|
}else{
|
when (orderType) {
|
2 -> {
|
context.startActivity<TripActivity>(
|
"orderId" to orderId,
|
"orderType" to orderType.toString()
|
)
|
}
|
1 -> {
|
context.startActivity<TripActivity>(
|
"orderId" to orderId,
|
"orderType" to orderType.toString()
|
)
|
}
|
3 -> {
|
|
}
|
5, 4 -> {
|
|
}
|
}
|
}
|
(context as OrderHallActivity).finish()
|
}
|
}
|
|
}
|