Merge branch 'dev_robotaxi-d_230912_6.1.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_230912_6.1.0

This commit is contained in:
xinfengkun
2023-09-14 18:19:13 +08:00
4 changed files with 55 additions and 60 deletions

View File

@@ -326,24 +326,20 @@ class TaxiCurrentTaskFragment : BaseFragment(),
*/
private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) {
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
d(TAG, "updateRemainDistanceAndTime ${currentTaskWithOrder.currentStatus}")
if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code){
if (currentTaskWithOrder.endSite != null) {
startNaviToStation(
isVoicePlay, currentTaskWithOrder.endSite!!.gcjLat,
currentTaskWithOrder.endSite!!.gcjLon
)
}
if (currentTaskWithOrder.endSite != null
&& currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code
) {
startNaviToStation(
isVoicePlay, currentTaskWithOrder.endSite!!.gcjLat,
currentTaskWithOrder.endSite!!.gcjLon
)
return
}
if (currentTaskWithOrder.startSite != null
&& currentTaskWithOrder.currentStatus == TaskStatusEnum.GetTask.code
) { //演练任务和送驾任务
startNaviToStation(
isVoicePlay, currentTaskWithOrder.startSite!!.gcjLat,
currentTaskWithOrder.startSite!!.gcjLon
)
}else if(currentTaskWithOrder.currentStatus == TaskStatusEnum.CompleteTask.code &&
currentTaskWithOrder.taskType <= TaskTypeEnum.ToOrderStartTask.code){
taskOtherInfo.text = "已到达 ${currentTaskWithOrder.endSite?.siteName}"
}else {
taskOtherInfo.text = "距离 -- 公里, 用时 -- 分钟"
}
}
@@ -377,12 +373,19 @@ class TaxiCurrentTaskFragment : BaseFragment(),
when (taskType) {
TaskTypeEnum.None.code -> {
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
handleOrderView(order)
updateOrderUI(order)
}
}
TaskTypeEnum.VirtualTask.code -> { //演练任务
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
updateOrderUI(order)
updateMapMarkers(taskAndOrder)
updateRemainDistanceAndTime(false)
return
}
cancelOrder.visibility = View.GONE
orderPhoneAndNum.visibility = if (order != null &&
currentStatus == TaskStatusEnum.CompleteTask.code
@@ -398,10 +401,6 @@ class TaxiCurrentTaskFragment : BaseFragment(),
pathwayPoint.visibility = View.GONE
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
updateOrderUI(order)
return
}
if (startSite == null || endSite == null) return
taskStatus.text = resources.getString(R.string.task_start_end_site)
@@ -417,7 +416,6 @@ class TaxiCurrentTaskFragment : BaseFragment(),
TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 接驾任务 或 送驾任务
order?.also {
updatePathwayPoint(taskType, endSite?.siteName)
handleOrderView(it)
updateOrderUI(it)
}
}
@@ -499,6 +497,21 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
private fun updateOrderUI(order: OrderDetail) {
cancelOrder.visibility = View.VISIBLE
orderPhoneAndNum.visibility = View.VISIBLE
taskClickBtn.visibility = View.VISIBLE
taskTypeTv.visibility = View.VISIBLE
// orderStatus: 0 订单创建(为派单), 10 已派上司机(司机去往上车点), 20 司机到达上车点,
// 30 乘客到达上车点, 40 服务中(去往目的地), 50 到达目的地, 60 已完成, 70 已取消
naviToStart.visibility = if (order.orderStatus
== TaxiOrderStatusEnum.OnTheWayToStart.code
) View.VISIBLE else View.GONE
naviToEnd.visibility = if (order.orderStatus
== TaxiOrderStatusEnum.OnTheWayToEnd.code
) View.VISIBLE else View.GONE
taskOtherInfo.visibility = View.VISIBLE
updatePrepareTaskDelayUI(0, false)
taskTypeTv.text = resources.getString(R.string.task_order)
taskTypeTv.background =
@@ -571,26 +584,6 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
private fun handleOrderView(order: OrderDetail?) {
if (order == null) return
cancelOrder.visibility = View.VISIBLE
orderPhoneAndNum.visibility = View.VISIBLE
taskClickBtn.visibility = View.VISIBLE
taskTypeTv.visibility = View.VISIBLE
// orderStatus: 0 订单创建(为派单), 10 已派上司机(司机去往上车点), 20 司机到达上车点,
// 30 乘客到达上车点, 40 服务中(去往目的地), 50 到达目的地, 60 已完成, 70 已取消
naviToStart.visibility = if (order.orderStatus
== TaxiOrderStatusEnum.OnTheWayToStart.code
) View.VISIBLE else View.GONE
naviToEnd.visibility = if (order.orderStatus
== TaxiOrderStatusEnum.OnTheWayToEnd.code
) View.VISIBLE else View.GONE
taskOtherInfo.visibility = View.VISIBLE
}
private fun hideNaviBtns() {
naviToStart.visibility = View.GONE
naviToEnd.visibility = View.GONE

View File

@@ -231,10 +231,23 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
*/
override fun onTaskCompleted(result: QueryCurrentTaskRespBean.Result) {
d(TAG, "onTaskCompleted: ${result?.currentStatus}, siteId=${result?.endSite?.siteId}")
if (result.order != null && result.servingStatus == 1){
if (result.taskType <= TaskTypeEnum.VirtualTask.code
&& result.order!!.orderStatus < TaxiOrderStatusEnum.ArriveAtStart.code) {
VoiceNotice.showNotice("已为您接到订单")
}
if (result.taskType == TaskTypeEnum.ToOrderStartTask.code
&& result.order!!.orderStatus == TaxiOrderStatusEnum.ArriveAtStart.code){
VoiceNotice.showNotice("已到达上车地点,等待乘客上车")
}
}
if (QueryCurrentTaskRespBean.isUserArriveAtStart(result)) {
TaxiTaskModel.removePrepareTaskDelay()
TaxiTaskModel.prepareNextTask(0,result.endSite!!.siteId)
}else {
}else if (!QueryCurrentTaskRespBean.isOrderArriveAtStart(result)
|| !QueryCurrentTaskRespBean.isOrderArriveAtEnd(result)){
TaxiTaskModel.startPrepareTaskDelay(
if (TaskTypeEnum.isToOrderStartTask(result))
TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL

View File

@@ -709,18 +709,6 @@ object TaxiTaskModel {
mCurrentTaskWithOrder = result
if (result.order != null && result.currentStatus == TaskStatusEnum.CompleteTask.code
&& result.servingStatus == 1){
if (result.taskType <= TaskTypeEnum.VirtualTask.code
&& result.order!!.orderStatus < TaxiOrderStatusEnum.ArriveAtStart.code) {
VoiceNotice.showNotice("已为您接到订单")
}
if (result.taskType == TaskTypeEnum.ToOrderStartTask.code
&& result.order!!.orderStatus == TaxiOrderStatusEnum.ArriveAtStart.code){
VoiceNotice.showNotice("已到达上车地点,等待乘客上车")
}
}
// 任务为空
if (result.endSite == null && result.order == null) {
d(TAG, "queryCurrentTaskOnce: 任务为空")
@@ -738,8 +726,6 @@ object TaxiTaskModel {
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
if (result?.currentStatus == TaskStatusEnum.CompleteTask.code
&& (!QueryCurrentTaskRespBean.isOrderArriveAtStart(result)
|| !QueryCurrentTaskRespBean.isOrderArriveAtEnd(result))
) {
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
@@ -822,8 +808,9 @@ object TaxiTaskModel {
fun updateLocalCalculateStation() {
if (mCurrentTaskWithOrder == null) return
if (mCurrentTaskWithOrder!!.startSite != null && mCurrentTaskWithOrder!!.endSite != null
&& mCurrentTaskWithOrder!!.currentStatus <= TaskStatusEnum.StartTask.code
&& mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.StartTask.code
) {
d(TAG, "updateLocalCalculateStation start")
val curTaskAndOrder = getCurrentTaskWithOrder() ?: return
if (curTaskAndOrder.startSite != null && curTaskAndOrder.endSite != null) {
val startStation = MogoLocation()
@@ -835,6 +822,8 @@ object TaxiTaskModel {
setStationPoint(startStation, endStation, curTaskAndOrder.lineId)
}
} else {
d(TAG, "updateLocalCalculateStation stop")
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
setStationPoint(null, null, -1L)
}
}

View File

@@ -76,7 +76,7 @@ public class MogoRouteOverlayManager implements
RouteOverlayDrawer.getInstance().clearMogoRouteOverlay();
return;
}
boolean force = FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData;
boolean force = FunctionBuildConfig.isDemoMode && FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData;
if (!force && autopilotMode.get() != 2) {
RouteOverlayDrawer.getInstance().clearMogoRouteOverlay();
return;