[6.4.0]
[根据底盘自驾状态和鹰眼状态双重判断]
This commit is contained in:
@@ -19,10 +19,12 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.constraintlayout.widget.Group;
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.commons.mvp.IView;
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
@@ -166,7 +168,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
});
|
||||
|
||||
initListener();
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
|
||||
|
||||
@Override
|
||||
@@ -372,40 +374,46 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
*
|
||||
* @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中
|
||||
*/
|
||||
public void onAutopilotStatusChanged(int autopilotStatus) {
|
||||
public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAutopilt) {
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
changeAutopilotBtnView(autopilotStatus, isAnimateRunning);
|
||||
changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAutopilt);
|
||||
}
|
||||
},UiThreadHandler.MODE.QUEUE);
|
||||
}
|
||||
|
||||
public void setAutopilotBtnStatus(int autopilotStatus) {
|
||||
public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAutopilt) {
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
|
||||
== autopilotStatus) {//0不可用
|
||||
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
|
||||
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable));
|
||||
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
|
||||
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
|
||||
} else {
|
||||
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal));
|
||||
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot);
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
|
||||
if(canStartAutopilt){
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
|
||||
}else {
|
||||
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_disable));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_0_1_status_bg);
|
||||
}
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {
|
||||
ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg));
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.bus_autopilot_2_status_bg);
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
|
||||
== autopilotStatus) {
|
||||
ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver);
|
||||
ctvAutopilotStatus.setClickable(false);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi));
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.pingxingjiashi);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -426,10 +434,10 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
ctvAutopilotStatus.setClickable(false);
|
||||
// ctvAutopilotStatus.setSelected(false);
|
||||
}
|
||||
UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus), 1000);
|
||||
UiThreadHandler.postDelayed(() -> setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)), 1000);
|
||||
}
|
||||
|
||||
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning) {
|
||||
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning, boolean canStartAutopilt) {
|
||||
if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
!= autopilotStatus) {
|
||||
// 主动开启自动驾驶中,不为2(为0、1)则继续loading
|
||||
@@ -438,7 +446,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
|
||||
if (isAnimateRunning) {
|
||||
stopAnimAndUpdateBtnStatus();
|
||||
} else {
|
||||
setAutopilotBtnStatus(autopilotStatus);
|
||||
setAutopilotBtnStatus(autopilotStatus,canStartAutopilt);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
@@ -185,13 +186,13 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
return;
|
||||
}
|
||||
// 改变UI自动驾驶状态
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
|
||||
break;
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
|
||||
OrderModel.getInstance().triggerStartServiceEvent(
|
||||
OrderModel.getInstance().isRestartAutopilot(), true);
|
||||
// 改变UI自动驾驶状态
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
|
||||
break;
|
||||
default:
|
||||
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
|
||||
@@ -219,7 +220,7 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
//中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
|
||||
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -283,6 +284,6 @@ public class BusPresenter extends Presenter<BusFragment>
|
||||
|
||||
@Override
|
||||
public void canStartAutopilot(boolean canStart) {
|
||||
|
||||
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStart);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.magic.mogo.och.charter.constant.CharterConst
|
||||
import com.magic.mogo.och.charter.model.DriverM1Model
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
|
||||
@@ -158,8 +159,13 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback,
|
||||
viewCallback?.autopilotDisable()
|
||||
}
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
|
||||
// 自动驾驶状态就绪可启动自驾
|
||||
viewCallback?.canStartAutopilot()
|
||||
if(CallerAutoPilotControlManager.isCanStartAutopilot(false)){
|
||||
// 自动驾驶状态就绪可启动自驾
|
||||
viewCallback?.canStartAutopilot()
|
||||
}else {
|
||||
// 自动驾驶未就绪
|
||||
viewCallback?.autopilotDisable()
|
||||
}
|
||||
}
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
|
||||
// 自动驾驶中
|
||||
@@ -181,6 +187,14 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback,
|
||||
},ThreadUtils.MODE.QUEUE)
|
||||
}
|
||||
|
||||
override fun canStartAutopilot(canStart: Boolean) {
|
||||
super.canStartAutopilot(canStart)
|
||||
ThreadUtils.runOnUiThread( {
|
||||
// 自驾状态变更回调(可能成功可能失败)
|
||||
assertStartAutopiloState(CallerAutoPilotStatusListenerManager.getState())
|
||||
},ThreadUtils.MODE.QUEUE)
|
||||
}
|
||||
|
||||
interface IAutopilotStatusCallback{
|
||||
/**
|
||||
* 开始动画
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.config.HdMapBuildConfig;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
@@ -159,7 +160,8 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
|
||||
});
|
||||
|
||||
initListener();
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
setAutopilotBtnStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
|
||||
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
ctvAutopilotStatus.setOnClickListener(new OnPreventFastClickListener() {
|
||||
|
||||
@Override
|
||||
@@ -375,45 +377,46 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
|
||||
*
|
||||
* @param autopilotStatus 0:不可用 1:可用状态 2:自动驾驶中
|
||||
*/
|
||||
public void onAutopilotStatusChanged(int autopilotStatus) {
|
||||
public void onAutopilotStatusChanged(int autopilotStatus,boolean canStartAuto) {
|
||||
UiThreadHandler.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
changeAutopilotBtnView(autopilotStatus, isAnimateRunning);
|
||||
changeAutopilotBtnView(autopilotStatus, isAnimateRunning,canStartAuto);
|
||||
}
|
||||
}, UiThreadHandler.MODE.QUEUE);
|
||||
}
|
||||
|
||||
public void setAutopilotBtnStatus(int autopilotStatus) {
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE
|
||||
== autopilotStatus) {//0不可用
|
||||
public void setAutopilotBtnStatus(int autopilotStatus,boolean canStartAuto) {
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE == autopilotStatus) {//0不可用
|
||||
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
|
||||
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
|
||||
// ctvAutopilotStatus.setSelected(false);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
|
||||
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_failure);
|
||||
} else {
|
||||
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_normal));
|
||||
ctvAutopilotStatusTv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.bus_autopilot_text_color_normal));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_ic_autopilot);
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == autopilotStatus) { //1可用
|
||||
// ctvAutopilotStatus.setSelected(false);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatusTv.setText(getResources().getString(R.string.bus_loading_autopilot_runnig_tv));
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_0_1_status_bg));
|
||||
if(canStartAuto){
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.press_start_status);
|
||||
}else {
|
||||
ctvAutopilotStatusTv.setTextColor(getResources().getColor(R.color.bus_autopilot_text_color_disable));
|
||||
ctvAutopilotStatusIv.setImageResource(R.drawable.bus_disable_autopilot_icon);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_failure);
|
||||
}
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == autopilotStatus) {
|
||||
ctvAutopilotStatusTv.setText(R.string.bus_loading_autopilot_runnig_tv);
|
||||
ctvAutopilotStatus.setClickable(true);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.bus_autopilot_2_status_bg));
|
||||
// ctvAutopilotStatus.setSelected(true);
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.start_success);
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING
|
||||
== autopilotStatus){
|
||||
ctvAutopilotStatusTv.setText(R.string.bus_pingxing_driver);
|
||||
ctvAutopilotStatus.setClickable(false);
|
||||
ctvAutopilotStatus.setBackground(getContext().getDrawable(R.drawable.pingxingjiashi));
|
||||
ctvAutopilotStatus.setBackgroundResource(R.drawable.pingxingjiashi);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,12 +438,12 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
|
||||
UiThreadHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
setAutopilotBtnStatus(autopilotStatus);
|
||||
setAutopilotBtnStatus(autopilotStatus,CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning) {
|
||||
private void changeAutopilotBtnView(int autopilotStatus, boolean isAnimateRunning,boolean canStartAuto) {
|
||||
if (isAnimateRunning && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
!= autopilotStatus) {
|
||||
// 主动开启自动驾驶中,不为2(为0、1)则继续loading
|
||||
@@ -449,7 +452,7 @@ public abstract class BaseShuttleTabFragment<V extends IView, P extends Presente
|
||||
if (isAnimateRunning) {
|
||||
stopAnimAndUpdateBtnStatus();
|
||||
} else {
|
||||
setAutopilotBtnStatus(autopilotStatus);
|
||||
setAutopilotBtnStatus(autopilotStatus,canStartAuto);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
|
||||
import com.mogo.eagle.core.data.map.MogoLocation;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
@@ -180,13 +181,13 @@ public class BusPresenter extends Presenter<ShuttleFragment>
|
||||
return;
|
||||
}
|
||||
// 改变UI自动驾驶状态
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
|
||||
break;
|
||||
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
|
||||
OrderModel.getInstance().triggerStartServiceEvent(
|
||||
OrderModel.getInstance().isRestartAutopilot(), true);
|
||||
// 改变UI自动驾驶状态
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state));
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
|
||||
break;
|
||||
default:
|
||||
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
|
||||
@@ -209,7 +210,8 @@ public class BusPresenter extends Presenter<ShuttleFragment>
|
||||
//中间站点再次开启自驾时, 自动驾驶状态是2未改变, 此次鹰眼底层不再返给业务,需优化按钮动画显示
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
|
||||
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
|
||||
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
|
||||
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -260,6 +262,6 @@ public class BusPresenter extends Presenter<ShuttleFragment>
|
||||
|
||||
@Override
|
||||
public void canStartAutopilot(boolean canStart) {
|
||||
|
||||
runOnUIThread(() -> mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,18 +10,18 @@ public interface ITaxiADASStatusCallback {
|
||||
void onAutopilotArriveEnd();
|
||||
|
||||
// 自动驾驶可用状态
|
||||
void onAutopilotEnable();
|
||||
void onAutopilotEnable(boolean canStartAuto);
|
||||
|
||||
// 自动驾驶不可用状态
|
||||
void onAutopilotDisable();
|
||||
void onAutopilotDisable(boolean canStartAuto);
|
||||
|
||||
// 自动驾驶运行中
|
||||
void onAutopilotRunning();
|
||||
void onAutopilotRunning(boolean canStartAuto);
|
||||
|
||||
//人机共驾
|
||||
void onManMachineCoDriving();
|
||||
void onManMachineCoDriving(boolean canStartAuto);
|
||||
|
||||
void updateAutopilotStatus();
|
||||
void updateAutopilotStatus(boolean canStartAuto);
|
||||
|
||||
//自驾返回失败
|
||||
void onStartAdasFailure();
|
||||
|
||||
@@ -857,7 +857,7 @@ public class TaxiModel {
|
||||
CallerLogger.d(M_TAXI + TAG, "setIPCDemoMode:false");
|
||||
CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.updateAutopilotStatus();
|
||||
mADASStatusCallback.updateAutopilotStatus(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1221,7 +1221,7 @@ public class TaxiModel {
|
||||
public void onAutopilotStatusResponse(int state) {
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotRunning();
|
||||
mADASStatusCallback.onAutopilotRunning(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
if (mCurrentOCHOrder != null
|
||||
&& TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) {
|
||||
@@ -1244,7 +1244,7 @@ public class TaxiModel {
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotEnable();
|
||||
mADASStatusCallback.onAutopilotEnable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
if (FunctionBuildConfig.isDemoMode
|
||||
@@ -1255,7 +1255,7 @@ public class TaxiModel {
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotDisable();
|
||||
mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
@@ -1265,17 +1265,24 @@ public class TaxiModel {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
} else { //美化模式下没订单,显示人工驾驶
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onAutopilotDisable();
|
||||
mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.onManMachineCoDriving();
|
||||
mADASStatusCallback.onManMachineCoDriving(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void canStartAutopilot(boolean canStart) {
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback.updateAutopilotStatus(canStart);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotArriveAtStation(ArrivedStation data) {
|
||||
CallerLogger.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString());
|
||||
|
||||
@@ -188,33 +188,33 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotEnable() {
|
||||
public void onAutopilotEnable(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDisable() {
|
||||
public void onAutopilotDisable(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRunning() {
|
||||
public void onAutopilotRunning(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onManMachineCoDriving() {
|
||||
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
|
||||
public void onManMachineCoDriving(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAutopilotStatus() {
|
||||
public void updateAutopilotStatus(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.getState()));
|
||||
CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,6 +26,7 @@ import com.mogo.commons.mvp.IView;
|
||||
import com.mogo.commons.mvp.MvpFragment;
|
||||
import com.mogo.commons.mvp.Presenter;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
@@ -177,28 +178,28 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
return false;
|
||||
});
|
||||
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
|
||||
// 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接
|
||||
findViewById(R.id.btnAutopilotDisable).setOnClickListener(view ->
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE)
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,true)
|
||||
|
||||
);
|
||||
|
||||
// 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态
|
||||
findViewById(R.id.btnAutopilotEnable).setOnClickListener(view ->
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE)
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,true)
|
||||
|
||||
);
|
||||
|
||||
// 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人
|
||||
findViewById(R.id.btnAutopilotRunning).setOnClickListener(view ->
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING)
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,true)
|
||||
|
||||
);
|
||||
|
||||
findViewById(R.id.btnAutopilotmanco).setOnClickListener(view ->
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
|
||||
onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,true));
|
||||
|
||||
tvOperationStatus.setOnClickListener(new OnPreventFastClickListener() {
|
||||
@Override
|
||||
@@ -295,7 +296,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public void onAutopilotStatusChanged(int status) {
|
||||
public void onAutopilotStatusChanged(int status,boolean canStart) {
|
||||
getActivity().runOnUiThread(() -> {
|
||||
if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) {
|
||||
// 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading
|
||||
@@ -308,7 +309,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
}
|
||||
// 3. 其他过程直接更新
|
||||
startOrStopLoadingAnim(false);
|
||||
autopilotStatusAnimchanged(status);
|
||||
autopilotStatusAnimchanged(status,canStart);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -317,8 +318,8 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
startAutopilotDone(false);
|
||||
}
|
||||
|
||||
public void onManMachineCoDriving(int manMachineCoDriving) {
|
||||
autopilotStatusAnimchanged(manMachineCoDriving);
|
||||
public void onManMachineCoDriving(int manMachineCoDriving,boolean canStartAuto) {
|
||||
autopilotStatusAnimchanged(manMachineCoDriving,canStartAuto);
|
||||
}
|
||||
|
||||
public void updateCtvAutopilotStatusTag(boolean tag) {
|
||||
@@ -332,28 +333,34 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
|
||||
protected abstract void updateOrderBottomBtnUI();
|
||||
|
||||
public void autopilotStatusAnimchanged(int status) {
|
||||
public void autopilotStatusAnimchanged(int status,boolean canStart) {
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) {
|
||||
mAutopilotTv.setText("自动驾驶");
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
|
||||
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_success);
|
||||
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_success);
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) {
|
||||
mAutopilotTv.setText("自动驾驶");
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
|
||||
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector);
|
||||
if(canStart){
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
|
||||
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg_pressed);
|
||||
}else {
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_disable));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot_disable);
|
||||
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
|
||||
}
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == status) {
|
||||
mAutopilotTv.setText("远程代驾");
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot);
|
||||
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs);
|
||||
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs);
|
||||
// 平行驾驶
|
||||
} else {
|
||||
mAutopilotTv.setText("自动驾驶");
|
||||
mAutopilotTv.setTextColor(getResources().getColor(R.color.taxi_autopilot_text_color_disable));
|
||||
mAutopilotImage.setImageResource(R.drawable.taxi_ic_autopilot_disable);
|
||||
//ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
|
||||
ctvAutopilotStatusRL.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -377,7 +384,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
|
||||
@Override
|
||||
public void run() {
|
||||
startOrStopLoadingAnim(false);
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
|
||||
}
|
||||
}, 1000L);
|
||||
}
|
||||
|
||||
@@ -184,8 +184,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
|
||||
}
|
||||
}
|
||||
|
||||
public void updateAutopilotStatus(int status) {
|
||||
onAutopilotStatusChanged(status);
|
||||
public void updateAutopilotStatus(int status,boolean canStart) {
|
||||
onAutopilotStatusChanged(status,canStart);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.P)
|
||||
|
||||
@@ -10,19 +10,19 @@ public interface ITaxiADASStatusCallback {
|
||||
void onAutopilotArriveEnd();
|
||||
|
||||
// 自动驾驶可用状态
|
||||
void onAutopilotEnable();
|
||||
void onAutopilotEnable(boolean canStartAuto);
|
||||
|
||||
// 自动驾驶不可用状态
|
||||
void onAutopilotDisable();
|
||||
void onAutopilotDisable(boolean canStartAuto);
|
||||
|
||||
// 自动驾驶运行中
|
||||
void onAutopilotRunning();
|
||||
void onAutopilotRunning(boolean canStartAuto);
|
||||
|
||||
//人机共驾
|
||||
void onParallelDrivingStatus();
|
||||
void onParallelDrivingStatus(boolean canStartAuto);
|
||||
|
||||
//自驾返回失败
|
||||
void onStartAdasFailure();
|
||||
|
||||
void updateAutopilotStatus();
|
||||
void updateAutopilotStatus(boolean canStartAuto);
|
||||
}
|
||||
|
||||
@@ -21,9 +21,9 @@ public interface ITaxiControllerStatusCallback {
|
||||
void startOpenAutopilotNonManual();
|
||||
|
||||
//停止启动自动驾驶
|
||||
void stopOpenAutopilotNonManual();
|
||||
void stopOpenAutopilotNonManual(boolean canStartAuto);
|
||||
|
||||
void pauseOpenAutopilotNonManual();
|
||||
void pauseOpenAutopilotNonManual(boolean canStartAuto);
|
||||
|
||||
void resumeOpenAutopilotNonManual();
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import com.mogo.commons.mvp.MvpFragment
|
||||
import com.mogo.commons.mvp.Presenter
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
@@ -187,7 +188,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
// false
|
||||
// }
|
||||
// }
|
||||
onAutopilotStatusChanged(getState())
|
||||
onAutopilotStatusChanged(getState(),CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
|
||||
// 打开任务调试面板
|
||||
findViewById<View>(R.id.btnOpenDebugView)?.setOnClickListener {
|
||||
@@ -301,7 +302,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
*
|
||||
* @param status 2 - running 1 - enable 2 - disable
|
||||
*/
|
||||
fun onAutopilotStatusChanged(status: Int) {
|
||||
fun onAutopilotStatusChanged(status: Int,canStartAuto :Boolean) {
|
||||
activity?.runOnUiThread(Runnable runOnUiThread@{
|
||||
if (isStarting && IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status) {
|
||||
// 1. 主动开启自动驾驶中,不为2(为0、1)则继续loading
|
||||
@@ -315,7 +316,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
}
|
||||
// 3. 其他过程直接更新
|
||||
startOrStopLoadingAnim(false)
|
||||
updateAutopilotBtnByStatus(status)
|
||||
updateAutopilotBtnByStatus(status,canStartAuto)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -330,55 +331,41 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
/**
|
||||
* 平行驾驶 【开启自动驾驶按钮】 更新
|
||||
*/
|
||||
fun onParallelDrivingStatus(parallelDrivingValue: Int) {
|
||||
updateAutopilotBtnByStatus(parallelDrivingValue)
|
||||
fun onParallelDrivingStatus(parallelDrivingValue: Int,canStartAuto:Boolean) {
|
||||
updateAutopilotBtnByStatus(parallelDrivingValue,canStartAuto)
|
||||
}
|
||||
|
||||
private fun updateCtvAutopilotStatusTag(tag: Boolean) {
|
||||
module_mogo_och_autopilot_status.tag = tag
|
||||
}
|
||||
|
||||
private fun updateAutopilotBtnByStatus(status: Int) {
|
||||
private fun updateAutopilotBtnByStatus(status: Int,canStartAuto:Boolean) {
|
||||
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING == status) {
|
||||
module_och_autopilot_tv.text = "自动驾驶"
|
||||
module_och_autopilot_tv.setTextColor(
|
||||
resources.getColor(
|
||||
R.color.taxi_autopilot_text_color_normal,
|
||||
null
|
||||
)
|
||||
)
|
||||
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_success);
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE == status) {
|
||||
module_och_autopilot_tv.text = "自动驾驶"
|
||||
module_och_autopilot_tv.setTextColor(
|
||||
resources.getColor(
|
||||
R.color.taxi_autopilot_text_color_normal,
|
||||
null
|
||||
)
|
||||
)
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector)
|
||||
if(CallerAutoPilotControlManager.isCanStartAutopilot(false)){
|
||||
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg_pressed)
|
||||
}else{
|
||||
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_disable));
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot_disable)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg)
|
||||
}
|
||||
} else if (IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING == status) {
|
||||
module_och_autopilot_tv.text = "远程代驾"
|
||||
module_och_autopilot_tv.setTextColor(
|
||||
resources.getColor(
|
||||
R.color.taxi_autopilot_text_color_normal,
|
||||
null
|
||||
)
|
||||
)
|
||||
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_normal));
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_pingxjs)
|
||||
} else {
|
||||
module_och_autopilot_tv.text = "自动驾驶"
|
||||
module_och_autopilot_tv.setTextColor(
|
||||
resources.getColor(
|
||||
R.color.taxi_autopilot_text_color_disable,
|
||||
null
|
||||
)
|
||||
)
|
||||
module_och_autopilot_tv.setTextColor(AbsMogoApplication.getApp().getColor(R.color.taxi_autopilot_text_color_disable));
|
||||
module_och_autopilot_iv.setImageResource(R.drawable.taxi_ic_autopilot_disable)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_autopilot_bg_selector)
|
||||
module_mogo_och_autopilot_status.setBackgroundResource(R.drawable.taxi_ic_autopilot_bg)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -446,7 +433,7 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
|
||||
}
|
||||
UiThreadHandler.postDelayed({
|
||||
startOrStopLoadingAnim(false)
|
||||
onAutopilotStatusChanged(getState())
|
||||
onAutopilotStatusChanged(getState(),CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
}, 1000L)
|
||||
}
|
||||
|
||||
|
||||
@@ -289,8 +289,8 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
|
||||
override fun onMapLoaded() {}
|
||||
|
||||
fun updateAutopilotStatus(status: Int) {
|
||||
onAutopilotStatusChanged(status)
|
||||
fun updateAutopilotStatus(status: Int,canStartAuto:Boolean) {
|
||||
onAutopilotStatusChanged(status,canStartAuto)
|
||||
}
|
||||
|
||||
fun onNaviToEnd(isAmap: Boolean, isShow: Boolean) {
|
||||
|
||||
@@ -110,26 +110,26 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotEnable() {
|
||||
public void onAutopilotEnable(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotDisable() {
|
||||
public void onAutopilotDisable(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAutopilotRunning() {
|
||||
public void onAutopilotRunning(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.updateAutopilotStatus(
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING));
|
||||
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onParallelDrivingStatus() {
|
||||
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING));
|
||||
public void onParallelDrivingStatus(boolean canStartAuto) {
|
||||
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -138,8 +138,8 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateAutopilotStatus() {
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
public void updateAutopilotStatus(boolean canStartAuto) {
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -177,19 +177,19 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopOpenAutopilotNonManual() {
|
||||
public void stopOpenAutopilotNonManual(boolean canStartAuto) {
|
||||
runOnUIThread(() -> {
|
||||
mView.startOrStopLoadingAnim(false);
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
|
||||
mView.stopAutopilotBlinkAnimation();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pauseOpenAutopilotNonManual() {
|
||||
public void pauseOpenAutopilotNonManual(boolean canStartAuto) {
|
||||
runOnUIThread(() -> {
|
||||
mView.startOrStopLoadingAnim(false);
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState());
|
||||
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
|
||||
mView.pauseAutopilotBlinkAnimation();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ object TaxiTaskModel {
|
||||
if (brakeStatus) {
|
||||
mControllerStatusCallback?.resumeOpenAutopilotNonManual()
|
||||
} else {
|
||||
mControllerStatusCallback?.pauseOpenAutopilotNonManual()
|
||||
mControllerStatusCallback?.pauseOpenAutopilotNonManual(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,7 +293,7 @@ object TaxiTaskModel {
|
||||
i(TAG, "onAutopilotStatusResponse autopilotsState= $state")
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_RUNNING,meaning=自动驾驶中")
|
||||
mADASStatusCallback?.onAutopilotRunning()
|
||||
mADASStatusCallback?.onAutopilotRunning(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
if ((QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder))) {
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
isRestartAutopilot,
|
||||
@@ -315,7 +315,7 @@ object TaxiTaskModel {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
return
|
||||
}
|
||||
mADASStatusCallback?.onAutopilotEnable()
|
||||
mADASStatusCallback?.onAutopilotEnable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_DISABLE,meaning=不可自动驾驶")
|
||||
if ((FunctionBuildConfig.isDemoMode
|
||||
@@ -326,7 +326,7 @@ object TaxiTaskModel {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
return
|
||||
}
|
||||
mADASStatusCallback?.onAutopilotDisable()
|
||||
mADASStatusCallback?.onAutopilotDisable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_PARALLEL_DRIVING,meaning=平行驾驶中")
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
@@ -338,11 +338,11 @@ object TaxiTaskModel {
|
||||
) { //订单中
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
} else { //美化模式下没订单,显示人工驾驶
|
||||
mADASStatusCallback?.onAutopilotDisable()
|
||||
mADASStatusCallback?.onAutopilotDisable(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
}
|
||||
return
|
||||
}
|
||||
mADASStatusCallback?.onParallelDrivingStatus()
|
||||
mADASStatusCallback?.onParallelDrivingStatus(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,6 +396,10 @@ object TaxiTaskModel {
|
||||
}
|
||||
}
|
||||
|
||||
override fun canStartAutopilot(canStart: Boolean) {
|
||||
super.canStartAutopilot(canStart)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private val mMogoStatusChangedListener: IMogoStatusChangedListener =
|
||||
@@ -805,7 +809,7 @@ object TaxiTaskModel {
|
||||
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
|
||||
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
|
||||
if (QueryCurrentTaskRespBean.isTaskCompleteTaskType(result)) {
|
||||
mADASStatusCallback?.updateAutopilotStatus()
|
||||
mADASStatusCallback?.updateAutopilotStatus(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onTaskCompleted(result)
|
||||
@@ -1516,7 +1520,7 @@ object TaxiTaskModel {
|
||||
TAG, "stopAutoStartAutopilot = ${mCurrentTaskWithOrder?.currentStatus}"
|
||||
)
|
||||
if (QueryCurrentTaskRespBean.isTaskGetTaskType(mCurrentTaskWithOrder)) {
|
||||
mControllerStatusCallback?.stopOpenAutopilotNonManual()
|
||||
mControllerStatusCallback?.stopOpenAutopilotNonManual(CallerAutoPilotControlManager.isCanStartAutopilot(false))
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onStopAutopilot()
|
||||
|
||||
Reference in New Issue
Block a user