From 8573af96b0b6e514e1e9d0a56b8781bb8fe01b32 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 10 May 2022 19:44:55 +0800 Subject: [PATCH] =?UTF-8?q?[taxi/bus-d=20270]=20bus=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E6=8C=89=E9=92=AE=E9=80=BB=E8=BE=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/constant/BusConst.kt | 2 ++ .../och/bus/fragment/BaseBusTabFragment.java | 24 +++++++++++------- .../mogo/och/bus/fragment/BusFragment.java | 5 ++++ .../mogo/och/bus/presenter/BusPresenter.java | 25 +++++++++++++++---- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt index 563b0825a5..dab7aa2bbf 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/constant/BusConst.kt @@ -63,5 +63,7 @@ class BusConst { * 订单起终点Marker类型 */ const val TYPE_MARKER_BUS_ORDER = "TYPE_MARKER_BUS_ORDER" + + const val TIMER_START_AUTOPILOT_INTERVAL = 10 * 1000L } } \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 0136688532..305a3077fd 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -156,7 +156,9 @@ public abstract class BaseBusTabFragment @Override public void onClickImpl(View v) { - restartAutopilot(); + if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE){ + restartAutopilot(); + } } }); @@ -309,14 +311,15 @@ public abstract class BaseBusTabFragment CallerLogger.INSTANCE.d(M_BUS + TAG, "onStateChangeChangeAutopilotBtnView: " + autopilotStatus + "isAnimateRunning = " + isAnimateRunning); if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用 - if (isAnimateRunning) { + if (isAnimateRunning){ stopAutopilotAnimation(); - ctvAutopilotStatusIv.setImageResource(R.drawable.bus_wrong_autopilot_icon); - ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); - ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_failure_tv)); - ctvAutopilotStatus.setFocusableInTouchMode(false); - ctvAutopilotStatus.setSelected(false); } + ctvAutopilotStatusIv.setImageResource(R.drawable.bus_wrong_autopilot_icon); + ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); + ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_failure_tv)); + ctvAutopilotStatus.setFocusableInTouchMode(false); + ctvAutopilotStatus.setSelected(false); + UiThreadHandler.postDelayed(new Runnable() { @Override public void run() { @@ -332,7 +335,7 @@ public abstract class BaseBusTabFragment } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) {//1可用 if (isAnimateRunning) { - return; + stopAutopilotAnimation(); } ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal)); ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv)); @@ -342,7 +345,7 @@ public abstract class BaseBusTabFragment // ctvAutopilotStatus.setPressed(true); } else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {//2 running - if (isAnimateRunning) { + if (isAnimateRunning){ stopAutopilotAnimation(); } ctvAutopilotStatusIv.setImageResource(R.drawable.bus_right_autopilot_icon); @@ -450,9 +453,12 @@ public abstract class BaseBusTabFragment autopilotLoadingAnimator.end(); ctvAutopilotStatusIv.clearAnimation(); autopilotLoadingAnimator = null; + setIsAnimateRunning(false); } } + public abstract void setIsAnimateRunning(boolean isAnimateRunning); + /** * 迈速表实时更新 * diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 083cc2bab1..8650adc83b 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -347,6 +347,11 @@ public class BusFragment extends BaseBusTabFragment mPresenter.debugAutoPilotStatus(status); } + @Override + public void setIsAnimateRunning(boolean isAnimateRunning) { + mPresenter.setIsAnimateRunning(isAnimateRunning); + } + @Override public void onClick(View v) { if (v.getId() == R.id.switch_line_btn) {//切换路线条件: 自动驾驶过程中,点击则toast提示:自动驾驶中,不可切换路线 diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index bb714c0939..558bc36b4d 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.presenter; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; +import static com.mogo.och.bus.constant.BusConst.TIMER_START_AUTOPILOT_INTERVAL; import android.location.Location; import android.os.Looper; @@ -83,6 +84,10 @@ public class BusPresenter extends Presenter BusOrderModel.getInstance().setControllerStatusCallback(null); } + public void setIsAnimateRunning(boolean isAnimateRunning){ + this.isAnimateRunning = isAnimateRunning; + } + public void queryBusRoutes() { BusOrderModel.getInstance().queryBusRoutes(); } @@ -97,8 +102,10 @@ public class BusPresenter extends Presenter } public void restartAutopilot() { - currentAutopilotStatus = -1; - BusOrderModel.getInstance().restartAutopilot(); + if (!isAnimateRunning){ + currentAutopilotStatus = -1; + BusOrderModel.getInstance().restartAutopilot(); + } } public void onChangeOperationStatus() { @@ -132,7 +139,7 @@ public class BusPresenter extends Presenter || ((mCurrentStation == 0 || mCurrentStation == mStationList.size() - 1) && BusOrderModel.getInstance().isGoingToNextStation()))) { runOnUIThread(() -> mView.onAutopilotStatusChanged( - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING, false)); + IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING, isAnimateRunning)); } } @@ -194,7 +201,6 @@ public class BusPresenter extends Presenter runOnUIThread(() -> mView.onAutopilotStatusChanged(currentAutopilotStatus, isAnimateRunning)); BusOrderModel.getInstance().triggerStartServiceEvent(true); } - isAnimateRunning = false; break; case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE: if (currentAutopilotStatus != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { @@ -219,7 +225,6 @@ public class BusPresenter extends Presenter mView.onAutopilotStatusChanged(currentAutopilotStatus, isAnimateRunning); }); } - isAnimateRunning = false; break; default: runOnUIThread(() -> mView.onAutopilotEnableChange(false)); @@ -243,6 +248,16 @@ public class BusPresenter extends Presenter public void startOpenAutopilot() { isAnimateRunning = true; runOnUIThread(() -> mView.startAutopilotAnimation()); + //10s 若自动驾驶没有开启,则结束动画 + UiThreadHandler.postDelayed(new Runnable() { + @Override + public void run() { //未启动成功做处理 + if (CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() + != IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING && isAnimateRunning){ + mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState(), isAnimateRunning); + } + } + },TIMER_START_AUTOPILOT_INTERVAL); // TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除 // UiThreadHandler.postDelayed(new Runnable() { // @Override