完成了自动驾驶按钮的点击触发逻辑抽离

Signed-off-by: 董宏宇 <martindhy@gmail.com>
This commit is contained in:
董宏宇
2021-09-23 10:57:34 +08:00
parent 808e772cce
commit d80348b32f
15 changed files with 210 additions and 186 deletions

View File

@@ -10,7 +10,11 @@ import android.os.Handler;
import android.os.Message;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.eagle.core.data.autopilot.AdasOCHData;
import com.mogo.eagle.core.data.autopilot.RemoteControlAutoPilotParameters;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener;
import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.module.common.MogoApisHandler;
@@ -19,10 +23,7 @@ import com.mogo.module.service.dispatch.model.DispatchServiceModel;
import com.mogo.module.service.dispatch.model.IDispatch;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.adas.IMogoAdasOCHCallback;
import com.mogo.eagle.core.data.autopilot.RemoteControlAutoPilotParameters;
import com.mogo.eagle.core.data.autopilot.AdasOCHData;
import com.mogo.service.cloud.socket.IMogoOnMessageListener;
import com.mogo.service.entrance.IMogoEntranceAutopilotStatusClickListener;
import com.mogo.utils.logger.Logger;
import java.util.ArrayList;
@@ -31,7 +32,7 @@ import java.util.List;
//负责监听自动驾驶状态并进行状态上报,自动驾驶路线上报,接收调度指令展示指令弹窗
public class DispatchAutoPilotManager implements IMogoOnMessageListener<DispatchAdasAutoPilotLocReceiverBean>
, IDispatchRemindClickListener
, IMogoCarLocationChangedListener2, IMogoAdasOCHCallback, IMogoEntranceAutopilotStatusClickListener {
, IMogoCarLocationChangedListener2, IMogoAdasOCHCallback, IMoGoCheckAutoPilotBtnListener {
private static final String TAG = "DispatchAutoPilotManager";
private static volatile DispatchAutoPilotManager instance;
@@ -95,7 +96,7 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
.registerCarLocationChangedListener(TAG, this);
mApis.getAdasControllerApi()
.addAdasOCHCallback(this);
mApis.getEntranceButtonController().addEntranceAutopilotStatusClickListener(this);
CallerHmiListenerManager.INSTANCE.addCheckAutoPilotBtnListener(TAG, this);
dispatchDialogManager = DispatchDialogManager.getInstance(context);
dispatchDialogManager.addIDispatchRemindListener(this);
handler.sendEmptyMessageDelayed(MSG_TYPE_UPLOAD_AUTOPILOT_STATUS, 1000L);
@@ -152,6 +153,7 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
@Override
public void cancel(boolean manualTrigger) {
CallerHmiListenerManager.INSTANCE.removeCheckAutoPilotBtnListener(TAG);
dispatchDialogManager.releaseDialog();
DispatchServiceModel.getInstance().dispatchResultUpload(manualTrigger ? DISPATCH_RESULT_MANUAL_CANCEL
: DISPATCH_RESULT_TIMER_CANCEL, new IDispatch() {
@@ -209,19 +211,25 @@ public class DispatchAutoPilotManager implements IMogoOnMessageListener<Dispatch
this.reason = reason;
}
@Override
public void click() {
// 确保到达终点后,再次点击,不会有回馈,并且在下次调开始时,才会重置
if (isArriveEnd) {
return;
}
//todo 确认是否要根据停靠时自动驾驶状态,再次开启自动驾驶
// 确保处于调度中并且返回的自动驾驶状态为1才开启自动驾驶
if (isDispatch ) {
startAutoPilot();
public void onCheck(boolean isChecked) {
if (isChecked) {
// 确保到达终点后,再次点击,不会有回馈,并且在下次调开始时,才会重置
if (isArriveEnd) {
return;
}
//todo 确认是否要根据停靠时自动驾驶状态,再次开启自动驾驶
// 确保处于调度中并且返回的自动驾驶状态为1才开启自动驾驶
if (isDispatch) {
startAutoPilot();
}
} else {
mApis.getAdasControllerApi().cancelAutopilot();
}
}
public void testAutopilotStatus() {
autoPilotStatus = 2;
}