From 0361f47762f9958f2ec91fdb62bfc98de4e162a6 Mon Sep 17 00:00:00 2001
From: lmw <125975490@qq.com>
Date: 星期一, 14 四月 2025 15:16:17 +0800
Subject: [PATCH] save
---
app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt | 235 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 154 insertions(+), 81 deletions(-)
diff --git a/app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt b/app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt
index f500798..20b7cbb 100644
--- a/app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt
+++ b/app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt
@@ -1,19 +1,22 @@
package com.xianning.driver.ui.main
-import android.os.Bundle
-import android.os.Handler
-import android.os.Looper
-import android.os.PersistableBundle
+import android.os.*
+import android.util.Log
import android.view.View
+import androidx.core.os.bundleOf
import cn.sinata.xldutils.utils.*
-import com.amap.api.location.AMapLocationListener
-import com.amap.api.maps.AMap
-import com.amap.api.maps.model.LatLng
-import com.amap.api.maps.model.Marker
-import com.amap.api.maps.model.Polyline
import com.baidu.location.BDAbstractLocationListener
import com.baidu.location.BDLocation
import com.baidu.location.LocationClient
+import com.baidu.mapapi.map.BaiduMap
+import com.baidu.mapapi.map.Marker
+import com.baidu.mapapi.map.Overlay
+import com.baidu.mapapi.model.LatLng
+import com.baidu.navisdk.adapter.BNRoutePlanNode
+import com.baidu.navisdk.adapter.BaiduNaviManagerFactory
+import com.baidu.navisdk.adapter.IBNRoutePlanManager
+import com.baidu.navisdk.adapter.IBaiduNaviManager
+import com.baidu.navisdk.adapter.struct.BNaviInitConfig
import com.xianning.driver.R
import com.xianning.driver.base.BaseEvent
import com.xianning.driver.base.MyApplication
@@ -24,10 +27,8 @@
import com.xianning.driver.base.gaode.AMapKit.getTimeType
import com.xianning.driver.base.gaode.AMapKit.initMap
import com.xianning.driver.base.gaode.AMapKit.moveCamera
-import com.xianning.driver.base.gaode.gpsnav.GPSNaviActivity
import com.xianning.driver.bean.OrderBean
import com.xianning.driver.bean.OrderSimpleData
-import com.xianning.driver.bean.RessignBean
import com.xianning.driver.netUtls.*
import com.xianning.driver.ui.DialogUtil
import com.xianning.driver.ui.main.major.MajorSureMoneyActivity
@@ -36,6 +37,11 @@
import com.google.gson.Gson
import com.trello.rxlifecycle3.android.ActivityEvent
import com.xianning.driver.base.gaode.AMapKit.moveCamera3
+import com.xianning.driver.base.gaode.BaiduUtils
+import com.xianning.driver.base.gaode.gpsnav.BaiduNaviActivity
+import com.xianning.driver.bean.MajorMoneyBean
+import com.xianning.driver.ui.main.major.MajorSureMoneyOfflineActivity
+import com.ypx.imagepicker.utils.PBitmapUtils
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@@ -48,6 +54,7 @@
import org.greenrobot.eventbus.EventBus
import org.jetbrains.anko.startActivity
import org.jetbrains.anko.toast
+import java.util.ArrayList
import java.util.concurrent.TimeUnit
@@ -70,13 +77,15 @@
var startMarker: Marker? = null
var endMarker: Marker? = null
var carMarker: Marker? = null
- var markerLine: Polyline? = null
- lateinit var aMap: AMap
+ var markerLine: Overlay? = null
+ lateinit var aMap: BaiduMap
lateinit var orderBean: OrderBean
private var listener:BDAbstractLocationListener? = null
private var locationClient: LocationClient? = null
+
+ var naviHandler: Handler? = null
override fun setContentView() {
setContentView(R.layout.activity_trip)
@@ -93,9 +102,51 @@
setTitleText("准备出发-去接客户-等待客户-服务中")
tv_Right.text = "取消订单"
callOrder()
+ initNaviSdk()
initMineLocation()
onclick()
addSockectCancel()
+ naviHandler = object :Handler(Looper.getMainLooper()){
+ override fun handleMessage(msg: Message) {
+ when(msg.what){
+ IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_START->{
+ Log.e("mmp","算路开始")
+ }
+ IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_SUCCESS->{
+ Log.e("mmp","算路成功")
+ }
+ IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_FAILED->{
+ Log.e("mmp","算路失败")
+ }
+ IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_TO_NAVI->{
+ Log.e("mmp","算路成功准备进入导航")
+ startActivity<BaiduNaviActivity>()
+ }
+ }
+ }
+ }
+ }
+
+ private fun initNaviSdk() {
+ val config = BNaviInitConfig.Builder().sdcardRootPath(PBitmapUtils.getPickerFileDirectory(this).absolutePath)
+ .naviInitListener(object :IBaiduNaviManager.INaviInitListener{
+ override fun onAuthResult(p0: Int, p1: String?) {
+ Log.e("mmp","导航组件初始化onAuthResult(${p0}:${p1})")
+ }
+
+ override fun initStart() {
+ Log.e("mmp","导航组件初始化开始")
+ }
+
+ override fun initSuccess() {
+ Log.e("mmp","导航组件初始化成功")
+ }
+
+ override fun initFailed(p0: Int) {
+ Log.e("mmp","导航组件初始化失败:$p0")
+ }
+ }).build()
+ BaiduNaviManagerFactory.getBaiduNaviManager().init(this, config)
}
private fun addSockectCancel() {
@@ -176,12 +227,7 @@
orderBean.let {
when (it.data.orderState) {
2, 3 -> {
-// startAMapNavi(makeMarker!!)
- startActivity<GPSNaviActivity>(
- "start" to carMarker!!.position,
- "end" to makeMarker!!.position
- )
-
+ startNavi(carMarker!!.position,makeMarker!!.position)
}
4 -> {
@@ -192,12 +238,12 @@
if (endMarker == null){
toast("暂无终点")
}else{
- startActivity<GPSNaviActivity>(
- "start" to carMarker!!.position,
- "end" to endMarker!!.position
- )
+ startNavi(carMarker!!.position,endMarker!!.position)
+// startActivity<GPSNaviActivity>(
+// "start" to com.amap.api.maps.model.LatLng(carMarker!!.position.latitude,carMarker!!.position.longitude),
+// "end" to com.amap.api.maps.model.LatLng(endMarker!!.position.latitude,endMarker!!.position.longitude)
+// )
}
-
}
else -> {
@@ -226,23 +272,10 @@
}
}
5, 6 -> {
- it.data.orderState = 6
- when(orderType){
- "2" -> {
- showMoneyTypeDialog()
- }
- "1" -> {
- callStatue(6,{
- startActivity<MajorSureMoneyActivity>(
- "orderId" to orderId,
- "orderType" to orderType
- )
- finish()
- }) {
-
- }
- }
- }
+ if (it.data.payManner == 3){
+ showMoneyTypeDialog()
+ }else
+ callorderMoney()
}
}
}
@@ -251,6 +284,33 @@
iv_phone.clickDelay {
orderBean.let {
Utils.callPhone(this, it.data.phone)
+ }
+ }
+ }
+
+ /**
+ * 陈昆:结束订单前(state==5)需要计算费用
+ */
+ private fun callorderMoney() {
+ var map = getMapByAny()
+ map["orderId"] = orderId
+ map["orderType"] = orderType
+ callNet(false, Api.queryMoneyInfo, map) {
+ orderBean.data.orderState = 6
+ callStatue(6,{
+ if (orderBean.data.payManner == 2){
+ startActivity<MajorSureMoneyOfflineActivity>(
+ "orderId" to orderId,
+ "orderType" to orderType
+ )
+ }else
+ startActivity<MajorSureMoneyActivity>(
+ "orderId" to orderId,
+ "orderType" to orderType
+ )
+ finish()
+ }) {
+
}
}
}
@@ -310,7 +370,7 @@
val map = getMapByAny()
map["orderId"] = orderId
map["orderType"] = orderType
- map["type"] = 2
+ map["type"] = 3
callStatue(6,{
callNet(Api.confirmFees, map) {
finish()
@@ -353,39 +413,39 @@
private fun changeCarThree(isMove: Boolean) {
if (makeMarker != null && carMarker != null) {
- AMapKit.initRouteLine(
- this,
- makeMarker!!.position,
- carMarker!!.position,
- object : (MutableList<LatLng>, Float, Long) -> Unit {
- override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
- var view = creatCarView("距预约点" + AMapKit.getTance(p2))
- carMarker!!.setIcon(getIcon(view))
- addline(p1)
- if (isMove)
- moveCamera(aMap, makeMarker!!.position, carMarker!!.position)
- }
- })
+ BaiduUtils.initRouteLine(carMarker!!.position,makeMarker!!.position,object :BaiduUtils.Callback{
+ override fun onGetDrivingRouteResult(
+ latLngs: ArrayList<LatLng>?,
+ lineTance: Float,
+ lineTime: Long
+ ) {
+ var view = creatCarView("距预约点" + AMapKit.getTance(lineTance))
+ carMarker!!.setIcon(getIcon(view))
+ addline(latLngs?: arrayListOf())
+ if (isMove)
+ moveCamera(aMap, makeMarker!!.position, carMarker!!.position)
+ }
+ })
}
}
private fun changeCarFive(isMove: Boolean) {
if (carMarker != null && endMarker != null) {
- AMapKit.initRouteLine(
- this,
- carMarker!!.position,
- endMarker!!.position,
- object : (MutableList<LatLng>, Float, Long) -> Unit {
- override fun invoke(p1: MutableList<LatLng>, p2: Float, p3: Long) {
- addline(p1)
- var view =
- creatCarView("剩余" + AMapKit.getTance(p2) + "\n" + "预计还需" + p3.toInt() + "分钟")
- carMarker!!.setIcon(getIcon(view))
- if (isMove) {
- moveCamera3(aMap, carMarker!!.position, endMarker!!.position,carMarker!!.position)
- }
+ BaiduUtils.initRouteLine(carMarker!!.position,endMarker!!.position,object :BaiduUtils.Callback{
+ override fun onGetDrivingRouteResult(
+ latLngs: ArrayList<LatLng>,
+ lineTance: Float,
+ lineTime: Long
+ ) {
+ addline(latLngs)
+ var view =
+ creatCarView("剩余" + AMapKit.getTance(lineTance) + "\n" + "预计还需" + lineTime.toInt() + "分钟")
+ carMarker!!.setIcon(getIcon(view))
+ if (isMove) {
+ moveCamera3(aMap, carMarker!!.position, endMarker!!.position,carMarker!!.position)
}
- })
+ }
+ })
}else{
var view =
creatCarView()
@@ -428,19 +488,19 @@
if (makeMarker == null) {
val view = createView(R.layout.item_map_market_make, this)
view.iv_img.setImageResource(R.mipmap.trip_yuyue)
- makeMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "")
+ makeMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "") as Marker
}
makeMarker!!.isVisible = false
if (startMarker == null) {
val view = createView(R.layout.item_map_market, this)
view.iv_img.setImageResource(R.mipmap.starting_point)
- startMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "")
+ startMarker = addMarker(aMap, it.data.startLat, it.data.startLon, view, "") as Marker
}
startMarker!!.isVisible = false
- if (endMarker == null) {
+ if (endMarker == null&&it.data.endLat!=0.0) {
val view = createView(R.layout.item_map_market, this)
view.iv_img.setImageResource(R.mipmap.end_point)
- endMarker = addMarker(aMap, it.data.endLat, it.data.endLon, view, "")
+ endMarker = addMarker(aMap, it.data.endLat, it.data.endLon, view, "") as Marker
}
endMarker?.isVisible = false
if (carMarker == null) {
@@ -451,7 +511,7 @@
MyApplication.getLocation().longitude,
carView,
""
- )
+ ) as Marker
}
carMarker!!.isVisible = false
if (markerLine != null) {
@@ -577,6 +637,7 @@
if (handler != null) {
handler?.removeCallbacksAndMessages(null)
}
+ naviHandler?.removeCallbacksAndMessages(null)
closeTimeStart()
MyApplication.removeOrderView(this)
map_view.onDestroy()
@@ -593,11 +654,6 @@
map_view.onResume()
}
- override fun onLowMemory() {
- super.onLowMemory()
- map_view.onLowMemory()
- }
-
override fun onSaveInstanceState(outState: Bundle, outPersistentState: PersistableBundle) {
super.onSaveInstanceState(outState, outPersistentState)
map_view.onSaveInstanceState(outState)
@@ -606,7 +662,7 @@
- private fun addline(allLine: MutableList<LatLng>) {
+ private fun addline(allLine: ArrayList<LatLng>) {
closeLine()
markerLine = AMapKit.drawLine(this, aMap, allLine)
}
@@ -615,6 +671,24 @@
if (markerLine != null) {
markerLine!!.remove()
}
+ }
+
+ private fun startNavi(start:LatLng,end:LatLng){
+ val list = arrayListOf<BNRoutePlanNode>()
+ val startNode = BNRoutePlanNode.Builder()
+ .longitude(start.longitude)
+ .latitude(start.latitude)
+ .build()
+ val endNode = BNRoutePlanNode.Builder()
+ .longitude(end.longitude)
+ .latitude(end.latitude)
+ .build()
+ list.add(startNode)
+ list.add(endNode)
+ BaiduNaviManagerFactory.getRoutePlanManager().routePlan(
+ list,
+ IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT,
+ bundleOf(), naviHandler)
}
@@ -626,7 +700,6 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
aMap = initMap(savedInstanceState, map_view)
- map_view.onCreate(savedInstanceState)
}
override fun onEventMainThread(event: BaseEvent?) {
--
Gitblit v1.7.1