lmw
2023-06-13 adf8013576cbdd12e5ebea8ff7e32baf5d558b27
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
85
package com.kuanzhai.user.ui.mine.adapter
 
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.os.bundleOf
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.adapter.HFRecyclerAdapter
import cn.sinata.xldutils.adapter.util.ViewHolder
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.visible
import com.kuanzhai.user.R
import com.kuanzhai.user.dialog.TipDialog
import com.kuanzhai.user.interfaces.StringCallback
import com.kuanzhai.user.network.HttpManager
import com.kuanzhai.user.network.entity.Order
import com.kuanzhai.user.network.request
import com.kuanzhai.user.utils.Const
import org.jetbrains.anko.textColorResource
 
data class OfficialOrderAdapter(val datas:ArrayList<Order>):HFRecyclerAdapter<Order>(datas, R.layout.item_order) {
    override fun onBind(holder: ViewHolder, position: Int, data: Order) {
        holder.bind<TextView>(R.id.tv_tag).gone()
        holder.bind<View>(R.id.tv_thank).gone()
        holder.bind<TextView>(R.id.tv_thank_money).gone()
 
 
        holder.setText(R.id.tv_time,data.orderTime)
        holder.setText(R.id.tv_state,data.getOfficialStateStr())
        holder.bind<TextView>(R.id.tv_state).textColorResource = data.getStateColor()
 
        val tvTime = holder.bind<TextView>(R.id.tv_trip_time)
        val tvStart = holder.bind<TextView>(R.id.tv_start)
        val tvEnd = holder.bind<TextView>(R.id.tv_end)
        val ll_check = holder.bind<LinearLayout>(R.id.ll_check)
        if (data.auditStatus == 0||data.auditStatus == 2){ //待审核和审核失败
            ll_check.visible()
            val tvAction = holder.bind<TextView>(R.id.tv_action_check)
            tvAction.text = if (data.auditStatus == 0) "取消订单" else "详情"
            tvAction.setOnClickListener {
                if (data.auditStatus == 0){
                    val tipDialog = TipDialog()
                    tipDialog.arguments = bundleOf("msg" to "是否确认取消订单?")
                    tipDialog.setCallback(object :TipDialog.OnClickCallback{
                        override fun onOk() {
                            HttpManager.cancelOrder(data.orderId,data.orderType).request(context as BaseActivity){_,_->
                                (context as BaseActivity).myToast("取消成功")
                                data.state = 10
                                data.auditStatus = -2
                                notifyItemChanged(position)
                            }
                        }
 
                        override fun onCancel() {
                        }
                    })
                    tipDialog.show((context as BaseActivity).supportFragmentManager,"cancel")
                }
            }
            tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
            tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
            tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(0,0,0,0)
            tvStart.textColorResource = R.color.textColor66
            tvEnd.textColorResource = R.color.textColor66
        }else{
            ll_check.gone()
            tvTime.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_time,0,0,0)
            tvStart.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_starting_point,0,0,0)
            tvEnd.setCompoundDrawablesRelativeWithIntrinsicBounds(R.mipmap.icon_end_point,0,0,0)
            tvStart.textColorResource = R.color.textColor
            tvEnd.textColorResource = R.color.textColor
        }
 
        holder.setText(R.id.tv_trip_time,data.time)
        holder.setText(R.id.tv_start,data.startAddress)
        holder.setText(R.id.tv_end,data.endAddress)
        holder.bind<TextView>(R.id.tv_count).apply {
            visibility = if (data.orderType == Const.OrderType.TYPE_CROSS_CITY) {
                text = String.format("%d人",data.num)
                View.VISIBLE
            } else View.GONE
        }
    }
}