diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningModel.kt index 199dea382e..03ed0603fd 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningModel.kt @@ -13,6 +13,8 @@ import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatus import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation import com.mogo.och.common.module.manager.autopilot.line.ILineCallback import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.common.module.manager.distance.IDistanceListener +import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.unmanned.taxi.bean.ContrailBean import com.mogo.och.unmanned.taxi.bean.EndGrayContrailTaskReq @@ -22,14 +24,13 @@ import com.mogo.och.unmanned.taxi.bean.StartGrayAndQueryContrailRsp import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst import com.mogo.och.unmanned.taxi.network.TaxiRoutingServiceManager import com.mogo.och.unmanned.taxi.ui.debug.DebugView -import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel /** * @author XuXinChao * @description BadCase录包管理页面 * @since: 2022/12/15 */ -class RoutingRunningModel : ViewModel() { +class RoutingRunningModel : ViewModel(), IDistanceListener { private val TAG = RoutingRunningModel::class.java.simpleName @@ -79,6 +80,20 @@ class RoutingRunningModel : ViewModel() { this.viewCallback = viewCallback } + fun addListener() { + TrajectoryAndDistanceManager.addDistanceListener(TAG,this) + } + + fun removeListener() { + TrajectoryAndDistanceManager.removeListener(TAG) + } + + + override fun distanceCallback(distance: Float) { + val lastTime = distance / TaxiUnmannedConst.TAXI_AVERAGE_SPEED * 3.6 //秒 + this.viewCallback?.showDistance(distance.toLong(),lastTime.toLong()) + } + fun setNewData(data: StartGrayAndQueryContrailRsp) { this._data = data this.currentGrayLineBean = data.grayLineBean @@ -185,6 +200,9 @@ class RoutingRunningModel : ViewModel() { fun onArrivedStation(currentGrayId: Long?) + // 距离终点的距离 + fun showDistance(distance: Long, lastTime: Long) + } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningView.kt index a3c6a3e4c5..ed3a504b6d 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/routing/routingrunning/RoutingRunningView.kt @@ -206,6 +206,16 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal viewModel?.setDistanceCallback(this) } + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + if(isVisible){ + viewModel?.addListener() + }else{ + viewModel?.removeListener() + + } + } + override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) { updateCurrentTaskTripInfo(meters.toLong(), timeInSecond) } @@ -287,4 +297,8 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal } + override fun showDistance(distance: Long, lastTime: Long) { + updateCurrentTaskTripInfo(distance,lastTime) + } + }