diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt index 39364027fa..a34b987022 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt @@ -201,21 +201,22 @@ abstract class BaseTaxiTabFragment> : MvpFragment - if (StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE == descriptor) { - UiThreadHandler.post { - module_mogo_och_operation_status.isEnabled = !isTrue - } - } - } +// 20231128 如果设置enable=false, 需要切图,所以先不设置了 +// MogoStatusManager.getInstance() +// .registerStatusChangedListener(TAG, StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE +// ) { descriptor, isTrue -> +// if (StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE == descriptor) { +// UiThreadHandler.post { +// module_mogo_och_operation_status.isEnabled = !isTrue +// } +// } +// } taxi_close_navi_icon.setOnClickListener { showAmapNaviToStationFragment(false) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt index e53a9b617d..d6fe659f2c 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiFragment.kt @@ -262,6 +262,7 @@ class TaxiFragment : BaseTaxiTabFragment(), null ) } + MogoStatusManager.getInstance().setTaxiUnmanedDriverTakingOrders(TAG, inOperation) } override fun onMapLoaded() {} diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java index ab3e77109b..7cf4e7c07b 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/TaxiPresenter.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -79,7 +80,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS * 开启自动驾驶 自驾模式 */ public void startAutoPilot() { - TaxiTaskModel.INSTANCE.startAutopilotByClick(); + if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode()) { + TaxiRoutingModel.INSTANCE.startAutoPilotByClick(); + } else { + TaxiTaskModel.INSTANCE.startAutopilotByClick(); + } } // 登出 diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt index 498430527b..e9c72c0f2a 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingChooseLineActivity.kt @@ -154,7 +154,7 @@ class TaxiRoutingChooseLineActivity : AppCompatActivity() { } private fun loadData() { - mViewModel.sendUiIntent(TaxiRoutingUiIntent.QueryRoutingGrayLineList) + mViewModel.sendUiIntent(TaxiRoutingUiIntent.QueryRoutingGrayLineList(System.currentTimeMillis())) } private fun onRoutingGrayLineListChanged(data: MutableList) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt index 5a70da3abe..038ca5f52d 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragment.kt @@ -81,7 +81,7 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback { private fun initViewListener() { btnChooseTask.setOnClickListener { - mViewModel.sendUiIntent(TaxiRoutingUiIntent.StartChooseLineAction) + mViewModel.sendUiIntent(TaxiRoutingUiIntent.StartChooseLineAction(System.currentTimeMillis())) } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt index f9eeb017d5..8afde1aa64 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingFragmentViewModel.kt @@ -3,6 +3,7 @@ package com.mogo.och.taxi.ui.routing import android.content.Context import android.content.Intent import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.module.status.MogoStatusManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils @@ -51,6 +52,8 @@ class TaxiRoutingFragmentViewModel : BaseViewModel { @@ -63,6 +66,7 @@ class TaxiRoutingFragmentViewModel : BaseViewModel = ConcurrentHashMap() @@ -299,6 +302,20 @@ object TaxiRoutingModel { }) } + fun updateCurrentGrayLineAndContrail(grayLineBean: GrayLineBean?, contrailBean: ContrailBean?) { + currentGrayLineBean = grayLineBean + currentContrailBean = contrailBean + } + + fun startAutoPilotByClick() { + if (currentGrayLineBean == null || currentContrailBean == null) { + CallerLogger.e(TAG, "startAutoPilotByClick 异常,currentGrayLineBean == null || currentContrailBean == null") + DebugView.printErrorMsg("[启自驾] startAutoPilotByClick 异常,currentGrayLineBean == null || currentContrailBean == null") + return + } + startAutoPilot(currentGrayLineBean!!, currentContrailBean!!) + } + fun startAutoPilot(grayLineBean: GrayLineBean, contrailBean: ContrailBean) { if (grayLineBean.startSite == null || grayLineBean.endSite == null) { CallerLogger.e(TAG, "start site or end site is null") diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt index f2459f9e57..6a39b3f763 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/routing/TaxiRoutingUiIntent.kt @@ -7,10 +7,10 @@ import com.mogo.och.taxi.bean.GrayLineBean sealed class TaxiRoutingUiIntent : IUiIntent { //打开选择路线页面 - object StartChooseLineAction : TaxiRoutingUiIntent() + data class StartChooseLineAction(val currentTimestamp: Long) : TaxiRoutingUiIntent() //查询灰度线路列表 - object QueryRoutingGrayLineList : TaxiRoutingUiIntent() + data class QueryRoutingGrayLineList(val currentTimestamp: Long) : TaxiRoutingUiIntent() //开始一个任务并查询此任务对应的轨迹详情 data class StartTaskAndQueryContrail(val grayLineBean: GrayLineBean) : TaxiRoutingUiIntent() diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt index 15ded8c048..3e1ecede02 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -1,6 +1,7 @@ package com.mogo.och.taxi.ui.task import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.module.status.MogoStatusManager import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation @@ -229,6 +230,12 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), d(TAG, "onTaskWithOrderChanged = result = " + GsonUtil.jsonFromObject(result)) DebugView.printInfoMsg("[查询TaskWithOrder信息] 更新数据, 刷新UI") updateTaskAndOrderUi(result) + // 设置task执行相关状态,切换模式时判断使用 + if (result == null || result.taskType == TaskTypeEnum.None.code) { + MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false) + } else { + MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, true) + } } override fun onTaskStarted(result: QueryCurrentTaskRespBean.Result?) { @@ -318,6 +325,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), VoiceNotice.showNotice("已取消行程") //取消自驾,D档位会溜车 map3.6.0 修改 TaxiTaskModel.cancelAutopilot() + // 设置task执行相关状态,切换模式时判断使用 + MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false) } override fun onOrderArriveAtEnd(orderNo: String) { @@ -339,6 +348,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), TaxiTaskModel.startPrepareTaskDelay(CallerUnmannedListenerManager.getPullTime().toLong(), it.siteId) } + // 设置task执行相关状态,切换模式时判断使用 + MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false) } override fun onStartAutopilot(postDelayTime: Long) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index 5ffa7094c5..b523d54472 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -31,7 +31,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d 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.* +import com.mogo.eagle.core.utilcode.util.CoordinateUtils +import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils +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.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage import com.mogo.och.common.module.biz.constant.LoginStatusManager @@ -48,9 +52,22 @@ import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceM import com.mogo.och.common.module.map.AmapNaviToDestinationModel import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjLocations import com.mogo.och.common.module.voice.VoiceNotice -import com.mogo.och.taxi.bean.* -import com.mogo.och.taxi.callback.* -import com.mogo.och.taxi.constant.* +import com.mogo.och.taxi.bean.PrepareTaskRespBean +import com.mogo.och.taxi.bean.QueryCarOrderByNoRespBean +import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean +import com.mogo.och.taxi.bean.StartServiceRespBean +import com.mogo.och.taxi.bean.TrajectoryListRespBean +import com.mogo.och.taxi.callback.IOCHTaxiAutopilotPlanningCallback +import com.mogo.och.taxi.callback.ITaxiADASStatusCallback +import com.mogo.och.taxi.callback.ITaxiCarServiceCallback +import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback +import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback +import com.mogo.och.taxi.callback.ITaxiTaskWithOrderCallback +import com.mogo.och.taxi.constant.TaskStatusEnum +import com.mogo.och.taxi.constant.TaskTypeEnum +import com.mogo.och.taxi.constant.TaxiCarServingStatusManager +import com.mogo.och.taxi.constant.TaxiOrderStatusEnum +import com.mogo.och.taxi.constant.TaxiUnmannedConst import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager import com.mogo.och.taxi.ui.debug.DebugView @@ -1406,6 +1423,10 @@ object TaxiTaskModel { mCurrentTaskWithOrder = null mDriveToNearestStationTask = null DebugView.printInfoMsg("[登出] 退出登陆") + MogoStatusManager.getInstance().setTaxiUnmanedDriverPerformTask(TAG, false) + MogoStatusManager.getInstance().setTaxiUnmanedDriverTakingOrders(TAG, false) + MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingPerformTask(TAG, false) + MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingVerifyMode(TAG, false) } //导航去订单终点目的地 diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml index bfa94a26f9..d7b1c6849a 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_choose_line_list_item.xml @@ -1,61 +1,56 @@ - + android:paddingStart="@dimen/dp_78" + android:paddingEnd="@dimen/dp_78" + android:layout_marginTop="@dimen/dp_8" + android:background="@drawable/routing_choose_line_shape_select_line_item_bg_normal" + android:orientation="vertical"> - + android:layout_marginEnd="@dimen/dp_20"> - + - \ No newline at end of file + + + \ No newline at end of file diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_fragment.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_fragment.xml index 48772aa129..7e0db62f44 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/layout/routing_fragment.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/layout/routing_fragment.xml @@ -20,9 +20,7 @@