Pu Zhibing
2025-12-11 ab0c19e49fabdb8cc6eea454ea455bce2efbb718
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
113
114
115
116
117
118
119
package com.igo.user.ui.trip
 
import android.app.Activity
import android.content.Intent
import android.view.View
import android.widget.TextView
import cn.sinata.xldutils.callPhone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.optInt
import cn.sinata.xldutils.utils.toTime
import com.facebook.drawee.view.SimpleDraweeView
import com.igo.user.IGoApplication
import com.igo.user.R
import com.igo.user.network.HttpManager
import com.igo.user.network.entity.DriverInfo
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.startActivityForResult
 
class TargetOrderActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_target_order
 
    private val driver by lazy {
        intent.getParcelableExtra<DriverInfo>("driver")!!
    }
    private val type by lazy {
        intent.getIntExtra("type",0)
    }
    private var startName = ""
    private var startLat = 0.0
    private var startLon = 0.0
    private var endName = ""
    private var endLat = 0.0
    private var endLon = 0.0
 
    private val tv_action by lazy { find<TextView>(R.id.tv_action) }
    private val iv_call by lazy { find<View>(R.id.iv_call) }
    private val tv_score by lazy { find<TextView>(R.id.tv_score) }
    private val tv_start by lazy { find<TextView>(R.id.tv_start) }
    private val tv_end by lazy { find<TextView>(R.id.tv_end) }
    private val tv_name by lazy { find<TextView>(R.id.tv_name) }
    private val tv_car_info by lazy { find<TextView>(R.id.tv_car_info) }
    private val tv_count by lazy { find<TextView>(R.id.tv_count) }
    private val iv_header_home by lazy { find<SimpleDraweeView>(R.id.iv_header_home) }
 
 
    override fun initClick() {
        iv_call.setOnClickListener {
            callPhone(driver.phone)
        }
        tv_start.setOnClickListener {
            startActivityForResult<ChoosePositionActivity>(1)
        }
        tv_end.setOnClickListener {
            startActivityForResult<ChoosePositionActivity>(2,"isStart" to false)
        }
        tv_action.setOnClickListener {
            if (endName.isEmpty()){
                myToast(getString(R.string.请填写目的地))
            }else{
                tv_action.isEnabled = false
                HttpManager.addTaxiOrder(endName,endLat,endLon,2,type,IGoApplication.lat,IGoApplication.lon, startName,
                    startLat,startLon,0,0, System.currentTimeMillis().toTime("yyyy-MM-dd HH:mm"),
                    driver.id,null,null,null,1,type).request(this,success = {_,data->
                    data?.let {
                        startActivity<TripActivity>("type" to type,"id" to it.optInt("id"))
                        setResult(Activity.RESULT_OK)
                        finish()
                    }
                },error = {_,_->
                    tv_action.isEnabled = true
                })
            }
        }
    }
 
    override fun initView() {
        title = getString(R.string.扫码叫车)
        startName = intent.getStringExtra("startName")?:""
        startLat = intent.getDoubleExtra("startLat",0.0)
        startLon = intent.getDoubleExtra("startLon",0.0)
        tv_start.text = startName
        driver.run {
            iv_header_home.setImageURI(avatar)
            tv_name.text = "$name $licensePlate"
            tv_car_info.text = "$brand·$carColor"
            tv_score.text = String.format("%.1f",fraction)
            tv_count.text = getString(R.string.单数,orderNum)
            tv_action.isEnabled = state == 2
            tv_action.text = when(state){
                1->getString(R.string.该司机未上班请稍后在下单)
                3->getString(R.string.该司机正在服务请稍后在下单)
                else->getString(R.string.confirm_order)
            }
        }
    }
 
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode == Activity.RESULT_OK&&data!=null){
            when(requestCode){
                1->{
                    startLat = data.getDoubleExtra("lat", 0.0)
                    startLon = data.getDoubleExtra("lon", 0.0)
                    startName = data.getStringExtra("name")?:""
                    tv_start.text = startName
                }
                2->{
                    endLat = data.getDoubleExtra("lat", 0.0)
                    endLon = data.getDoubleExtra("lon", 0.0)
                    endName = data.getStringExtra("name")?:""
                    tv_end.text = endName
                }
            }
        }
    }
}