Pu Zhibing
2025-06-25 844fc3910b72130f79480714bcba98106d8f9177
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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()
        }
    }
 
}