diff --git a/OCH/mogo-och-common-module/src/main/res/layout/start_autopilot_animation_view.xml b/OCH/mogo-och-common-module/src/main/res/layout/start_autopilot_animation_view.xml index db831f47da..e32fc060b1 100644 --- a/OCH/mogo-och-common-module/src/main/res/layout/start_autopilot_animation_view.xml +++ b/OCH/mogo-och-common-module/src/main/res/layout/start_autopilot_animation_view.xml @@ -17,8 +17,10 @@ android:id="@+id/startAutopilotTip" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_20" android:layout_gravity="center_horizontal" android:visibility="gone" - android:textSize="@dimen/dp_34" + android:textStyle="bold" + android:textSize="@dimen/dp_42" android:textColor="@android:color/white"/> \ No newline at end of file diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt index c371b56039..1f760907e1 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt @@ -720,16 +720,6 @@ object TaxiModel { } arriveSite(mUntruthTask!!.siteId, false) } - /** - * 订单流转debug START - */ - fun setArriveAtStartStation() { - if (!checkCurrentTask()) { - ToastUtils.showShort("订单状态不匹配该操作!") - return - } - arriveSite(mCurrentTaskAndOrder?.startSite!!.siteId, false) - } fun setArriveAtEndStation() { if (!checkCurrentTask()) { diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt index 83a5b22ee8..0f84c2eb06 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/model/TaxiUnmannedViewModel.kt @@ -270,6 +270,7 @@ class TaxiUnmannedViewModel : BaseViewModel(){ } private fun queryCurrentTaskOnce(){ + if (!LoginStatusManager.isLogin()) return // 未登陆则不去查询 CarServiceManager.queryCurrentTask(AbsMogoApplication.getApp().applicationContext, object : OchCommonServiceCallback { override fun onSuccess(data: QueryCurrentTaskRespBean?) { @@ -287,13 +288,14 @@ class TaxiUnmannedViewModel : BaseViewModel(){ if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order!= null && result != null && result.order == null) { //本地根据订单 orderNo 去查询下(乘客取消订单) + d(TAG, "queryCurrentTaskOnce1 = result order is empty, query order by orderNo!") queryCurrentOrderStatusByNo(mCurrentTaskAndOrder!!.order!!.orderNo) return } //订单或者伪任务更新, 都去刷新下界面 if (mCurrentTaskAndOrder == null || !mCurrentTaskAndOrder!!.equals(result)){ - + d(TAG, "queryCurrentTaskOnce1 = mCurrentTaskAndOrder update " ) if (result == null) return if (result.endSite == null && result.order == null){ @@ -302,32 +304,45 @@ class TaxiUnmannedViewModel : BaseViewModel(){ TaxiModel.updateCurrentTaskAndOrder(null) } + //当前任务完成且订单状态到达乘客上车点, 则立马去拉取任务 不再等30s,否则送驾任务要等30s后才能去执行 if (result.currentStatus == TaskStatusEnum.CompleteTask.code){ - startPrepareTask(result.endSite!!.siteId) + if (result.order != null && result.order!!.orderStatus + == TaxiOrderStatusEnum.ArriveAtStart.code){ + pullTask(result.endSite!!.siteId) + d(TAG, "queryCurrentTaskOnce1 = pullTask" ) + + }else{ + startPrepareTask30S(result.endSite!!.siteId) + d(TAG, "queryCurrentTaskOnce1 = startPrepareTask30S" ) + + } } mCurrentTaskAndOrder = result TaxiModel.updateCurrentTaskAndOrder(result) TaxiModel.updateStation() updateTaskAndOrderUi() - if (result.order != null && result.order!!.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.code){ - queryCurrentOrderStatusByNo(mCurrentTaskAndOrder!!.order!!.orderNo) //查询全程里程和用时,更新 + d(TAG, "queryCurrentTaskOnce1 = ArriveAtEnd query mileage and duration") + queryCurrentOrderStatusByNo(result.order!!.orderNo) //查询全程里程和用时,更新 } //根据lineId集合去查轨迹集合, 返回的只是接驾任务的line集合,没有送驾任务 if (result.order != null && result.order!!.orderStatus <= TaxiOrderStatusEnum.OnTheWayToEnd.code){ var lines = result.order!!.planningLines - lines[lines.size] = result.order!!.orderLine + lines = lines.plus(result.order!!.orderLine) + d(TAG, "queryCurrentTaskOnce1 = by lineIds query Contrails" ) queryOrderPickUpContrails(lines) } if (result.currentStatus <= TaskStatusEnum.StartTask.code){//任务执行中, 去加载下轨迹 + d(TAG, "queryCurrentTaskOnce1 = by lineId query Contrail" ) TaxiModel.queryTaskContrail(Array(1) {result.lineId}) } if (result.taskType <= TaskTypeEnum.ToOrderStartTask.code && result.currentStatus == TaskStatusEnum.GetTask.code){//自动去启动自驾 + d(TAG, "queryCurrentTaskOnce1 = autoStartDriving" ) TaxiModel.autoStartDriving() } } @@ -383,7 +398,7 @@ class TaxiUnmannedViewModel : BaseViewModel(){ if (data.data.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.code){//完成 //获取新的任务 if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.endSite != null){ - startPrepareTask(mCurrentTaskAndOrder!!.endSite!!.siteId) + startPrepareTask30S(mCurrentTaskAndOrder!!.endSite!!.siteId) } mCurrentTaskAndOrder = null updateNoTaskAndOrderUi() @@ -409,28 +424,32 @@ class TaxiUnmannedViewModel : BaseViewModel(){ } } - private fun startPrepareTask(siteId: Long) { + private fun startPrepareTask30S(siteId: Long) { UiThreadHandler.postDelayed({ - CarServiceManager.prepareTask( - mContext, - siteId, - object : OchCommonServiceCallback { - override fun onSuccess(data: PrepareTaskRespBean?) { - d(SceneConstant.M_TAXI + TAG, "prepareTask = " + GsonUtil.jsonFromObject(data)) - if (data == null || data.code != 0) return - //去下载轨迹, 下发给工控机下载 - TaxiModel.queryTaskContrail(Array(1) {data.data.lineId}) - } - - override fun onFail(code: Int, msg: String?) { - d(SceneConstant.M_TAXI + TAG, "$code $msg") - startPrepareTask(siteId) //失败后30s再次调用获取下一任务 - } - - }) + pullTask(siteId) }, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL) } + private fun pullTask(siteId: Long) { + CarServiceManager.prepareTask( + mContext, + siteId, + object : OchCommonServiceCallback { + override fun onSuccess(data: PrepareTaskRespBean?) { + d(SceneConstant.M_TAXI + TAG, "prepareTask = " + GsonUtil.jsonFromObject(data)) + if (data == null || data.code != 0) return + //去下载轨迹, 下发给工控机下载 + TaxiModel.queryTaskContrail(Array(1) {data.data.lineId}) + } + + override fun onFail(code: Int, msg: String?) { + d(SceneConstant.M_TAXI + TAG, "$code $msg") + startPrepareTask30S(siteId) //失败后30s再次调用获取下一任务 + } + + }) + } + private fun startInAndWaitCurrentTaskLoop() { if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable!!.isDisposed) { diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt index 1281083b59..75991a9fec 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiBeingTaskFragment.kt @@ -49,12 +49,14 @@ import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState import com.mogo.och.taxi.ui.unmanned.UnmannedIntent import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv import kotlinx.android.synthetic.main.unmanned_being_order.cancelOrder +import kotlinx.android.synthetic.main.unmanned_being_order.endPoint import kotlinx.android.synthetic.main.unmanned_being_order.endStationName import kotlinx.android.synthetic.main.unmanned_being_order.mBeingOrderLayout import kotlinx.android.synthetic.main.unmanned_being_order.naviToEnd import kotlinx.android.synthetic.main.unmanned_being_order.naviToStart import kotlinx.android.synthetic.main.unmanned_being_order.noTaskData import kotlinx.android.synthetic.main.unmanned_being_order.orderPhoneAndNum +import kotlinx.android.synthetic.main.unmanned_being_order.startPoint import kotlinx.android.synthetic.main.unmanned_being_order.startStationName import kotlinx.android.synthetic.main.unmanned_being_order.taskClickBtn import kotlinx.android.synthetic.main.unmanned_being_order.taskOtherInfo @@ -183,6 +185,17 @@ class TaxiBeingTaskFragment : BaseFragment(), taskStatus.text = resources.getString(R.string.task_start_to_virtual_site) startStationName.text = resources.getString(R.string.task_current_loc) endStationName.text = siteName + setPointBlueGreen() + } + + private fun setPointBlueGreen(){ + startPoint.setImageResource(R.drawable.taxi_driver_circle_blue_big) + endPoint.setImageResource(R.drawable.taxi_driver_circle_green_big) + } + + private fun setPointGreenBlue(){ + startPoint.setImageResource(R.drawable.taxi_driver_circle_green_big) + endPoint.setImageResource(R.drawable.taxi_driver_circle_blue_big) } private fun updateUntruthTaskView() { @@ -275,6 +288,7 @@ class TaxiBeingTaskFragment : BaseFragment(), taskTypeTv.text = resources.getString(R.string.task_exercise) startStationName.text = startSite.siteName endStationName.text = endSite.siteName + setPointBlueGreen() } TaskTypeEnum.ToOrderEndTask.code,TaskTypeEnum.ToOrderStartTask.code -> {// 送驾/接驾任务任务 if (order == null) return @@ -296,7 +310,7 @@ class TaxiBeingTaskFragment : BaseFragment(), taskTypeTv.text = resources.getString(R.string.task_order) taskTypeTv.background = resources.getDrawable(R.drawable.task_order_type_btn_bg,null) orderPhoneAndNum.text = Html.fromHtml(" " + order.bookingUserPhone + "" + - " | " + + " | " + "" + order.passengerSize + "人" + "",Html.FROM_HTML_MODE_LEGACY) startStationName.text = order.orderStartSite?.siteName endStationName.text = order.orderEndSite?.siteName @@ -322,7 +336,7 @@ class TaxiBeingTaskFragment : BaseFragment(), TaxiOrderStatusEnum.ArriveAtEnd.code -> { //到达目的地 taskStatus.text = resources.getString(R.string.task_start_end_site) - + setPointBlueGreen() updateOrderBottomBtn( getString(R.string.module_och_taxi_order_server_end), Color.parseColor("#FFFFFF"), @@ -352,6 +366,7 @@ class TaxiBeingTaskFragment : BaseFragment(), } TaxiOrderStatusEnum.OnTheWayToEnd.code -> { //送驾中 taskStatus.text = resources.getString(R.string.task_start_end_site) + setPointBlueGreen() updateOrderBottomBtn( getString(R.string.module_och_taxi_order_close), Color.parseColor("#FFFFFF"), @@ -381,7 +396,7 @@ class TaxiBeingTaskFragment : BaseFragment(), } TaxiOrderStatusEnum.UserArriveAtStart.code,TaxiOrderStatusEnum.ArriveAtStart.code -> { //乘客到达上车点,验证成功 ; 到达乘客上车点 - + setPointGreenBlue() taskStatus.text = resources.getString(R.string.arrived_start_site) updateOrderBottomBtn( if (order.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.code) @@ -417,6 +432,7 @@ class TaxiBeingTaskFragment : BaseFragment(), TaxiOrderStatusEnum.OnTheWayToStart.code -> { //前往上车地点 taskStatus.text = resources.getString(R.string.task_start_start_site) + setPointGreenBlue() updateOrderBottomBtn( getString(R.string.module_och_taxi_order_server_start), Color.parseColor("#4DFFFFFF"), diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt index 16ae878dec..173f299c0b 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrderFragment.kt @@ -75,7 +75,7 @@ class TaxiReserveOrderFragment : BaseFragment() { naviToEnd.visibility = View.GONE orderPhoneAndNum.text = Html.fromHtml(" " + order.bookingUserPhone + "" + - " | " + + " | " + "" + order.passengerSize + "人" + "",Html.FROM_HTML_MODE_LEGACY) diff --git a/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml index eee53a8c73..b9f8361710 100644 --- a/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/mogo-och-taxi-unmanned/src/main/res/layout/taxi_base_fragment.xml @@ -5,12 +5,21 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/dp_72"> - + + + - - - + app:layout_constraintTop_toBottomOf="@+id/startPoint" + app:layout_constraintBottom_toTopOf="@+id/endPoint" + app:layout_constraintLeft_toLeftOf="@+id/startPoint" + app:layout_constraintRight_toRightOf="@+id/startPoint"/> - + -