diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java index 278b1ac9dc..7d89fd4718 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java @@ -17,4 +17,7 @@ public interface ITaxiADASStatusCallback { // 自动驾驶运行中 void onAutopilotRunning(); + + //人机共驾 + void onManMachineCoDriving(); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index cd34ecc455..ea93a1e16f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -80,5 +80,7 @@ class TaxiConst { const val TYPE_MARKER_TAXI_ORDER = "TYPE_MARKER_TAXI_ORDER" const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L + + const val MAN_MACHINE_CO_DRIVING = 3 } } \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 1c5aa3d454..97489c0400 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1078,7 +1078,9 @@ public class TaxiModel { int state = autopilotStatusInfo.getState(); CallerLogger.INSTANCE.d(M_TAXI + TAG, "state = %s", state); if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); + if (state != mPrevAPStatus && mADASStatusCallback != null){ + mADASStatusCallback.onAutopilotRunning(); + } if (mCurrentOCHOrder != null && getCurOrderStatus() == TaxiOrderStatusEnum.UserArriveAtStart && state != mPrevAPStatus) { @@ -1105,6 +1107,9 @@ public class TaxiModel { mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo); } } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { + if (state != mPrevAPStatus && mADASStatusCallback != null){ + mADASStatusCallback.onAutopilotEnable(); + } mPrevAPStatus = state; if (FunctionBuildConfig.isDemoMode && checkCurrentOCHOrder() @@ -1112,8 +1117,11 @@ public class TaxiModel { // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 return; } - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable(); } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { + if (state != mPrevAPStatus && mADASStatusCallback != null){ + mADASStatusCallback.onAutopilotDisable(); + } + mPrevAPStatus = state; if (FunctionBuildConfig.isDemoMode && checkCurrentOCHOrder() @@ -1121,7 +1129,12 @@ public class TaxiModel { // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态 return; } - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable(); + + }else if (state == TaxiConst.MAN_MACHINE_CO_DRIVING){ + if (state != mPrevAPStatus && mADASStatusCallback != null){ + mADASStatusCallback.onManMachineCoDriving(); + } + mPrevAPStatus = state; } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index f40200dc4c..d5949ff500 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -15,6 +15,7 @@ import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.taxi.constant.TaxiConst; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean; @@ -181,6 +182,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)); } + @Override + public void onManMachineCoDriving() { + runOnUIThread(() -> mView.onManMachineCoDriving(TaxiConst.MAN_MACHINE_CO_DRIVING)); + } + @Override public void onCarStatusChanged(boolean inOperation, String role) { runOnUIThread(() -> mView.updateOperationStatus(inOperation,role)); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index 17cc3cae09..8290636322 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -218,6 +218,9 @@ public abstract class BaseTaxiTabFragment + onAutopilotStatusChanged(TaxiConst.MAN_MACHINE_CO_DRIVING)); + tvOperationStatus.setOnClickListener(view -> { onChangeOperationStatus(); }); @@ -290,7 +293,7 @@ public abstract class BaseTaxiTabFragment1 @@ -304,6 +307,13 @@ public abstract class BaseTaxiTabFragment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml b/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml index 9410f9d8bc..bd0a60728d 100644 --- a/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml @@ -222,6 +222,15 @@ android:visibility="gone" app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable" app:layout_constraintTop_toBottomOf="@id/btnAutopilotEnable" /> +