package com.future.driver.ui.main
|
|
import android.os.Bundle
|
import android.os.CountDownTimer
|
import android.view.View
|
import cn.sinata.xldutils.activitys.DialogActivity
|
import cn.sinata.xldutils.utils.*
|
import com.amap.api.maps.AMap
|
import com.amap.api.maps.model.LatLng
|
import com.future.driver.R
|
import com.future.driver.base.MyApplication
|
import com.future.driver.base.gaode.AMapKit
|
import com.future.driver.bean.OrderBean
|
import com.future.driver.netUtls.*
|
import com.future.driver.ui.UiUtil
|
import com.future.driver.ui.main.small_cargo.SmallCargoActivity
|
import com.future.driver.ui.to_city.TripCityActivity
|
import com.google.gson.Gson
|
import kotlinx.android.synthetic.main.item_get_order.*
|
import kotlinx.android.synthetic.main.item_map_market.view.*
|
import org.jetbrains.anko.startActivity
|
|
class GetOrderFragment : DialogActivity() {
|
|
// 1.上班:您正在上班中 或者 xx出行,美好生活
|
// 2.收车:您已收车
|
// 3.收到订单:您收到新的【专车/出租车】【实时/预约】订单,距您xx公里,从xx出发,全程约xx公里
|
// 4.修改终点:请注意,乘客已修改终点
|
|
val orderId by lazy {
|
intent?.getStringExtra("orderId")
|
}
|
val orderType by lazy {
|
intent?.getStringExtra("orderType")
|
}
|
|
val timeDown by lazy {
|
intent?.getIntExtra("time", -1)
|
}
|
val type by lazy {
|
intent?.getIntExtra("type", -1)
|
}
|
|
|
lateinit var time: CountDownTimer
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
//实例化语音引擎
|
aMap = AMapKit.initMap(savedInstanceState, map_view)
|
callOrderDetail()
|
var strBtn = "抢单"
|
if (type == 2) {
|
strBtn = "确定"
|
}
|
time = timeOver((timeDown!!.toLong() * 1000L)) {
|
if (it == 0) {
|
finish()
|
} else {
|
tv_sure.text = strBtn + it.toString() + "S"
|
}
|
}
|
tv_close.clickDelay {
|
finish()
|
}
|
tv_sure.clickDelay {
|
if (type == 1) {
|
showGetOrder()
|
} else if (type == 2) {
|
onBackPressed()
|
this.startActivity<TripActivity>("orderId" to orderId, "orderType" to orderType)
|
}
|
|
}
|
}
|
|
override fun initView() {
|
|
}
|
|
override fun onPause() {
|
super.onPause()
|
|
}
|
|
override fun onDestroy() {
|
super.onDestroy()
|
time.cancel()
|
}
|
|
override fun setContentLayout(): Int {
|
return R.layout.item_get_order
|
}
|
|
|
private fun callOrderDetail() {
|
|
var map = getMapByAny()
|
map["orderId"] = orderId
|
map["orderType"] = orderType
|
map["lat"] = MyApplication.getLocation().latitude
|
map["lon"] = MyApplication.getLocation().longitude
|
callNet(this, Api.queryPushOrder, map) {
|
val data = Gson().fromJson<OrderBean>(it, OrderBean::class.java).data
|
sysErr(data)
|
val startView = createView(R.layout.item_map_market, this)
|
val endView = createView(R.layout.item_map_market, this)
|
startView.iv_img.setImageResource(R.mipmap.starting_point)
|
endView.iv_img.setImageResource(R.mipmap.end_point)
|
AMapKit.addMarker(aMap, data.startLat, data.startLon, startView, "")
|
AMapKit.addMarker(aMap, data.endLat, data.endLon, endView, "")
|
tv_time.text = data.travelTime
|
tv_car_type.text = UiUtil.getNameByType(orderType!!) + "订单"
|
tv_remark.visibility = if (data.remark.isNullOrEmpty()) View.GONE else View.VISIBLE
|
tv_tance.visibility = if (data.endAddress.isNullOrEmpty()) View.GONE else View.VISIBLE
|
if (!data.remark.isNullOrEmpty()) {
|
tv_remark.text = data.remark
|
}
|
if (orderType == "1") {
|
tv_money.gone()
|
}
|
if (orderType == "5" || orderType == "4") {
|
tv_money.gone()
|
tv_remark.gone()
|
tv_name.visible()
|
tv_cargo_num.visible()
|
tv_cargo_money.visible()
|
tv_name.text = data.nickName + "-" + data.phone
|
var cargoStrType = if (data.cargoType == "1") "普通小件X" else "普通大件X"
|
tv_cargo_num.text = cargoStrType + data.peopleNumber
|
if (data.tipMoney != null && data.tipMoney > 0.0) {
|
tv_cargo_money.text = doubleTwo(data.tipMoney) + "元加急费"
|
} else {
|
tv_cargo_money.gone()
|
}
|
}
|
tv_start.text = data.startAddress
|
tv_end.text = if (data.endAddress.isNullOrEmpty()) "———" else data.endAddress
|
|
tv_money.text = data.tipMoney.toString() + "元小费"
|
tv_reassign.text = data.type
|
tv_reassign.visibility = if (data.type.isNullOrEmpty()) View.GONE else View.VISIBLE
|
|
if (data.endLat != null && data.endLon != null) {
|
AMapKit.drawLineAndMove(
|
this,
|
aMap,
|
LatLng(data.startLat, data.startLon),
|
LatLng(data.endLat, data.endLon), 100
|
)
|
AMapKit.initRouteLine(
|
this,
|
LatLng(data.startLat, data.startLon),
|
LatLng(data.endLat, data.endLon),
|
object : (MutableList<LatLng>, Float, Long) -> Unit {
|
override fun invoke(
|
latLngs: MutableList<LatLng>,
|
lineTance: Float,
|
lineTime: Long
|
) {
|
tv_tance.text = "全程约" + AMapKit.getTance(lineTance)
|
MyApplication.getTTsManager().setVideoText(
|
"收到新的" + UiUtil.getNameByType(orderType!!) + "订单," + "从" + data.startAddress + "出发,全程约" + AMapKit.getTance(
|
lineTance
|
)
|
)
|
}
|
|
})
|
}else{
|
AMapKit.moveCamera(aMap,LatLng(data.startLat, data.startLon))
|
MyApplication.getTTsManager().setVideoText(
|
"收到新的" + UiUtil.getNameByType(orderType!!) + "订单," + "从" + data.startAddress + "出发"
|
)
|
}
|
|
AMapKit.initRouteLine(
|
this,
|
LatLng(MyApplication.getLocation().latitude, MyApplication.getLocation().longitude),
|
LatLng(data.startLat, data.startLon),
|
object : (MutableList<LatLng>, Float, Long) -> Unit {
|
override fun invoke(
|
latLngs: MutableList<LatLng>,
|
lineTance: Float,
|
lineTime: Long
|
) {
|
tv_title.text = "距您约" + AMapKit.getTance(lineTance)
|
}
|
})
|
}
|
}
|
|
lateinit var aMap: AMap
|
|
fun showGetOrder() {
|
var map = getMapByAny()
|
map["orderId"] = orderId
|
map["orderType"] = orderType
|
callNet(this, Api.grabOrder, map) {
|
Toast.create(this).show("抢单成功")
|
onBackPressed()
|
when (orderType) {
|
"2" -> {
|
this.startActivity<TripActivity>("orderId" to orderId, "orderType" to orderType)
|
}
|
"1" -> {
|
this.startActivity<TripActivity>("orderId" to orderId, "orderType" to orderType)
|
}
|
"3" -> {
|
this.startActivity<TripCityActivity>(
|
"orderId" to orderId,
|
"orderType" to orderType
|
)
|
}
|
"4", "5" -> {
|
this.startActivity<SmallCargoActivity>(
|
"orderId" to orderId,
|
"orderType" to orderType
|
)
|
}
|
}
|
}
|
}
|
}
|