lmw
2023-05-27 ff365ff4346d220edf2ec1d0041f2284befe3870
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package com.fanghua.driver.ui.adapter
 
import android.view.View
import cn.sinata.xldutils.activitys.BaseActivity
import cn.sinata.xldutils.utils.*
import com.google.gson.Gson
import com.fanghua.driver.R
import com.fanghua.driver.base.BaseRvAdapter
import com.fanghua.driver.base.BaseViewHolder
import com.fanghua.driver.bean.BaseBean
import com.fanghua.driver.bean.OrderBean
import com.fanghua.driver.netUtls.Api
import com.fanghua.driver.netUtls.callNet
import com.fanghua.driver.netUtls.getMapByAny
import com.fanghua.driver.ui.main.TripActivity
import com.fanghua.driver.utils.checkPermission
import kotlinx.android.synthetic.main.item_order_home_list.view.*
import org.jetbrains.anko.startActivity
 
class OrderHomeListAdapter: BaseRvAdapter<OrderBean>() {
 
    override fun getLayoutResId(viewType: Int): Int {
        return R.layout.item_order_home_list
    }
 
    override fun onBindItem(holder: BaseViewHolder?, view: View?, item: OrderBean) {
        holder?.let {
            it.itemView.tv_name.text = item.userName
            it.itemView.iv_avatar.setImageURI(item.avatar)
            it.itemView.tv_phone.text = StringUtils.hidePhoneNumber(item.userPhone)
            it.itemView.tv_distance.text = if (item.currentDistance>100) "距你约%.1f公里".format(item.currentDistance/1000) else "距你约%d米".format(item.currentDistance.toInt())
            it.itemView.tv_creator.text = if (item.source == 1){
                it.itemView.tv_order_count.apply {
                    visible()
                    text = "下单%d次".format(item.orderTimes)
                }
                it.itemView.tv_cancel_count.apply {
                    visible()
                    text = "取消%d次".format(item.cancelTimes)
                }
                "乘客创建"
            } else{
                it.itemView.tv_order_count.gone()
                it.itemView.tv_cancel_count.gone()
                if (item.source == 3) "后台创建" else "司机创建"
            }
 
            it.itemView.tv_action.clickDelay {
                if ((context as BaseActivity).checkPermission()){
                    var map = getMapByAny()
                    map["orderId"] = item.id
                    callNet(context, Api.grabOrder, map) {
                        val bean = Gson().fromJson<BaseBean>(it, BaseBean::class.java)
                        if (bean.resultUtil.code == 10000){
                            data.remove(item)
                            notifyDataSetChanged()
                            toast("抢单成功")
                            context.startActivity<TripActivity>("orderId" to item.id)
                        }else
                            toast(bean.resultUtil.msg)
                    }
                }
            }
            it.itemView.tv_time.text = TimeUtils.getTripTime(item.createTime)
            it.itemView.tv_start.text = item.startAddress
            it.itemView.tv_end.text = if (item.endAddress.isNullOrEmpty()){
                it.itemView.tv_2.gone()
                it.itemView.tv_length.gone()
                it.itemView.center.gone()
                it.itemView.tv_1.text = "起步价"
                it.itemView.tv_money.text = "%.2f元".format(item.startPrice)
                "未填写"
            } else{
                it.itemView.tv_2.visible()
                it.itemView.tv_length.visible()
                it.itemView.center.visible()
                it.itemView.tv_1.text = "预估费用"
                it.itemView.tv_money.text = "%.2f元".format(item.estimatedPrice)
                it.itemView.tv_length.text = "%.1f公里".format(item.estimatedMileage.toDouble())
                item.endAddress
            }
        }
    }
}