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.*