diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index ba88783b21..ef1063f4fc 100644 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -117,16 +117,6 @@ app:layout_goneMarginEnd="40dp" app:layout_goneMarginTop="@dimen/dp_236" /> - - - { - if (TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.curOrderStatus === TaxiPassengerOrderStatusEnum.UserArriveAtStart) { + if (TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.curOrderStatus === TaxiOrderStatusEnum.UserArriveAtStart) { TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent( false, true, diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt index a2dc7ddf4f..c423e1f062 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.kt @@ -33,8 +33,8 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum.Companion.valueOf +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum.Companion.valueOf import com.mogo.och.taxi.passenger.network.TaxiPassengerServiceManager import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import com.mogo.och.taxi.passenger.utils.TaxiPassengerAnalyticsManager @@ -179,7 +179,7 @@ object TaxiPassengerModel { object : OchCommonServiceCallback { override fun onSuccess(data: TaxiPassengerOrderQueryRespBean) { if (data.data != null && currentOCHOrder != null && currentOCHOrder!!.orderNo == data.data.orderNo) { - if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.code || data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.code) { + if (data.data.orderStatus == TaxiOrderStatusEnum.Cancel.code || data.data.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.code || data.data.orderStatus == TaxiOrderStatusEnum.None.code) { currentOCHOrder = data.data orderStatusChange() currentOCHOrder = null @@ -196,11 +196,11 @@ object TaxiPassengerModel { } // 获取当前订单状态 - val curOrderStatus: TaxiPassengerOrderStatusEnum + val curOrderStatus: TaxiOrderStatusEnum get() { val order: TaxiPassengerOrderQueryRespBean.Result = currentOCHOrder - ?: return TaxiPassengerOrderStatusEnum.None + ?: return TaxiOrderStatusEnum.None return valueOf(order.orderStatus) } @@ -258,7 +258,7 @@ object TaxiPassengerModel { phoneTail, object : OchCommonServiceCallback { override fun onSuccess(data: TaxiPassengerBaseRespBean) { if (data.code == 0 && currentOCHOrder != null) { - currentOCHOrder!!.orderStatus = TaxiPassengerOrderStatusEnum.UserArriveAtStart.code + currentOCHOrder!!.orderStatus = TaxiOrderStatusEnum.UserArriveAtStart.code //乘客验证成功,更新订单状态为 "乘客已上车", 立马弹出乘客开始行程页面,不再等待轮询 orderStatusChange() VoiceNotice.showNotice("验证成功!关闭车门并佩戴安全带后开启行程吧!", AIAssist.LEVEL2) @@ -283,15 +283,15 @@ object TaxiPassengerModel { private fun orderStatusChangeInner() { when (curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + TaxiOrderStatusEnum.OnTheWayToStart -> { } - TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + TaxiOrderStatusEnum.ArriveAtStart -> { } - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + TaxiOrderStatusEnum.UserArriveAtStart -> { //开启轮询司机是否已准备好开启自动驾驶的环境 setStation() } - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { CallerFuncBizManager.bizProvider.queryV2XEvents() //全览模式的V2X事件轮询开始 //startOrStopQueryOrderRemaining(true) AutopilotManager.updateAutopilotControlParameters() @@ -299,24 +299,24 @@ object TaxiPassengerModel { setStation() CallerOrderListenerManager.invokeOrderStatus(true) } - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + TaxiOrderStatusEnum.ArriveAtEnd -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) CallerOrderListenerManager.invokeOrderStatus(false) cleanStation() } - TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + TaxiOrderStatusEnum.JourneyCompleted -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) cleanStation() } - TaxiPassengerOrderStatusEnum.Cancel -> { + TaxiOrderStatusEnum.Cancel -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) startOrStopReadyToAutopilotLoop(false) cleanStation() } - TaxiPassengerOrderStatusEnum.None -> TODO() + TaxiOrderStatusEnum.None -> TODO() } } diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt index 2253f7aeb1..21a45e9958 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -10,7 +10,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.model.AutopilotManager import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment @@ -65,7 +65,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : order?.let { setItineraryVisibility() when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + TaxiOrderStatusEnum.OnTheWayToStart -> { // 10 接驾中 mView?.showOrHideCheckAndStartAutopilotView(3) @@ -73,19 +73,19 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewClear() } - TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + TaxiOrderStatusEnum.ArriveAtStart -> { // 20 司机到达上车点 mView?.showOrHideCheckAndStartAutopilotView(0) overMapViewClear() } - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + TaxiOrderStatusEnum.UserArriveAtStart -> { // 30 乘客到达上车点 mView?.showOrHideCheckAndStartAutopilotView(1) overMapViewClear() } - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { // 服务中(去往目的地) mView?.showOrHideArrivedEndLayout(isShow = false) mView?.showOrHideCheckAndStartAutopilotView(2) @@ -93,18 +93,18 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewShow() } - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + TaxiOrderStatusEnum.ArriveAtEnd -> { // 50 到达终点 乘客可以评价 mView?.showOrHideArrivedEndLayout(true) overMapViewClear() } - TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + TaxiOrderStatusEnum.JourneyCompleted -> { // 60 行程完成 mView?.showOrHideCheckAndStartAutopilotView(3) mView?.showOrHideArrivedEndLayout(false) overMapViewClear() } - TaxiPassengerOrderStatusEnum.Cancel -> { + TaxiOrderStatusEnum.Cancel -> { // 70 取消订单 mView?.showOrHideCheckAndStartAutopilotView(3) mView?.showOrHideArrivedEndLayout(isShow = false) @@ -133,14 +133,14 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : fun setItineraryVisibility() { UiThreadHandler.post { when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.None, - TaxiPassengerOrderStatusEnum.OnTheWayToStart, - TaxiPassengerOrderStatusEnum.ArriveAtStart, - TaxiPassengerOrderStatusEnum.JourneyCompleted, - TaxiPassengerOrderStatusEnum.ArriveAtEnd, - TaxiPassengerOrderStatusEnum.Cancel -> mView?.showOrHideServingOrderFragment(false) - TaxiPassengerOrderStatusEnum.UserArriveAtStart, - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) + TaxiOrderStatusEnum.None, + TaxiOrderStatusEnum.OnTheWayToStart, + TaxiOrderStatusEnum.ArriveAtStart, + TaxiOrderStatusEnum.JourneyCompleted, + TaxiOrderStatusEnum.ArriveAtEnd, + TaxiOrderStatusEnum.Cancel -> mView?.showOrHideServingOrderFragment(false) + TaxiOrderStatusEnum.UserArriveAtStart, + TaxiOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) } } } diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index b467795782..22042eb93d 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -10,6 +10,7 @@ import com.alibaba.android.arouter.launcher.ARouter import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P @@ -112,6 +113,7 @@ class TaxiPassengerBaseFragment() : override fun onApplyClick(selectItem: BottomBar.SelectView) { when (selectItem) { BottomBar.SelectView.PRECISIONMAP -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.VISIBLE) overMapView.visibility = View.GONE mapBizView.visibility = View.VISIBLE presenter?.setItineraryVisibility() @@ -132,6 +134,7 @@ class TaxiPassengerBaseFragment() : CallerHmiManager.showTurnLightView() } BottomBar.SelectView.OVERMAPVIEW -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.GONE) overMapView.visibility = View.VISIBLE mapBizView.visibility = View.GONE presenter?.setItineraryVisibility() @@ -147,6 +150,7 @@ class TaxiPassengerBaseFragment() : CallerHmiManager.showTurnLightView() } BottomBar.SelectView.VIDEO -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.GONE) overMapView.visibility = View.GONE mapBizView.visibility = View.GONE presenter?.setItineraryVisibility() diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt index bd995ffa64..9dea09ad2f 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -1,7 +1,7 @@ package com.mogo.och.taxi.passenger.ui.checkstartautopilot import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener import com.mogo.och.taxi.passenger.ui.model.order.OrderModel @@ -33,10 +33,10 @@ class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener { override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { when (order?.orderStatus) { - TaxiPassengerOrderStatusEnum.ArriveAtStart.code -> { + TaxiOrderStatusEnum.ArriveAtStart.code -> { // 显示手机号验证 } - TaxiPassengerOrderStatusEnum.UserArriveAtStart.code -> { + TaxiOrderStatusEnum.UserArriveAtStart.code -> { // 显示启动自驾 } else -> { diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt index b6185f3725..2c3a95e54e 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -7,7 +7,7 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.taxi.passenger.R import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.model.TaxiPassengerModel import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener @@ -78,7 +78,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback, Ord } } when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { } else ->{ diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index 32033a41e1..cdf1b2fc72 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -91,7 +91,7 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" - android:layout_marginTop="@dimen/dp_165" + android:layout_marginTop="@dimen/dp_150" android:visibility="gone" app:fusionLightUser="passenger" /> @@ -205,10 +205,11 @@ diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt index 8cff801ca8..52d9355649 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt @@ -2,7 +2,6 @@ package com.mogo.och.taxi.passenger.ui.model.music import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.audition.AuditionManager import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener @@ -11,7 +10,7 @@ import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener import com.mogo.och.taxi.passenger.ui.model.order.OrderModel -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import io.reactivex.disposables.Disposable object MusicModel : OrderListener, IOchAutopilotStatusListener { @@ -29,26 +28,26 @@ object MusicModel : OrderListener, IOchAutopilotStatusListener { override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { this.orderInfo = order order?.orderStatus?.let { - when (TaxiPassengerOrderStatusEnum.valueOf(it)) { - TaxiPassengerOrderStatusEnum.None -> { + when (TaxiOrderStatusEnum.valueOf(it)) { + TaxiOrderStatusEnum.None -> { cancelStopMusicDisposable() } - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + TaxiOrderStatusEnum.OnTheWayToStart -> { cancelStopMusicDisposable() } - TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + TaxiOrderStatusEnum.ArriveAtStart -> { cancelStopMusicDisposable() } - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> {} - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> {} - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> {} - TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + TaxiOrderStatusEnum.UserArriveAtStart -> {} + TaxiOrderStatusEnum.OnTheWayToEnd -> {} + TaxiOrderStatusEnum.ArriveAtEnd -> {} + TaxiOrderStatusEnum.JourneyCompleted -> { cancelStopMusicDisposable() stopMusicDisposable = RxUtils.createSubscribe(60_000) { AuditionManager.stop() } } - TaxiPassengerOrderStatusEnum.Cancel -> { + TaxiOrderStatusEnum.Cancel -> { cancelStopMusicDisposable() stopMusicDisposable = RxUtils.createSubscribe(60_000) { AuditionManager.stop() diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt deleted file mode 100644 index 1445172de8..0000000000 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/order/TaxiPassengerOrderStatusEnum.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.taxi.passenger.ui.model.order - -/** - * Created on 2021/12/7 - * - * * Old code:START - * 未派单 0 - * 去往上车站点 1 - * 车辆已到达上车站点 2 - * 乘客已到达上车站点 3 - * 去往下车站点 4 - * 到达下车站点 5 - * 已完成 6 - * 已取消 7 - * Old code:END - * - * 0 订单创建(为派单), - * 10 已派上司机(司机去往上车点), - * 20 司机到达上车点, - * 30 乘客到达上车点, - * 40 服务中(去往目的地), - * 50 到达目的地, - * 60 已完成, - * 70 已取消 - */ -enum class TaxiPassengerOrderStatusEnum(val code: Int) { - None( 0 ), - OnTheWayToStart( 10), - ArriveAtStart( 20), - UserArriveAtStart( 30), - OnTheWayToEnd( 40), - ArriveAtEnd( 50), - JourneyCompleted(60),//行程完成 - Cancel( 70); - - companion object { - @JvmStatic - fun valueOf(code: Int): TaxiPassengerOrderStatusEnum { - for (value in values()) { - if (value.code == code) { - return value - } - } - return None - } - } -} \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/bean/TaxiDriverTaskWithOrderBean.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/bean/TaxiDriverTaskWithOrderBean.kt index e6f292801c..a38b882ba0 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/bean/TaxiDriverTaskWithOrderBean.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/bean/TaxiDriverTaskWithOrderBean.kt @@ -2,7 +2,7 @@ package com.mogo.och.unmanned.taxi.bean import com.mogo.eagle.core.data.BaseData import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum /** * @author: wangmingjun diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/constant/TaxiOrderStatusEnum.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/constant/TaxiOrderStatusEnum.kt deleted file mode 100644 index cbe2724f4d..0000000000 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/constant/TaxiOrderStatusEnum.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.och.unmanned.taxi.constant - -/** - * Created on 2021/12/7 - * - * * Old code:START - * 未派单 0 - * 去往上车站点 1 - * 车辆已到达上车站点 2 - * 乘客已到达上车站点 3 - * 去往下车站点 4 - * 到达下车站点 5 - * 已完成 6 - * 已取消 7 - * Old code:END - * - * 0 订单创建(为派单), - * 10 已派上司机(司机去往上车点), - * 20 司机到达上车点, - * 30 乘客到达上车点, - * 40 服务中(去往目的地), - * 50 到达目的地, - * 60 已完成, - * 70 已取消 - */ -enum class TaxiOrderStatusEnum(val code: Int) { - None( 0 ), - OnTheWayToStart( 10), - ArriveAtStart( 20), - UserArriveAtStart( 30), - OnTheWayToEnd( 40), - ArriveAtEnd( 50), - JourneyCompleted(60),//行程完成 - Cancel( 70); - - companion object { - @JvmStatic - fun valueOf(code: Int): TaxiOrderStatusEnum? { - for (value in values()) { - if (value.code == code) { - return value - } - } - return None - } - } -} \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/BaseTaxiTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/BaseTaxiTabFragment.kt index 3cbd05f4bb..7a2b42f88a 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/BaseTaxiTabFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/BaseTaxiTabFragment.kt @@ -20,6 +20,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxButtonView import com.mogo.eagle.core.function.hmi.ui.widget.ParallelDriveView import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener @@ -142,6 +143,8 @@ abstract class BaseTaxiTabFragment> : MvpFragment(R.id.btnOpenDebugView)?.setOnClickListener { val intent = Intent() diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/TaxiFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/TaxiFragment.kt index 67cced8ab7..14830d9b93 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/TaxiFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/base/TaxiFragment.kt @@ -6,8 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.FragmentTransaction -import com.mogo.commons.AbsMogoApplication - import com.mogo.commons.module.status.IMogoStatusChangedListener +import com.mogo.commons.module.status.IMogoStatusChangedListener import com.mogo.commons.module.status.MogoStatusManager import com.mogo.commons.module.status.StatusDescriptor import com.mogo.eagle.core.data.temp.EventLogout @@ -21,7 +20,7 @@ import com.mogo.och.common.module.biz.login.OpenOrderStatusEnum import com.mogo.och.common.module.utils.FlowBus import com.mogo.och.unmanned.taxi.R import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.ui.operational.TaxiOperationalDialogFragment import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingFragment import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/debug/DebugView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/debug/DebugView.kt index bcf01580af..d002438123 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/debug/DebugView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/debug/DebugView.kt @@ -32,7 +32,7 @@ import com.mogo.och.unmanned.taxi.bean.TrajectoryListRespBean import com.mogo.och.unmanned.taxi.callback.ITaxiTaskWithOrderCallback import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum import com.mogo.och.unmanned.taxi.constant.TaskTypeEnum -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.ui.task.TaxiTaskModel import kotlinx.android.synthetic.main.unmanned_taxi_debug_order.view.btnContainer import kotlinx.android.synthetic.main.unmanned_taxi_debug_order.view.currentBusinessModeTextView diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/operational/TaskOrOrderAdapter.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/operational/TaskOrOrderAdapter.kt index 7dd0678120..9246cd0ebf 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/operational/TaskOrOrderAdapter.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/operational/TaskOrOrderAdapter.kt @@ -20,7 +20,7 @@ import com.mogo.och.unmanned.taxi.bean.QueryOrdersRespBean import com.mogo.och.unmanned.taxi.bean.QueryTaskRespBean import com.mogo.och.unmanned.taxi.constant.OperationalOrderStatusEnum import com.mogo.och.unmanned.taxi.constant.StationTypeEnum -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum /** * @author: wangmingjun diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskFragment.kt index 8124cfed5b..7066e489f3 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskFragment.kt @@ -23,6 +23,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager import com.mogo.och.common.module.map.AmapNaviToDestinationModel import com.mogo.och.common.module.map.ICommonNaviChangedCallback @@ -37,7 +38,6 @@ import com.mogo.och.unmanned.taxi.bean.StartServiceRespBean import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum import com.mogo.och.unmanned.taxi.constant.TaskTypeEnum import com.mogo.och.unmanned.taxi.constant.TaxiDriverEventConst -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskViewModel.kt index a9df3a977d..1039f9e12d 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -15,6 +15,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.network.OchCommonServiceCallback @@ -31,7 +32,6 @@ import com.mogo.och.unmanned.taxi.callback.ITaxiCarServiceCallback import com.mogo.och.unmanned.taxi.callback.ITaxiTaskWithOrderCallback import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum import com.mogo.och.unmanned.taxi.constant.TaskTypeEnum -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst import com.mogo.och.unmanned.taxi.network.TaxiTaskWithOrderServiceManager import com.mogo.och.unmanned.taxi.ui.debug.DebugView diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiOrderCancelDialog.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiOrderCancelDialog.java index 58fdc7d207..ddd170a5f3 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiOrderCancelDialog.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiOrderCancelDialog.java @@ -24,7 +24,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.unmanned.taxi.R; import com.mogo.och.unmanned.taxi.constant.TaxiOrderCancelReasons; -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum; +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum; import java.lang.ref.WeakReference; diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiTaskModel.kt index 0b1c31c105..a3a814d961 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/TaxiTaskModel.kt @@ -30,7 +30,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.CoordinateUtils -import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.StringUtils @@ -70,7 +69,7 @@ import com.mogo.och.unmanned.taxi.callback.ITaxiOrderStatusCallback import com.mogo.och.unmanned.taxi.callback.ITaxiTaskWithOrderCallback import com.mogo.och.unmanned.taxi.constant.TaskStatusEnum import com.mogo.och.unmanned.taxi.constant.TaskTypeEnum -import com.mogo.och.unmanned.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE import com.mogo.och.unmanned.taxi.network.TaxiTaskWithOrderServiceManager diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_taxi_base_fragment.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_taxi_base_fragment.xml index 4e2a6963e0..ce7bda2a37 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_taxi_base_fragment.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/unmanned_taxi_base_fragment.xml @@ -209,6 +209,15 @@ app:fusionLightUser="driver" /> + + + + + + { - if (TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.curOrderStatus === TaxiPassengerOrderStatusEnum.UserArriveAtStart) { + if (TaxiPassengerModel.currentOCHOrder != null && TaxiPassengerModel.curOrderStatus === TaxiOrderStatusEnum.UserArriveAtStart) { TaxiPassengerAnalyticsManager.triggerStartAutopilotEvent( false, true, diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/model/TaxiPassengerModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/model/TaxiPassengerModel.kt index b8280ede11..609aa88782 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/model/TaxiPassengerModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/model/TaxiPassengerModel.kt @@ -29,8 +29,8 @@ import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum.Companion.valueOf +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum.Companion.valueOf import com.mogo.och.taxi.passenger.ui.model.order.OrderModel import com.mogo.och.unmanned.passenger.bean.TaxiPassengerBaseRespBean import com.mogo.och.unmanned.passenger.bean.TaxiPassengerGetTrajectoryByLineIdRespBean @@ -216,8 +216,8 @@ object TaxiPassengerModel { currentOCHOrder = currentOrder orderStatusChange() } else if (currentOCHOrder?.orderStatus != currentOrder.orderStatus) { - if (currentOCHOrder?.orderStatus == TaxiPassengerOrderStatusEnum.UserArriveAtStart.code - && currentOrder.orderStatus < TaxiPassengerOrderStatusEnum.UserArriveAtStart.code + if (currentOCHOrder?.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.code + && currentOrder.orderStatus < TaxiOrderStatusEnum.UserArriveAtStart.code ) { // 0830 UserArriveAtStart 状态是乘客屏本地在用户验证后本地设置,而且因为后端查询数据有延迟 // 这里过下过滤,如果当前是UserArriveAtStart 且后端返回是之前状态,不更新数据 @@ -275,9 +275,9 @@ object TaxiPassengerModel { && currentOCHOrder != null && currentOCHOrder!!.orderNo == data.data.orderNo ) { - if (data.data.orderStatus == TaxiPassengerOrderStatusEnum.Cancel.code - || data.data.orderStatus == TaxiPassengerOrderStatusEnum.JourneyCompleted.code - || data.data.orderStatus == TaxiPassengerOrderStatusEnum.None.code + if (data.data.orderStatus == TaxiOrderStatusEnum.Cancel.code + || data.data.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.code + || data.data.orderStatus == TaxiOrderStatusEnum.None.code ) { currentOCHOrder = data.data orderStatusChange() @@ -298,11 +298,11 @@ object TaxiPassengerModel { } // 获取当前订单状态 - val curOrderStatus: TaxiPassengerOrderStatusEnum + val curOrderStatus: TaxiOrderStatusEnum get() { val order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean = currentOCHOrder - ?: return TaxiPassengerOrderStatusEnum.None + ?: return TaxiOrderStatusEnum.None return valueOf(order.orderStatus) } @@ -376,7 +376,7 @@ object TaxiPassengerModel { override fun onSuccess(data: TaxiPassengerBaseRespBean) { if (data.code == 0 && currentOCHOrder != null) { currentOCHOrder!!.orderStatus = - TaxiPassengerOrderStatusEnum.UserArriveAtStart.code + TaxiOrderStatusEnum.UserArriveAtStart.code //乘客验证成功,更新订单状态为 "乘客已上车", 立马弹出乘客开始行程页面,不再等待轮询 orderStatusChange() VoiceNotice.showNotice( @@ -405,18 +405,18 @@ object TaxiPassengerModel { private fun orderStatusChangeInner() { when (curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + TaxiOrderStatusEnum.OnTheWayToStart -> { } - TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + TaxiOrderStatusEnum.ArriveAtStart -> { } - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + TaxiOrderStatusEnum.UserArriveAtStart -> { //开启轮询司机是否已准备好开启自动驾驶的环境 setStation() } - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { CallerFuncBizManager.bizProvider.queryV2XEvents() //全览模式的V2X事件轮询开始 //startOrStopQueryOrderRemaining(true) AutopilotManager.updateAutopilotControlParameters() @@ -424,26 +424,26 @@ object TaxiPassengerModel { CallerOrderListenerManager.invokeOrderStatus(true) } - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + TaxiOrderStatusEnum.ArriveAtEnd -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) CallerOrderListenerManager.invokeOrderStatus(false) clearStation() } - TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + TaxiOrderStatusEnum.JourneyCompleted -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) clearStation() } - TaxiPassengerOrderStatusEnum.Cancel -> { + TaxiOrderStatusEnum.Cancel -> { AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) clearStation() } - TaxiPassengerOrderStatusEnum.None -> { + TaxiOrderStatusEnum.None -> { //AutopilotManager.clearAutopilotControlParameters() //startOrStopQueryOrderRemaining(false) clearStation() diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/presenter/BaseTaxiPassengerPresenter.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/presenter/BaseTaxiPassengerPresenter.kt index 0753d362b2..69fea381ad 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/presenter/BaseTaxiPassengerPresenter.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/presenter/BaseTaxiPassengerPresenter.kt @@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager import com.mogo.och.unmanned.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener import com.mogo.och.taxi.passenger.ui.model.order.OrderModel @@ -56,7 +56,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : private fun updateOrderView(order: TaxiPassengerOrdersInServiceQueryRespBean.OrderBean?) { setItineraryVisibility() when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToStart -> { + TaxiOrderStatusEnum.OnTheWayToStart -> { // 10 接驾中 mView?.showOrHideCheckAndStartAutopilotView(3) @@ -64,19 +64,19 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewClear() } - TaxiPassengerOrderStatusEnum.ArriveAtStart -> { + TaxiOrderStatusEnum.ArriveAtStart -> { // 20 司机到达上车点 mView?.showOrHideCheckAndStartAutopilotView(0) overMapViewClear() } - TaxiPassengerOrderStatusEnum.UserArriveAtStart -> { + TaxiOrderStatusEnum.UserArriveAtStart -> { // 30 乘客到达上车点 mView?.showOrHideCheckAndStartAutopilotView(1) overMapViewClear() } - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { // 服务中(去往目的地) mView?.showOrHideArrivedEndLayout(isShow = false) @@ -85,13 +85,13 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewShow() } - TaxiPassengerOrderStatusEnum.ArriveAtEnd -> { + TaxiOrderStatusEnum.ArriveAtEnd -> { // 50 到达终点 乘客可以评价 mView?.showOrHideArrivedEndLayout(true) overMapViewClear() } - TaxiPassengerOrderStatusEnum.JourneyCompleted -> { + TaxiOrderStatusEnum.JourneyCompleted -> { // 60 行程完成 mView?.showOrHideCheckAndStartAutopilotView(3) @@ -99,7 +99,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewClear() } - TaxiPassengerOrderStatusEnum.Cancel -> { + TaxiOrderStatusEnum.Cancel -> { // 70 取消订单 mView?.showOrHideCheckAndStartAutopilotView(3) @@ -107,7 +107,7 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : overMapViewClear() } - TaxiPassengerOrderStatusEnum.None -> { + TaxiOrderStatusEnum.None -> { // 00 默认状态,在不同任务之间切换时使用 mView?.showOrHideCheckAndStartAutopilotView(3) @@ -129,14 +129,14 @@ class BaseTaxiPassengerPresenter(view: TaxiPassengerBaseFragment?) : fun setItineraryVisibility() { UiThreadHandler.post { when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.None, - TaxiPassengerOrderStatusEnum.OnTheWayToStart, - TaxiPassengerOrderStatusEnum.ArriveAtStart, - TaxiPassengerOrderStatusEnum.JourneyCompleted, - TaxiPassengerOrderStatusEnum.ArriveAtEnd, - TaxiPassengerOrderStatusEnum.Cancel -> mView?.showOrHideServingOrderFragment(false) - TaxiPassengerOrderStatusEnum.UserArriveAtStart, - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) + TaxiOrderStatusEnum.None, + TaxiOrderStatusEnum.OnTheWayToStart, + TaxiOrderStatusEnum.ArriveAtStart, + TaxiOrderStatusEnum.JourneyCompleted, + TaxiOrderStatusEnum.ArriveAtEnd, + TaxiOrderStatusEnum.Cancel -> mView?.showOrHideServingOrderFragment(false) + TaxiOrderStatusEnum.UserArriveAtStart, + TaxiOrderStatusEnum.OnTheWayToEnd -> mView?.showOrHideServingOrderFragment(true) } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt index 550269a4b8..2780a758a7 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/TaxiPassengerBaseFragment.kt @@ -11,6 +11,7 @@ import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P @@ -131,6 +132,7 @@ class TaxiPassengerBaseFragment() : override fun onApplyClick(selectItem: BottomBar.SelectView) { when (selectItem) { BottomBar.SelectView.PRECISIONMAP -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.VISIBLE) overMapView.visibility = View.GONE mapBizView.visibility = View.VISIBLE presenter?.setItineraryVisibility() @@ -151,6 +153,7 @@ class TaxiPassengerBaseFragment() : CallerHmiManager.showTurnLightView() } BottomBar.SelectView.OVERMAPVIEW -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.GONE) overMapView.visibility = View.VISIBLE mapBizView.visibility = View.GONE presenter?.setItineraryVisibility() @@ -166,6 +169,7 @@ class TaxiPassengerBaseFragment() : CallerHmiManager.showTurnLightView() } BottomBar.SelectView.VIDEO -> { + CallerHmiViewControlListenerManager.invokeMainPageViewVisible(View.GONE) overMapView.visibility = View.GONE mapBizView.visibility = View.GONE presenter?.setItineraryVisibility() diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt index ae6f91ec18..4efae6ef1f 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/checkstartautopilot/ChekAndStartAutopilotViewModel.kt @@ -1,7 +1,7 @@ package com.mogo.och.unmanned.passenger.ui.checkstartautopilot import androidx.lifecycle.ViewModel -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener import com.mogo.och.taxi.passenger.ui.model.order.OrderModel @@ -32,10 +32,10 @@ class ChekAndStartAutopilotViewModel : ViewModel(), OrderListener { override fun onCurrentOrderStatusChanged(order: BaseOrderBean?) { when (order?.orderStatus) { - TaxiPassengerOrderStatusEnum.ArriveAtStart.code -> { + TaxiOrderStatusEnum.ArriveAtStart.code -> { // 显示手机号验证 } - TaxiPassengerOrderStatusEnum.UserArriveAtStart.code -> { + TaxiOrderStatusEnum.UserArriveAtStart.code -> { // 显示启动自驾 } else -> { diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/orderinfo/OrderInfoViewModel.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/orderinfo/OrderInfoViewModel.kt index 511e20ff62..94adf32f20 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/orderinfo/OrderInfoViewModel.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/unmanned/passenger/ui/orderinfo/OrderInfoViewModel.kt @@ -6,7 +6,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.unmanned.taxi.passenger.R -import com.mogo.och.taxi.passenger.ui.model.order.TaxiPassengerOrderStatusEnum +import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum import com.mogo.och.taxi.passenger.ui.model.order.BaseOrderBean import com.mogo.och.taxi.passenger.ui.model.order.OrderListener import com.mogo.och.taxi.passenger.ui.model.order.OrderModel @@ -82,7 +82,7 @@ class OrderInfoViewModel: ViewModel(), IOCHTaxiPassengerOrderStatusCallback, Ord } } when (TaxiPassengerModel.curOrderStatus) { - TaxiPassengerOrderStatusEnum.OnTheWayToEnd -> { + TaxiOrderStatusEnum.OnTheWayToEnd -> { } else ->{ diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml index fef4efacbb..0b708d58f7 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml @@ -91,23 +91,41 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" - android:layout_marginTop="@dimen/dp_165" + android:layout_marginTop="@dimen/dp_150" android:visibility="gone" app:fusionLightUser="passenger" /> + + + + + + 0) { for (String taskName : gradle.startParameter.taskNames) { println "对比结果----------${taskName}" - if (taskName.contains("Yantai")) { - project.dependencies.add('implementation', project.project(':tts:tts-iflytek')) - }else if (taskName.contains("Mogo")) { - if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { - println "Mogo环境T1T2车 引入小智----------${taskName}" - project.dependencies.add('implementation', project.project(':tts:tts-zhi')) - }else { - project.dependencies.add('implementation', project.project(':tts:tts-pad')) - } - }else if (taskName.contains("Dali")) { - project.dependencies.add('implementation', project.project(':tts:tts-pad')) - }else if (taskName.contains("Saas")) { - if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { - println "Saas环境T1T2车 引入小智----------${taskName}" - project.dependencies.add('implementation', project.project(':tts:tts-zhi')) - }else { - project.dependencies.add('implementation', project.project(':tts:tts-pad')) - } - }else { - // 不能再else 加任何逻辑 是android dlc的特效 - println("-----------$taskName") - } +// if (taskName.contains("Yantai")) { +// project.dependencies.add('implementation', project.project(':tts:tts-iflytek')) +// }else if (taskName.contains("Mogo")) { +// if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { +// println "Mogo环境T1T2车 引入小智----------${taskName}" +// project.dependencies.add('implementation', project.project(':tts:tts-zhi')) +// }else { +// project.dependencies.add('implementation', project.project(':tts:tts-pad')) +// } +// }else if (taskName.contains("Dali")) { +// project.dependencies.add('implementation', project.project(':tts:tts-pad')) +// }else if (taskName.contains("Saas")) { +// if(taskName.contains("Passenger")&&taskName.contains("T1T2")) { +// println "Saas环境T1T2车 引入小智----------${taskName}" +// project.dependencies.add('implementation', project.project(':tts:tts-zhi')) +// }else { +// project.dependencies.add('implementation', project.project(':tts:tts-pad')) +// } +// }else { +// // 不能再else 加任何逻辑 是android dlc的特效 +// println("-----------$taskName") +// } taskName = taskName.replace("Debug", "") taskName = taskName.replace("Release", "") diff --git a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt index 48b547108e..facc8c0bcd 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt @@ -9,6 +9,7 @@ import androidx.test.platform.app.InstrumentationRegistry import com.google.protobuf.ByteString import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.multidisplay.TelematicConstant +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager @@ -20,12 +21,16 @@ import com.mogo.map.MapDataWrapper import kotlinx.coroutines.delay import kotlinx.coroutines.runBlocking import mogo.telematics.pad.MessagePad +import mogo.telematics.pad.MessagePad.Location +import mogo.telematics.pad.MessagePad.TrackedObject import mogo.telematics.pad.MessagePad.V2nCrossSpeed import org.junit.Before import org.junit.Test import org.junit.runner.RunWith -import java.util.HashMap +import java.util.Collections import java.util.concurrent.TimeUnit +import kotlin.math.cos +import kotlin.math.sin @RunWith(AndroidJUnit4::class) @@ -43,6 +48,100 @@ class V2NTest { launch = ActivityScenario.launch(MainLauncherActivity::class.java) } + @Test + fun testRoadShiGong(): Unit = runBlocking { + val arguments = InstrumentationRegistry.getArguments() + val millis = arguments.getString("delay", "0").toLong() + if (millis > 0) { + delay(millis) + } + FunctionBuildConfig.isNewV2NData = true + FunctionBuildConfig.v2nMainSwitch = true + runCatching { + val map = HashMap().also { + it["f1"] = FunctionBuildConfig.v2nMainSwitch + it["f2"] = FunctionBuildConfig.isNewV2NData + } + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, GsonUtils.toJson(map).toByteArray()) + } + delay(2000) + val targetX = arguments.getString("lon", "0").toDouble() + val targetY = arguments.getString("lat", "0").toDouble() + val targetDistance = arguments.getString("distance", "0").toDouble() + val eventDistance = arguments.getString("event_distance", "50").toDouble() + val r = arguments.getString("r", "1").toDouble() + var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY) + Log.d(TAG, "target_distance: $targetDistance, current distance: $distance, event_distance: $eventDistance") + while (distance > targetDistance) { + delay(2000) + car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY) + Log.d(TAG, "target_distance: $targetDistance, current distance: $distance") + } + car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + val point = DrivingDirectionUtils.calculateNewPoint(car.longitude, car.latitude, car.heading , eventDistance) + val polygon = generateTriangle(point.first, point.second, car.heading, r * 1e-5) + val data = TrackedObject.getDefaultInstance().toBuilder().setType(501).setLongitude(point.first).setLatitude(point.second).setAltitude(0.0).setSystemTime(System.currentTimeMillis() * 1.0 / 1000).setSatelliteTime(1.0).setUuid(10).setCarID("1").setColor("#ffffff").setHeading(car.heading).setSpeed(0.0).setDrawLevel(1).setDriverTime(1.0).setCameraIp("172.18.7.40").setVideoUrl("").addAllImageUrl(Collections.singletonList("http://www.baidu.com")).addAllPolygon(polygon.map { Location.getDefaultInstance().toBuilder().setLongitude(it.first).setLatitude(it.second).setAltitude(0.0).setHeading(0.0).setStation(false).build() }).setDetectStartTime(System.currentTimeMillis()).setV2XUuid("xxxxx1").setStrUuid("xxxxx2").build() + val trafficData = Collections.singletonList(data) + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_SHI_GONG, data.toByteArray()) + CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate(trafficData) + delay(TimeUnit.MINUTES.toMillis(10)) + } + + @Test + fun testRoadShiGu(): Unit = runBlocking { + val arguments = InstrumentationRegistry.getArguments() + val millis = arguments.getString("delay", "0").toLong() + if (millis > 0) { + delay(millis) + } + FunctionBuildConfig.isNewV2NData = true + FunctionBuildConfig.v2nMainSwitch = true + runCatching { + val map = HashMap().also { + it["f1"] = FunctionBuildConfig.v2nMainSwitch + it["f2"] = FunctionBuildConfig.isNewV2NData + } + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, GsonUtils.toJson(map).toByteArray()) + } + delay(2000) + val targetX = arguments.getString("lon", "0").toDouble() + val targetY = arguments.getString("lat", "0").toDouble() + val targetDistance = arguments.getString("distance", "0").toDouble() + val eventDistance = arguments.getString("event_distance", "0").toDouble() + val r = arguments.getString("r", "1").toDouble() + var car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + var distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY) + Log.d(TAG, "target_distance: $targetDistance, current distance: $distance, event_distance: $eventDistance") + while (distance > targetDistance) { + delay(2000) + car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, targetX, targetY) + Log.d(TAG, "target_distance: $targetDistance, current distance: $distance") + } + car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() + val point = DrivingDirectionUtils.calculateNewPoint(car.longitude, car.latitude, car.heading , eventDistance) + val polygon = generateTriangle(point.first, point.second, car.heading, r * 1e-5) + val data = TrackedObject.getDefaultInstance().toBuilder().setType(13).setLongitude(point.first).setLatitude(point.second).setAltitude(0.0).setSystemTime(System.currentTimeMillis() * 1.0 / 1000).setSatelliteTime(1.0).setUuid(10).setCarID("1").setColor("#ffffff").setHeading(car.heading).setSpeed(0.0).setDrawLevel(1).setDriverTime(1.0).setCameraIp("172.18.7.40").setVideoUrl("").addAllImageUrl(Collections.singletonList("http://www.baidu.com")).addAllPolygon(polygon.map { Location.getDefaultInstance().toBuilder().setLongitude(it.first).setLatitude(it.second).setAltitude(0.0).setHeading(0.0).setStation(false).build() }).setDetectStartTime(System.currentTimeMillis()).setV2XUuid("xxxxx1").setStrUuid("xxxxx2").build() + val trafficData = Collections.singletonList(data) + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_SHI_GU, data.toByteArray()) + CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate(trafficData) + delay(TimeUnit.MINUTES.toMillis(10)) + } + + private fun generateTriangle(x: Double, y: Double, angle: Double, r: Double): List> { + val angles = arrayOf(0, 120, 240) + val coordinates = ArrayList>() + for(i in 0 until 3) { + val radian = Math.toRadians(angles[i] + angle) + val x1 = x + (r * cos(radian)) + val y1 = y + (r * sin(radian)) + coordinates += Pair(x1, y1) + } + coordinates.add(coordinates[0]) + return coordinates + } @Test fun testGreenWave(): Unit = runBlocking { @@ -164,8 +263,6 @@ class V2NTest { Log.d(TAG, "location:[x:${targetX}, y:${targetY}, new_location:[x:${newPoint.first}, y:${newPoint.second}]") FunctionBuildConfig.isNewV2NData = true FunctionBuildConfig.v2nMainSwitch = true - FunctionBuildConfig.isNewV2NData = true - FunctionBuildConfig.v2nMainSwitch = true runCatching { val map = HashMap().also { it["f1"] = FunctionBuildConfig.v2nMainSwitch @@ -174,9 +271,9 @@ class V2NTest { CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_NEW_LINK_SWITCH, GsonUtils.toJson(map).toByteArray()) } delay(2000) - val eventId = "xxxxxxxxxxxxx" + val eventId = "yyyyyyyyyyyyy" for (i in 0 until 500) { - val data = MessagePad.Event.getDefaultInstance().toBuilder().setLongitude(newPoint.first).setLatitude(newPoint.second).setEventId(eventId).setTimestamp(System.currentTimeMillis()).addAllTargetIds(emptyList()).addTargetIdsBytes(ByteString.EMPTY).addTargetIds("0").setExts("{ \"cameraIp\": \"172.18.7.40\",\"eventExtUnits\":[{\"heading\":266.5414733886719,\"uuid\":\"e440951e-5eb6-4091-8560-72a5d8aaf229\"}] }").build() + val data = MessagePad.Event.getDefaultInstance().toBuilder().setLongitude(newPoint.first).setLatitude(newPoint.second).setEventId(eventId).setTimestamp(System.currentTimeMillis()).addAllTargetIds(emptyList()).addTargetIdsBytes(ByteString.EMPTY).setGnssType(2).addTargetIds("0").setExts("{ \"cameraIp\": \"172.18.7.40\",\"eventExtUnits\":[{\"heading\":266.5414733886719,\"uuid\":\"e440951e-5eb6-4091-8560-72a5d8aaf229\"}] }").build() CallerTelematicManager.sendMsgToAllClients(TelematicConstant.V2N_AI_ROAD_OTHER_RETROGRADE_VEHICLE, data.toByteArray()) CallerV2nNioEventListenerManager.invokeV2nNioOtherRetrogradeEvent(data) delay(50) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 00e4cecc36..34101dd922 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -6,36 +6,26 @@ import android.os.Message import android.text.TextUtils import android.util.Log import androidx.core.util.Pair -import com.google.gson.JsonArray -import com.google.gson.JsonObject import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.CommunicationType import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.EventTypeEnumNew -import com.mogo.eagle.core.data.enums.TrafficTypeEnum -import com.mogo.eagle.core.data.enums.WarningDirectionEnum.ALERT_WARNING_TOP import com.mogo.eagle.core.data.map.entity.MarkerExploreWay import com.mogo.eagle.core.data.map.entity.MarkerLocation import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType.V2X import com.mogo.eagle.core.data.msgbox.V2XMsg -import com.mogo.eagle.core.function.angle.scenes.Default -import com.mogo.eagle.core.function.angle.scenes.RoadEvent import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener import com.mogo.eagle.core.function.api.autopilot.IMoGoV2nNioEventListener -import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener -import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.V2N -import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerV2XListenerManager.V2NCarTypeCheck import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.hmi.CallerRoadV2NEventWindowListenerManager -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -46,8 +36,7 @@ import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.function.biz.v2x.V2XBizTrace -import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst -import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper +import com.mogo.eagle.function.biz.v2x.v2n.pnc.beans.Extras import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker.Marker import com.mogo.eagle.function.biz.v2x.v2n.utils.EventDismissBean @@ -57,17 +46,12 @@ import com.mogo.eagle.function.biz.v2x.v2n.utils.V2NUtils import com.mogo.eagle.function.biz.v2x.v2n.utils.V2XEventAnalyticsManager import com.mogo.map.MapDataWrapper import com.mogo.map.entities.Lane -import com.mogo.map.overlay.core.Level.MAP_MARKER -import com.mogo.map.overlay.point.Point import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.Header import mogo.telematics.pad.MessagePad.TrackedObject import mogo.telematics.pad.MessagePad.V2nCrossSpeed import mogo.v2x.MogoV2X import mogo.v2x.MogoV2X.RSI_PB -import mogo.v2x.MogoV2X.RTEData_PB -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.TimeUnit.SECONDS import kotlin.math.abs /** @@ -150,7 +134,7 @@ internal object V2NIdentifyDrawer: IEventDismissListener { it.location = e.location it.polygon = polygon } - }), true, isDrawRoadLine(poiType) + }, isUseGps = true), true, isDrawRoadLine(poiType) ) val distance = CoordinateUtils.calculateLineDistance( @@ -174,6 +158,7 @@ internal object V2NIdentifyDrawer: IEventDismissListener { ) ) if (polygon.isNotEmpty()) { + val decision = V2NUtils.computeOccupyLanesInfo(Triple(car.longitude, car.latitude, car.heading.toFloat()), Triple(itx.longitude, itx.latitude, itx.heading.toFloat()), polygon.map { kotlin.Pair(it.first, it.second) }) if (decision != null) { val isDriver = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) @@ -323,31 +308,23 @@ internal object V2NIdentifyDrawer: IEventDismissListener { V2XBizTrace.onAck(TAG, mapOf("other_retrograde_vehicle" to "event == null"), true) return@Callback true } - val body = runCatching { GsonUtils.fromJson(event.exts, Map::class.java) }.getOrNull() - val cameraIp = body?.get("cameraIp") as? String ?: "" - val array = (body?.get("eventExtUnits") as? JsonArray) + val body = runCatching { GsonUtils.fromJson(event.exts, Extras::class.java) }.getOrNull() + val cameraIp = body?.cameraIp + val array = body?.eventExtUnits var heading = 0.0 var uuid = "" - if (array != null && array.size() > 0) { + if (!array.isNullOrEmpty()) { for (e in array) { - if (e is JsonObject) { - if (e.has("heading")) { - heading = runCatching { e.asDouble }.getOrNull() ?: 0.0 - } - if (e.has("uuid")) { - uuid = runCatching { e.asString }.getOrNull() ?: "" - } - } + heading = e.heading ?: 0.0 + uuid = e.uuid ?: "" } } Logger.d(TAG, "cameraIp: $cameraIp, heading:$heading, uuid: $uuid") val newEventId = "other_retrograde_vehicle_${event.eventId}" + val isUseGps = event.gnssType != 0 + val eventLocation = if (isUseGps) arrayOf(event.longitude, event.latitude) else CoordinateTransform.GCJ02ToWGS84(event.longitude, event.latitude) + val carLocation = if (isUseGps) CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() else CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() AiRoadMarker.aiMakers.getOrPut(newEventId) { - val eventLocation = when (event.gnssType) { - 0 -> CoordinateTransform.GCJ02ToWGS84(event.longitude, event.latitude) - else -> arrayOf(event.longitude, event.latitude) - } - val carLocation = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() val distance = CoordinateUtils.calculateLineDistance(carLocation.longitude, carLocation.latitude, eventLocation[0], eventLocation[1]) if (distance > 150) { Logger.i(TAG, "other_retrograde_vehicle --> distance > 150") @@ -364,11 +341,11 @@ internal object V2NIdentifyDrawer: IEventDismissListener { isDriver, String.format(EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType), distance.toInt()), cameraIp.toString(), - event.longitude, - event.latitude) + eventLocation[0], + eventLocation[1]) AiRoadMarker() }.also { - it.marker(Marker(newEventId, EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType, event.longitude, event.latitude, 0.0), drawMarker = true, false, isHighFrequency = true) + it.marker(Marker(newEventId, EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType, eventLocation[0], eventLocation[1], heading, isUseGps = isUseGps), drawMarker = true, false, isHighFrequency = true) }.receive() } else if (msg.what == MSG_WHAT_DRAW_GREEN_WAVE) { val data = msg.obj as? V2nCrossSpeed ?: return@Callback true @@ -406,35 +383,31 @@ internal object V2NIdentifyDrawer: IEventDismissListener { } else if (msg.what == MSG_WHAT_DRAW_PEOPLE_CROSS) { Logger.i(TAG, "people cross -- 1 --") val data = msg.obj as? MessagePad.Event ?: return@Callback true - val body = runCatching { GsonUtils.fromJson(data.exts, Map::class.java) }.getOrNull() - val cameraIp = body?.get("cameraIp") as? String ?: "" - val array = (body?.get("eventExtUnits") as? JsonArray) + val body = runCatching { GsonUtils.fromJson(data.exts, Extras::class.java) }.getOrNull() + val cameraIp = body?.cameraIp + val array = body?.eventExtUnits var heading = 0.0 var uuid = "" - if (array != null && array.size() > 0) { + if (!array.isNullOrEmpty()) { for (e in array) { - if (e is JsonObject) { - if (e.has("heading")) { - heading = runCatching { e.asDouble }.getOrNull() ?: 0.0 - } - if (e.has("uuid")) { - uuid = runCatching { e.asString }.getOrNull() ?: "" - } - } + heading = e.heading ?: 0.0 + uuid = e.uuid ?: "" } } Logger.d(TAG, "cameraIp: $cameraIp, heading:$heading, uuid: $uuid") + val isUseGps = data.gnssType != 0 + val eventLocation = if (isUseGps) arrayOf(data.longitude, data.latitude) else CoordinateTransform.GCJ02ToWGS84(data.longitude, data.latitude) + val carLocation = if (isUseGps) CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() else CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + val distance = CoordinateUtils.calculateLineDistance(carLocation.longitude, carLocation.latitude, eventLocation[0], eventLocation[1]) AiRoadMarker.aiMakers.getOrPut(data.eventId) { Logger.i(TAG, "people cross -- 2 --") - val isDriver = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) - val carLocation = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() - val distance = CoordinateUtils.calculateLineDistance(carLocation.longitude, carLocation.latitude, data.longitude, data.latitude) if (distance > 150) { Logger.i(TAG, "people cross --> distance > 150") V2XBizTrace.onAck(TAG, mapOf("people cross" to "distance > 150"), true) return@Callback true } Logger.i(TAG, "people cross -- 3 --") + val isDriver = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) // 弹事件框 CallerRoadV2NEventWindowListenerManager.showLiveVideo( data.eventId, @@ -444,12 +417,12 @@ internal object V2NIdentifyDrawer: IEventDismissListener { isDriver, String.format(EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType), distance.toInt()), cameraIp.toString(), - data.longitude, - data.latitude) + eventLocation[0], + eventLocation[1]) AiRoadMarker() }.also { Logger.i(TAG, "people cross -- 4 --") - it.marker(Marker(data.eventId, EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType, data.longitude, data.latitude, heading), drawMarker = true, false, isHighFrequency = true) + it.marker(Marker(data.eventId, EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType, eventLocation[0], eventLocation[1], heading, isUseGps = isUseGps), drawMarker = true, false, isHighFrequency = true) }.receive() } true diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt new file mode 100644 index 0000000000..a97cbff741 --- /dev/null +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/beans/Extras.kt @@ -0,0 +1,17 @@ +package com.mogo.eagle.function.biz.v2x.v2n.pnc.beans + +import androidx.annotation.Keep + + +@Keep +data class Extras ( + val cameraIp: String? = null, + val eventExtUnits: List? = null +) + + +@Keep +data class EventExtUnit( + val heading: Double? = null, + val uuid: String? = null +) \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index c5a8a3a94b..342c9ec359 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -107,7 +107,7 @@ class AiRoadMarker { val builder = getOrPutPointOptionBuilder(markerId, V2XConst.V2X_MARKER_OWNER, MAP_MARKER) builder .set3DMode(true) - .isUseGps(true) + .isUseGps(marker.isUseGps) .icon3DRes(EventTypeEnumNew.getMarker3DRes(marker.poiType)) .anchorColor("#D65D5AFF") .controlAngle(true) @@ -122,7 +122,7 @@ class AiRoadMarker { if (marker.poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType) { distance = 100 } - val wrapper = MarkerWrapper(markerId, marker.poi_lon, marker.poi_lat, 1, elapsedDistance = distance) + val wrapper = MarkerWrapper(markerId, marker.poi_lon, marker.poi_lat, if (marker.isUseGps) 1 else 0, elapsedDistance = distance) wrapper.onRemoved = { builders.remove(markerId) markerIds.remove(p.id) @@ -153,7 +153,7 @@ class AiRoadMarker { if (marker.poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_GREE_WAVE.poiType) { elapsedDuration = TimeUnit.SECONDS.toMillis(3) } - val wrapper = MarkerWrapper(markerId, marker.poi_lon, marker.poi_lat, 1, elapsedDistance = elapsedDistance, elapsedDuration = elapsedDuration) + val wrapper = MarkerWrapper(markerId, marker.poi_lon, marker.poi_lat, if (marker.isUseGps) 1 else 0, elapsedDistance = elapsedDistance, elapsedDuration = elapsedDuration) if (drawMarker) { marker.entity?.apply { roadMarker.drawMarkers(this, wrapper) } } @@ -371,6 +371,7 @@ class AiRoadMarker { val polygon: List>? = null, var farthestPoint: Pair? = null, var entity: V2XRoadEventEntity? = null, + var isUseGps: Boolean = false ) { override fun equals(other: Any?): Boolean { diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java index 2353f53d63..b6de8c06b4 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java @@ -47,7 +47,7 @@ public class V2XRoadEventMarker implements IV2XMarker { List> polygons = noveltyInfo.getPolygon(); if (gpsLocation != null && polygons != null) { MarkerLocation location = noveltyInfo.getLocation(); - AiRoadMarker.Marker m = new AiRoadMarker.Marker(noveltyInfo.getInfoId(), noveltyInfo.getPoiType(), gpsLocation.second, gpsLocation.first, location.getAngle(), polygons, null, entity); + AiRoadMarker.Marker m = new AiRoadMarker.Marker(noveltyInfo.getInfoId(), noveltyInfo.getPoiType(), gpsLocation.second, gpsLocation.first, location.getAngle(), polygons, null, entity, false); AiRoadMarker aiMarker = new AiRoadMarker(); aiMarker.marker(m, true, isDrawRoadLine(m.getPoiType()), false); AiRoadMarker.aiMakers.put(noveltyInfo.getInfoId(), aiMarker); diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/V2NUtils.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/V2NUtils.kt index 2e52ad28ec..af239a5731 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/V2NUtils.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/V2NUtils.kt @@ -8,6 +8,8 @@ import com.zhidaoauto.map.data.road.CenterLine import org.locationtech.jts.geom.Coordinate import org.locationtech.jts.geom.GeometryFactory import org.locationtech.jts.geom.LineString +import org.locationtech.jts.geom.LineString.MINIMUM_VALID_SIZE +import org.locationtech.jts.geom.Polygon import org.locationtech.jts.linearref.LengthIndexedLine import java.util.concurrent.CountDownLatch @@ -27,8 +29,20 @@ object V2NUtils { } val occupy = ArrayList() val factory = GeometryFactory() + val polygonList = ArrayList(polygon.map { Coordinate(it.first, it.second) }) + var p1: Polygon? = null + while (p1 == null) { + if (polygonList.size < MINIMUM_VALID_SIZE) { + polygonList.add(polygonList[0]) + continue + } + try { + p1 = factory.createPolygon(polygonList.toTypedArray()) + } catch (ignore: IllegalArgumentException) { + polygonList.add(polygonList[0]) + } + } for (lane in lanes) { - val p1 = factory.createPolygon(polygon.map { Coordinate(it.first, it.second) }.toTypedArray()) val p2 = factory.createLineString(lane.points.map { Coordinate(it.first, it.second) }.toTypedArray()).buffer((lane.width.toDouble() * 0.7 * (1e-5)) / 2.0) if (p1.intersects(p2)) { occupy += lane diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt index 2d58dfb4d9..b277f967e6 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt @@ -16,6 +16,7 @@ import com.mogo.eagle.core.data.v2x.V2XEvent.RoadEventX import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setDemoMode import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setIgnoreConditionDraw +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerV2nNioEventListenerManager import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager @@ -37,7 +38,9 @@ import io.netty.channel.Channel import kotlinx.coroutines.delay import kotlinx.coroutines.launch import mogo.telematics.pad.MessagePad +import mogo.telematics.pad.MessagePad.TrackedObject import java.nio.charset.Charset +import java.util.Collections class TeleMsgHandler : IMsgHandler { @@ -103,6 +106,22 @@ class TeleMsgHandler : IMsgHandler { } return } + if (it.protocolType == TelematicConstant.V2N_AI_ROAD_SHI_GONG) { + runCatching { + Log.d(TAG, "乘客屏收到司机屏转发云端下发的道路施工 --- 1 ---") + CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate(Collections.singletonList(TrackedObject.parseFrom(msg.body))) + Log.d(TAG, "乘客屏收到司机屏转发云端下发的道路施工 --- 2 ---") + } + return + } + if (it.protocolType == TelematicConstant.V2N_AI_ROAD_SHI_GU) { + runCatching { + Log.d(TAG, "乘客屏收到司机屏转发云端下发的道路事故 --- 1 ---") + CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate(Collections.singletonList(TrackedObject.parseFrom(msg.body))) + Log.d(TAG, "乘客屏收到司机屏转发云端下发的道路事故 --- 2 ---") + } + return + } if (it.protocolType == TelematicConstant.V2N_NEW_LINK_SWITCH) { try { Log.d(TAG, "乘客屏收到司机屏转发的新链路开关 --- 1 ---") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt index 7bb2a7ab46..1e3dec751f 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/exploration/AutomaticExplorationView.kt @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.autopilot.AutopilotSummaryInfo +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory @@ -21,6 +22,7 @@ import com.mogo.eagle.core.data.notice.AutoExplorationEntity import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ThreadUtils @@ -125,8 +127,12 @@ class AutomaticExplorationView @JvmOverloads constructor( } } if(allComplete){ - //语音播放 - AIAssist.getInstance(context).speakTTSVoice("道路畅通一切正常蘑菇型车助手将持续守候您的出行") + //停止左上角扫描动画 + rotationAnim?.cancel() + //语音播放,只在司机端播放 + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + AIAssist.getInstance(context).speakTTSVoice("道路畅通一切正常蘑菇型车助手将持续守候您的出行") + } //5秒后关闭弹窗 val hideViewTimer =object: CountDownTimer(EXPLORATION_HIDE_TIME,EXPLORATION_HIDE_TIME){ override fun onTick(millisUntilFinished: Long) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml index 6fbdc75dc0..5b40c87a02 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml @@ -128,6 +128,7 @@ android:textSize="@dimen/sp_94" android:textColor="@color/summary_service_num_p" app:layout_constraintHorizontal_chainStyle="packed" + android:fontFamily="@font/font_din" /> @@ -51,6 +60,15 @@ class RoadCrossRoamView @JvmOverloads constructor( private var rotationAnim: ObjectAnimator? = null private var lightMode = CallerSkinModeListenerManager.getMode() == 1 + private val handler = object : Handler(Looper.getMainLooper()) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + if (msg.what == MSG_HIDE_VIEW) { + detachView() + } + } + } + init { val res = if (lightMode) { R.layout.view_road_cross_roam_light @@ -75,9 +93,17 @@ class RoadCrossRoamView @JvmOverloads constructor( } } + override fun mainPageViewVisible(v: Int) { + super.mainPageViewVisible(v) + if (v == View.GONE && this.visibility == View.VISIBLE) { + detachView() + } + } + override fun onAttachedToWindow() { super.onAttachedToWindow() CallerMapRoadListenerManager.addListener(TAG, this) + CallerHmiViewControlListenerManager.addListener(TAG, this) } private fun updateView(state: Boolean) { @@ -93,11 +119,11 @@ class RoadCrossRoamView @JvmOverloads constructor( override fun onStopLineInfo(info: StopLine) { super.onStopLineInfo(info) - if(info.distance == 0.0 || info.distance > 200){ + if (info.distance == 0.0 || info.distance > 200) { CallerLogger.d("$M_MAP$TAG", "showState return , distance is ${info.distance}") return } - showState = info.distance <= 200 && info.distance > 100 + showState = info.distance in 110.0..200.0 } private fun attachView() { @@ -115,7 +141,10 @@ class RoadCrossRoamView @JvmOverloads constructor( mapRoamView.openRoam() //播放语音 val dis = CallerMapRoadListenerManager.getStopLineDistance()?.toInt() ?: 0 - AIAssist.getInstance(context).speakTTSVoice("前方${dis}米将通过路口,蘑菇为您提供路口全息影像,助力出行") + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + AIAssist.getInstance(context) + .speakTTSVoice("前方${dis}米将通过路口,蘑菇为您提供路口全息影像,助力出行") + } lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context, lightMode) // 创建横向移动的动画 if (animator == null) { @@ -145,12 +174,16 @@ class RoadCrossRoamView @JvmOverloads constructor( } else { tvRoadRoamTitle.setTextColor(context.getColor(R.color.white)) } + handler.sendEmptyMessageDelayed(MSG_HIDE_VIEW, MSG_HIDE_VIEW_TIME) } private fun detachView() { if (this.visibility == View.GONE) { return } + if(handler.hasMessages(MSG_HIDE_VIEW)){ + handler.removeMessages(MSG_HIDE_VIEW) + } mapRoamView.closeRoam() mapRoamView.visibility = View.GONE CallerMapIdentifyManager.roam = Pair("", false) @@ -169,6 +202,7 @@ class RoadCrossRoamView @JvmOverloads constructor( ivZhiRoadRoamView.clearAnimation() } CallerMapRoadListenerManager.removeListener(TAG) + CallerHmiViewControlListenerManager.removeListener(TAG) } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index 8da5cdbe45..2b467c9070 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -804,6 +804,7 @@ enum class EventTypeEnumNew( TYPE_SOCKET_ROAD_CONGESTION.poiType -> TYPE_SOCKET_ROAD_CONGESTION.content TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType -> TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.content TYPE_USECASE_ROAD_BUS_STATION.poiType -> TYPE_USECASE_ROAD_BUS_STATION.content + TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType -> TYPE_SOCKET_ROAD_PEOPLE_CROSS.content else -> "道路事件" } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt index 8d5d056f79..d9491b76a2 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt @@ -19,10 +19,16 @@ class TelematicConstant { const val V2N_NEW_LINK_SWITCH = 202 // FunctionBuildConfig#v2nMainSwitch & FunctionBuildConfig#isNewV2NData + // -------------------- For Android Unit Test -----BEGIN------------ const val V2N_AI_ROAD_PEOPLE_CROSS = 203 const val V2N_AI_ROAD_GREEN_WAVE = 204 const val V2N_AI_ROAD_OTHER_RETROGRADE_VEHICLE = 205 + + const val V2N_AI_ROAD_SHI_GONG = 206 + + const val V2N_AI_ROAD_SHI_GU = 207 + // -------------------- For Android Unit Test ------ END ------------ } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt index bd06018d0a..0cd7fb81c2 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt @@ -16,6 +16,10 @@ interface IViewControlListener { } + fun mainPageViewVisible(v:Int){ + + } + /** --------- StatusBar --------- **/ /** * 设置状态栏暗夜或明亮模式 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt index e1f0b3a2b2..b7c75a371b 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt @@ -20,6 +20,13 @@ object CallerHmiViewControlListenerManager : CallerBase() M_LISTENERS[tag]?.visible(v) } + fun invokeMainPageViewVisible(v: Int) { + M_LISTENERS.forEach { + val listener = it.value + listener.mainPageViewVisible(v) + } + } + fun setStatusBarDarkOrLight(tag: String, light: Boolean) { M_LISTENERS[tag]?.setStatusBarDarkOrLight(light) } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt index 0ee40a2d7e..2124075422 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt @@ -26,14 +26,14 @@ object CallerMsgBoxManager { */ fun saveMsgBox(bean: MsgBoxBean) { CallerTrace.write(TAG,bean) - providerApi?.saveMsg(bean) + providerApi?.saveMsg(bean) //todo emArrow test } /** * 存储含有pb的数据到消息盒子(区别与上述方法中的trace write) */ fun saveMsgBoxHasPB(bean: MsgBoxBean){ - providerApi?.saveMsg(bean) + providerApi?.saveMsg(bean) //todo emArrow test } /** diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/font/font_din.ttf b/core/mogo-core-res/src/main/res/font/font_din.ttf similarity index 100% rename from core/function-impl/mogo-core-function-devatools/src/main/res/font/font_din.ttf rename to core/mogo-core-res/src/main/res/font/font_din.ttf diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt index 9ec324879b..0854fd3185 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt @@ -5,7 +5,6 @@ import android.view.View import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.utilcode.util.* -import com.mogo.map.MogoMap import com.mogo.map.overlay.point.Point.Options import com.mogo.map.MogoMap.Companion.mapInstance import com.mogo.map.overlay.core.*