diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index 3b8465e65f..8374af2924 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -19,6 +19,7 @@ public class DateTimeUtil { public static final String yyyyMMdd = "yyyy-MM-dd"; public static final String yy_MM_dd = "yy.MM.dd"; public static final String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm"; + public static final String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss"; public static String formatCalendarToString(Calendar calendar, String format){ if (calendar == null) return ""; diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt index 47cf5d0a0f..8983382f2b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt @@ -2,6 +2,7 @@ package com.mogo.och.taxi.ui.base import android.animation.ObjectAnimator import android.annotation.SuppressLint +import android.content.Intent import android.os.Bundle import android.os.Handler import android.os.Looper @@ -10,6 +11,7 @@ import android.view.LayoutInflater import android.view.View import android.view.animation.LinearInterpolator import androidx.fragment.app.FragmentTransaction +import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.mvp.Presenter @@ -21,11 +23,9 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager.initBa import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.showToolsView import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView - import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener -import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.listener.IMogoMapListener import com.mogo.map.uicontroller.VisualAngleMode @@ -34,6 +34,7 @@ import com.mogo.och.common.module.wigets.StartAutopilotAnimationView import com.mogo.och.taxi.R import com.mogo.och.taxi.constant.TaxiUnmannedConst import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.START_AUTOPILOT_ANIMATION_INTERVAL +import com.mogo.och.taxi.ui.debug.DebugView import com.mogo.och.taxi.ui.navi.amap.TaxiAmapNaviFragment import com.mogo.och.taxi.ui.navi.auto.TaxiRoutingNaviFragment import kotlinx.android.synthetic.main.taxi_base_fragment.anim_flow_iv @@ -224,31 +225,22 @@ abstract class BaseTaxiTabFragment> : MvpFragment(R.id.btnAutopilotDisable)?.setOnClickListener { - onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE - ) + // 打开任务调试面板 + findViewById(R.id.btnOpenDebugView)?.setOnClickListener { + val intent = Intent() + intent.action = DebugView.BROADCAST_ACTION + intent.putExtra(DebugView.BROADCAST_DATA_SHOW, true) + LocalBroadcastManager.getInstance(requireContext()).sendBroadcast(intent) } - // 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态 - findViewById(R.id.btnAutopilotEnable)?.setOnClickListener { - onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE - ) + // 关闭任务调试面板 + findViewById(R.id.btnCloseDebugView)?.setOnClickListener { + val intent = Intent() + intent.action = DebugView.BROADCAST_ACTION + intent.putExtra(DebugView.BROADCAST_DATA_SHOW, false) + LocalBroadcastManager.getInstance(requireContext()).sendBroadcast(intent) } - // 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 - findViewById(R.id.btnAutopilotRunning)?.setOnClickListener { - onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING - ) - } - findViewById(R.id.btnAutopilotmanco)?.setOnClickListener { - onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING - ) - } module_mogo_och_operation_status.setOnClickListener { onChangeOperationStatus() } taxi_close_navi_icon.setOnClickListener { showAmapNaviToStationFragment(false) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt index d64baf8b5e..3f4af10e40 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt @@ -254,7 +254,9 @@ class TaxiFragment : BaseTaxiTabFragment(), TaxiTaskModel.mockOnTheWayToEndStation() } - findViewById(R.id.test_bar_route)?.setOnClickListener { testRouteInfoUpload() } + findViewById(R.id.test_bar_route)?.setOnClickListener { + testRouteInfoUpload() + } } fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt index aa2ab2b1bc..5564520e85 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/debug/DebugView.kt @@ -1,70 +1,160 @@ package com.mogo.och.taxi.ui.debug +import android.content.BroadcastReceiver import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import android.widget.LinearLayout +import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.mogo.eagle.core.network.utils.GsonUtil +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.taxi.R +import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean +import com.mogo.och.taxi.bean.TrajectoryListRespBean +import com.mogo.och.taxi.callback.ITaxiTaskWithOrderCallback +import com.mogo.och.taxi.constant.TaskStatusEnum +import com.mogo.och.taxi.constant.TaskTypeEnum +import com.mogo.och.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.taxi.ui.task.TaxiTaskModel -import kotlinx.android.synthetic.main.taxi_debug_order.view.orderInfo -import kotlinx.android.synthetic.main.taxi_debug_order.view.orderToStartLines +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentCarStatus +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentDataTimestamps +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentLineId +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentOrder +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentOrderStopInfo +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentOrderTrajectoryInfo +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentStatus +import kotlinx.android.synthetic.main.taxi_debug_order.view.currentTaskType +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderEndSiteInfo +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderNo +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderPreLoadLines +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderStartSiteInfo +import kotlinx.android.synthetic.main.taxi_debug_order.view.orderStatus import kotlinx.android.synthetic.main.taxi_debug_order.view.taskEndSite import kotlinx.android.synthetic.main.taxi_debug_order.view.taskStartSite -import kotlinx.android.synthetic.main.taxi_debug_order.view.taskStatus2 -import kotlinx.android.synthetic.main.taxi_debug_order.view.taskType2 -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_line_id -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_line_name -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_order_id -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_stop_md5 -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_stop_md5_dpqp -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_traj_md5 -import kotlinx.android.synthetic.main.taxi_debug_order.view.test_bar_current_traj_md5_dpqp -class DebugView @JvmOverloads constructor( +public class DebugView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0 -) : LinearLayout(context, attrs, defStyleAttr, defStyleRes) { +) : LinearLayout(context, attrs, defStyleAttr, defStyleRes), ITaxiTaskWithOrderCallback { companion object { const val TAG = "DebugView" + const val BROADCAST_ACTION = "com.mogo.och.driver.debugview.show" + const val BROADCAST_DATA_SHOW = "isShow" + } + + private val broadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (BROADCAST_ACTION == intent.action) { + val isShow = intent.getBooleanExtra(BROADCAST_DATA_SHOW, false) + visibility = if (isShow) VISIBLE else GONE + } + } } init { + initBroadcastReceiver() LayoutInflater.from(context) .inflate(R.layout.taxi_debug_order, this, true) visibility = GONE } - fun toggleOrderDebugView() { - val data = TaxiTaskModel.getCurrentTaskWithOrder() - val curContrail = TaxiTaskModel.getCurrentTaskTrajectory() + private fun initBroadcastReceiver() { + val intentFilter = IntentFilter() + intentFilter.addAction(BROADCAST_ACTION) + LocalBroadcastManager.getInstance(context).registerReceiver(broadcastReceiver, intentFilter) + } + fun toggleOrderDebugView() { visibility = if (visibility == View.VISIBLE) View.GONE else View.VISIBLE - test_bar_current_order_id.text = "orderNo: ${data?.order?.orderNo}" - test_bar_current_line_id!!.text = "当前任务lineId: ${data?.lineId}" - test_bar_current_line_name!!.text = "当前任务lineName: ${curContrail?.lineName}" - taskType2.text = "当前任务类型: ${data?.taskType}" - taskStatus2.text = "任务状态: ${data?.currentStatus}" - taskStartSite.text = - "任务开始站点: ${data?.startSite?.siteName} , siteId: ${data?.startSite?.siteId}" - taskEndSite.text = - "任务结束站点: ${data?.endSite?.siteName}, siteId: ${data?.endSite?.siteId}" - orderInfo.text = - "订单信息: 开始: ${data?.order?.orderStartSite?.siteName}, 结束: ${data?.order?.orderEndSite?.siteName}, " + - "orderStatus: ${data?.order?.orderStatus}" - orderToStartLines.text = - "接驾任务的lineId集合: " + GsonUtil.jsonFromObject(data?.order?.planningLines) + val data = TaxiTaskModel.getCurrentTaskWithOrder() + initViewByData(data) + } - test_bar_current_traj_md5.text = "TrajMd5: ${curContrail?.csvFileMd5}" - test_bar_current_stop_md5.text = "StopMd5: ${curContrail?.txtFileMd5}" - test_bar_current_traj_md5_dpqp.text = "TrajMd5DPQP: ${curContrail?.csvFileMd5DPQP}" - test_bar_current_stop_md5_dpqp.text = "StopMd5DPQP: ${curContrail?.txtFileMd5DPQP}" + private fun initTaskWithOrderDataListener() { + TaxiTaskModel.addTaskWithOrderListener(TAG, this) + } + + private fun removeTaskWithOrderDataListener() { + TaxiTaskModel.removeTaskWithOrderListener(TAG) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + initTaskWithOrderDataListener() + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + removeTaskWithOrderDataListener() + } + + private fun initViewByData(data: QueryCurrentTaskRespBean.Result?) { + val curContrail = TaxiTaskModel.getCurrentTaskTrajectory() + currentDataTimestamps.text = "【当前数据返回时间】${ + DateTimeUtil.formatCalendarToString( + DateTimeUtil.formatLongToCalendar(System.currentTimeMillis()), + DateTimeUtil.yyyy_MM_dd_HH_mm_ss + ) + }" + currentCarStatus.text = + "【当前车辆状态】${data?.servingStatus} / ${if (data?.servingStatus == 1) "开始接单" else "暂停接单"}" + currentTaskType.text = "【当前任务类型】${data?.taskType} / ${TaskTypeEnum.valueOf(data?.taskType ?: -1)?.name}" + currentStatus.text = + "【当前任务状态】${data?.currentStatus} / ${TaskStatusEnum.valueOf(data?.currentStatus ?: -1)?.name}" + currentLineId.text = "【当前任务lineId】 ${data?.lineId}" + taskStartSite.text = + "【当前任务起点】${data?.startSite?.siteName} siteId=${data?.startSite?.siteId}" + taskEndSite.text = + "【当前任务终点】${data?.endSite?.siteName} siteId=${data?.endSite?.siteId}" + currentOrder.text = "【订单信息】${if (data?.order == null) "null" else "不为空"}" + orderNo.text = "【订单编号】${data?.order?.orderNo}" + orderStatus.text = + "【订单状态】${data?.order?.orderStatus} / ${TaxiOrderStatusEnum.valueOf(data?.order?.orderStatus ?: -1)?.name}" + orderStartSiteInfo.text = + "【订单起点】${data?.order?.orderStartSite?.siteName}" + orderEndSiteInfo.text = + "【订单终点】${data?.order?.orderEndSite?.siteName}" + orderPreLoadLines.text = + "【接驾任务预加载lineIds】${GsonUtil.jsonFromObject(data?.order?.planningLines)}" + currentOrderTrajectoryInfo.text = + "【当前任务Traj信息】TrajMd5=${curContrail?.csvFileMd5} , TrajDPQPMd5=${curContrail?.csvFileMd5DPQP}" + currentOrderStopInfo.text = + "【当前任务Stop信息】StopMd5=${curContrail?.txtFileMd5}, StopDPQPMd5=${curContrail?.txtFileMd5DPQP}" + } + + override fun onTaskWithOrderDataChanged(taskWithOrder: QueryCurrentTaskRespBean.Result?) { + d(TAG, "onTaskWithOrderDataChanged") + initViewByData(taskWithOrder) + } + + override fun onTaskCompleted(isOrderArrivedAtStart: Boolean, siteId: Long) { + } + + override fun onTaskTrajectoryDataChanged(data: TrajectoryListRespBean?) { + } + + override fun onOrderCancel() { + } + + override fun onOrderArriveAtEnd(orderNo: String) { + } + + override fun onOrderTotalMileAndDurationChanged(mileage: Float, duration: Int) { + } + + override fun onOrderJourneyCompleted() { + } + + override fun onStartAutopilot() { } } \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt index 5358875022..024522157c 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -167,6 +167,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), if (currentTaskWithOrder == null) { initContainerView(false) removeAllMapMarker() + updateNextTaskFragment(currentTaskWithOrder) return@collect } updateNextTaskFragment(currentTaskWithOrder) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt index 061d5557f2..55818d14b4 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -39,7 +39,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), private val TAG = SceneConstant.M_TAXI + "TaxiUnmannedViewModel" init { - TaxiTaskModel.setTaskWithOrderCallback(this) + TaxiTaskModel.addTaskWithOrderListener(TAG, this) TaxiTaskModel.setCarServiceCallback(this) } @@ -200,7 +200,6 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), } } - override fun onTaskWithOrderDataChanged(result: QueryCurrentTaskRespBean.Result?) { d(TAG, "onTaskWithOrderChanged = result = " + GsonUtil.jsonFromObject(result)) updateTaskAndOrderUi(result) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index 6f4d5e2891..3a7587c1cb 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -84,6 +84,7 @@ import mogo.telematics.pad.MessagePad.GlobalPathResp import mogo_msg.MogoReportMsg.MogoReportMessage import system_master.SsmInfo import system_master.SystemStatusInfo +import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeUnit /** @@ -111,7 +112,8 @@ object TaxiTaskModel { private var mAutopilotPlanningCallback: IOCHTaxiAutopilotPlanningCallback? = null - private var mTaxiTaskWithOrderCallback: ITaxiTaskWithOrderCallback? = null + private val mTaxiTaskWithOrderCallbackMap: ConcurrentHashMap = + ConcurrentHashMap() private var mTaxiCarServiceCallback: ITaxiCarServiceCallback? = null @@ -132,6 +134,20 @@ object TaxiTaskModel { private val mCurrentTaskRoutePointsGcj: MutableList = ArrayList() + fun addTaskWithOrderListener(tag: String, listener: ITaxiTaskWithOrderCallback) { + if (mTaxiTaskWithOrderCallbackMap.containsKey(tag)) { + return + } + mTaxiTaskWithOrderCallbackMap[tag] = listener + } + + fun removeTaskWithOrderListener(tag: String) { + if (!mTaxiTaskWithOrderCallbackMap.containsKey(tag)) { + return + } + mTaxiTaskWithOrderCallbackMap.remove(tag) + } + fun setMoGoAutopilotPlanningListener(moGoAutopilotPlanningCallback: IOCHTaxiAutopilotPlanningCallback?) { mAutopilotPlanningCallback = moGoAutopilotPlanningCallback } @@ -148,10 +164,6 @@ object TaxiTaskModel { mOrderStatusCallback = callback } - fun setTaskWithOrderCallback(callback: ITaxiTaskWithOrderCallback) { - mTaxiTaskWithOrderCallback = callback - } - fun setCarServiceCallback(callback: ITaxiCarServiceCallback) { mTaxiCarServiceCallback = callback } @@ -664,18 +676,25 @@ object TaxiTaskModel { if (result.endSite == null && result.order == null) { d(TAG, "queryCurrentTaskOnce: 任务为空") mCurrentTaskWithOrder = null - mTaxiTaskWithOrderCallback?.onTaskWithOrderDataChanged(null) + + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onTaskWithOrderDataChanged(null) + } return } //当前任务完成且订单状态到达乘客上车点, 则立马去拉取任务 不再等30s,否则送驾任务要等30s后才能去执行 if (result?.currentStatus == TaskStatusEnum.CompleteTask.code) { - mTaxiTaskWithOrderCallback?.onTaskCompleted( - QueryCurrentTaskRespBean.isOrderArriveAtStart( - result - ), - result.endSite!!.siteId - ) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onTaskCompleted( + QueryCurrentTaskRespBean.isOrderArriveAtStart( + result + ), + result.endSite!!.siteId + ) + } } updateLocalCalculateStation() @@ -683,7 +702,10 @@ object TaxiTaskModel { //达到终点后查询全程里程和用时 if (QueryCurrentTaskRespBean.isOrderArriveAtEnd(result)) { d(TAG, "queryCurrentTaskOnce ArriveAtEnd") - mTaxiTaskWithOrderCallback?.onOrderArriveAtEnd(result.order!!.orderNo) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onOrderArriveAtEnd(result.order!!.orderNo) + } } //根据lineId集合去查轨迹集合, 返回的只是接驾任务的line集合, 没有送驾任务 @@ -703,12 +725,18 @@ object TaxiTaskModel { d(TAG, "queryCurrentTaskOnce autoStartDriving") //启动动画+文字 mControllerStatusCallback?.startOpenAutopilotNonManual() - mTaxiTaskWithOrderCallback?.onStartAutopilot() + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onStartAutopilot() + } } } if (mDriveToNearestStationTask == null) { - mTaxiTaskWithOrderCallback?.onTaskWithOrderDataChanged(mCurrentTaskWithOrder) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onTaskWithOrderDataChanged(mCurrentTaskWithOrder) + } } } } @@ -749,20 +777,29 @@ object TaxiTaskModel { TaxiOrderStatusEnum.Cancel.code -> { //更新本地标志位 mCurrentTaskWithOrder?.order = null - mTaxiTaskWithOrderCallback?.onOrderCancel() + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onOrderCancel() + } } TaxiOrderStatusEnum.ArriveAtEnd.code -> { - mTaxiTaskWithOrderCallback?.onOrderTotalMileAndDurationChanged( - data.data.mileage, - data.data.duration.toInt() - ) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onOrderTotalMileAndDurationChanged( + data.data.mileage, + data.data.duration.toInt() + ) + } } TaxiOrderStatusEnum.JourneyCompleted.code -> { //更新本地标志位 mCurrentTaskWithOrder?.order = null - mTaxiTaskWithOrderCallback?.onOrderJourneyCompleted() + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onOrderJourneyCompleted() + } } } } @@ -842,7 +879,10 @@ object TaxiTaskModel { mTaskTrajectoryList.addAll(it) mCurrentTaskTrajectory = it.first { currentTaskLineId == it.lineId } } - mTaxiTaskWithOrderCallback?.onTaskTrajectoryDataChanged(data) + mTaxiTaskWithOrderCallbackMap.forEach { + val listener = it.value + listener.onTaskTrajectoryDataChanged(data) + } } override fun onFail(code: Int, msg: String?) { diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_base_fragment.xml index a06ee98176..6b145ab523 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_base_fragment.xml @@ -336,52 +336,34 @@