[mView使用前判空]
This commit is contained in:
yangyakun
2024-05-06 19:59:24 +08:00
parent 502be42cdd
commit 4f7b2f0a58
10 changed files with 634 additions and 238 deletions

View File

@@ -62,7 +62,14 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onChangeLineIdSuccess() {
OrderModel.getInstance().clearBusStationDatas();
runOnUIThread(() -> mView.onChangeLineIdSuccess());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onChangeLineIdSuccess();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
public void queryBusLines(){
@@ -105,6 +112,8 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) {
mView.onBusLineTasks(o,position,autoRefresh);
if(mView!=null) {
mView.onBusLineTasks(o,position,autoRefresh);
}
}
}

View File

@@ -84,8 +84,8 @@ public class BusPresenter extends Presenter<BusFragment>
OrderModel.getInstance().setControllerStatusCallback(this);
OrderModel.getInstance().setPassengerCallback(this);
OrderModel.getInstance().setAdasStatusCallback(this);
OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG,this);
LoginStatusManager.INSTANCE.addListener(TAG,this);
OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this);
LoginStatusManager.INSTANCE.addListener(TAG, this);
}
public void releaseListener() {
@@ -108,7 +108,7 @@ public class BusPresenter extends Presenter<BusFragment>
}
public void restartAutopilot() {
if (OrderModel.getInstance().isGoingToNextStation()){
if (OrderModel.getInstance().isGoingToNextStation()) {
OrderModel.getInstance().restartAutopilot();
}
}
@@ -119,32 +119,51 @@ public class BusPresenter extends Presenter<BusFragment>
}
@Override
public void updateBusTaskStatus(String lineName,String lineTime,
public void updateBusTaskStatus(String lineName, String lineTime,
List<BusStationBean> stationList,
int arrivingOrArrivedIndex,
boolean isArrived) {
mStationList.clear();
mStationList.addAll(stationList);
if (arrivingOrArrivedIndex == 0 || isArrived){
if (arrivingOrArrivedIndex == 0 || isArrived) {
mCurrentStation = arrivingOrArrivedIndex;
}else {
mCurrentStation = arrivingOrArrivedIndex -1;
} else {
mCurrentStation = arrivingOrArrivedIndex - 1;
}
CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation);
if (mView != null) {
runOnUIThread(() -> mView.updateBusTaskStatus(lineName,lineTime,
stationList, arrivingOrArrivedIndex, isArrived));
}
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.updateBusTaskStatus(lineName, lineTime,
stationList, arrivingOrArrivedIndex, isArrived);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void updateEmptyUi() {
runOnUIThread(() -> mView.updateLineEmptyUI());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.updateLineEmptyUI();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void clearBusStationsMarkers() {
runOnUIThread(() -> mView.clearBusStationsMarkers());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.clearBusStationsMarkers();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -157,12 +176,12 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onAutopilotArriveAtStation(ArrivedStation arrivedStation) {
CallerLogger.e( M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive");
arriveStation(arrivedStation,"底盘触发进站");
CallerLogger.e(M_BUS + TAG, "行程日志-onAutopilotArriveAtStation arrive");
arriveStation(arrivedStation, "底盘触发进站");
}
public void arriveStation(ArrivedStation arrivedStation,String type){
OrderModel.getInstance().onArriveAt(arrivedStation,type);
public void arriveStation(ArrivedStation arrivedStation, String type) {
OrderModel.getInstance().onArriveAt(arrivedStation, type);
}
@Override
@@ -186,16 +205,37 @@ public class BusPresenter extends Presenter<BusFragment>
return;
}
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true);
OrderModel.getInstance().isRestartAutopilot(), true);
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
default:
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotEnableChange(false);
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
}
}
@@ -208,26 +248,22 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void startOpenAutopilot() {
//非美化模式下启动动画
runOnUIThread(() -> mView.startAutopilotAnimation());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.startAutopilotAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
//中间站点再次开启自驾时, 自动驾驶状态是2未改变 此次鹰眼底层不再返给业务,需优化按钮动画显示
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
== CallerAutoPilotStatusListenerManager.INSTANCE.getState() && mView != null) {
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
}
}
private void runOnUIThread(Runnable executor) {
if (executor == null) {
return;
}
if (Looper.myLooper() != Looper.getMainLooper()) {
UiThreadHandler.post(executor);
} else {
executor.run();
}
}
/**
* 测试使用
*/
@@ -238,22 +274,24 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) {
BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId);
BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo, lineId);
}
@Override
public void onStatusChange(LoginStatusEnum currentStatus) {
CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin());
if(LoginStatusManager.isLogin()){
if (LoginStatusManager.isLogin()) {
OrderModel.getInstance().startOrStopOrderLoop(true);
OrderModel.getInstance().queryBusRoutes();
}else {
} else {
BusTrajectoryManager.getInstance().stopTrajReqLoop();
OrderModel.getInstance().startOrStopOrderLoop(false);
BusTrajectoryManager.getInstance().stopTrajReqLoop();
clearBusStationsMarkers();
mView.hideSlidePanel();
if(mView!=null) {
mView.hideSlidePanel();
}
OrderModel.getInstance().closeBeautificationMode();
}
}
@@ -261,9 +299,9 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void playPassenger(WriteOffPassenger passenger) {
int passengerNum = passenger.passengerSize;
if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过
OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过");
}else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
if (passengerNum > 1) { //多人播报 "x人" ---》x人核验通过
OrderModel.getInstance().sendWriteOffNumToClient(passengerNum + "人核验通过");
} else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
// mView.playDI();
OrderModel.getInstance().sendWriteOffNumToClient("核验通过");
}
@@ -272,11 +310,20 @@ public class BusPresenter extends Presenter<BusFragment>
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.stopAnimAndUpdateBtnStatus();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void canStartAutopilot(boolean canStart) {
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStart);
if(mView!=null) {
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStart);
}
}
}

View File

@@ -56,13 +56,27 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onBusLinesChange(BusQueryLinesResponse lines) {
runOnUIThread(() -> mView.onBusLinesChange(lines));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onBusLinesChange(lines);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onChangeLineIdSuccess() {
OrderModel.getInstance().clearBusStationDatas();
runOnUIThread(() -> mView.onChangeLineIdSuccess());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onChangeLineIdSuccess();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
public void queryBusLines(){
@@ -105,6 +119,8 @@ public class BusLinePresenter extends Presenter<BusSwitchLineView> implements IB
@Override
public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) {
mView.onBusLineTasks(o,position,autoRefresh);
if(mView!=null) {
mView.onBusLineTasks(o,position,autoRefresh);
}
}
}

View File

@@ -131,20 +131,40 @@ public class BusPresenter extends Presenter<ShuttleFragment>
mCurrentStation = arrivingOrArrivedIndex -1;
}
CallerLogger.d(M_BUS + "BusOrderModel =", " mCurrentStation =" + mCurrentStation);
if (mView != null) {
runOnUIThread(() -> mView.updateBusTaskStatus(lineName,lineTime,
stationList, arrivingOrArrivedIndex, isArrived));
}
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateBusTaskStatus(lineName,lineTime,
stationList, arrivingOrArrivedIndex, isArrived);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void updateEmptyUi() {
runOnUIThread(() -> mView.updateLineEmptyUI());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateLineEmptyUI();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void clearBusStationsMarkers() {
runOnUIThread(() -> mView.clearBusStationsMarkers());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.clearBusStationsMarkers();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -181,16 +201,37 @@ public class BusPresenter extends Presenter<ShuttleFragment>
return;
}
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
case IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING:
OrderModel.getInstance().triggerStartServiceEvent(
OrderModel.getInstance().isRestartAutopilot(), true);
// 改变UI自动驾驶状态
runOnUIThread(() -> mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false)));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onAutopilotStatusChanged(state, CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
default:
runOnUIThread(() -> mView.onAutopilotEnableChange(false));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onAutopilotEnableChange(false);
}
}
}, UiThreadHandler.MODE.QUEUE);
break;
}
}
@@ -205,13 +246,20 @@ public class BusPresenter extends Presenter<ShuttleFragment>
@Override
public void startOpenAutopilot() {
//非美化模式下启动动画
runOnUIThread(() -> mView.startAutopilotAnimation());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startAutopilotAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
//中间站点再次开启自驾时, 自动驾驶状态是2未改变 此次鹰眼底层不再返给业务,需优化按钮动画显示
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()){
== CallerAutoPilotStatusListenerManager.INSTANCE.getState()&&mView!=null){
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false));
CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false,0));
}
}
@@ -250,18 +298,34 @@ public class BusPresenter extends Presenter<ShuttleFragment>
BusTrajectoryManager.getInstance().stopTrajReqLoop();
BusTrajectoryManager.getInstance().stopTrajReqLoop();
clearBusStationsMarkers();
mView.hideSlidePanel();
if(mView!=null) {
mView.hideSlidePanel();
}
OrderModel.getInstance().closeBeautificationMode();
}
}
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.stopAnimAndUpdateBtnStatus();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void canStartAutopilot(boolean canStart) {
runOnUIThread(() -> mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStart);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
}

View File

@@ -38,14 +38,14 @@ public class BaseBusPassengerPresenter extends Presenter<BusPassengerRouteFragme
}
@Override
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
CallerLogger.d( M_BUS_P + TAG, "Bus乘客端Presenter onCreate()" );
public void onCreate(@NonNull LifecycleOwner owner) {
super.onCreate(owner);
CallerLogger.d(M_BUS_P + TAG, "Bus乘客端Presenter onCreate()");
}
@Override
public void onDestroy( @NonNull LifecycleOwner owner ) {
super.onDestroy( owner );
public void onDestroy(@NonNull LifecycleOwner owner) {
super.onDestroy(owner);
releaseListeners();
BusPassengerModel.getInstance().release();
@@ -75,41 +75,41 @@ public class BaseBusPassengerPresenter extends Presenter<BusPassengerRouteFragme
@Override
public void onAutopilotEnable() {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotStatusChanged(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotDisable() {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotStatusChanged(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotRunning() {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.onAutopilotStatusChanged(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -119,26 +119,26 @@ public class BaseBusPassengerPresenter extends Presenter<BusPassengerRouteFragme
@Override
public void onCarLocationChanged(MogoLocation location) {
if (location != null && mView != null){
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (location != null && mView != null) {
mView.onCarLocationChanged(location);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void changeOperationStatus(boolean changeStatus) {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.changeOperationStatus(changeStatus);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -148,62 +148,62 @@ public class BaseBusPassengerPresenter extends Presenter<BusPassengerRouteFragme
@Override
public void updateLineInfo(String lineName) {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.updateLineInfo(lineName);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void updateStationsInfo(List<BusStationBean> stations, int currentStationIndex, boolean isArrived) {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.updateStationsInfo(stations, currentStationIndex, isArrived);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void showNoTaskView() {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.showNoTaskView();
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void hideNoTaskView() {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.hideNoTaskView();
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void routePlanningToNextStationChanged(long meters, long timeInSecond) {
if(mView != null) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.updateRoutePlanningToNextStation(meters, timeInSecond);
}
},UiThreadHandler.MODE.QUEUE);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override

View File

@@ -42,12 +42,26 @@ public class TaxiOperationalPresenter extends Presenter<TaxiPersonalDialogFragme
@Override
public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) {
runOnUIThread(() -> mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onOrdersListPageRefresh(List<OrderQueryRespBean.Result> ordersList) {
runOnUIThread(() -> mView.onOrdersListPageRefresh(ordersList));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onOrdersListPageRefresh(ordersList);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
private void runOnUIThread( Runnable executor ) {

View File

@@ -189,37 +189,79 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onAutopilotEnable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotDisable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotRunning(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onManMachineCoDriving(boolean canStartAuto) {
runOnUIThread(() -> mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onManMachineCoDriving(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void updateAutopilotStatus(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.stopAnimAndUpdateBtnStatus();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -229,7 +271,14 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onOrdersWaitServiceChanged(@NonNull @NotNull List<OrderQueryRespBean.Result> waitServiceList) {
runOnUIThread(() -> mView.onOrdersWaitServiceChanged(waitServiceList));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onOrdersWaitServiceChanged(waitServiceList);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@RequiresApi(api = Build.VERSION_CODES.P)
@@ -244,10 +293,15 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
if (TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus) {
TaxiModel.getInstance().startDynamicCalculateRouteInfo();
TaxiModel.getInstance().setStation();
runOnUIThread(() -> {
mView.updateCtvAutopilotStatusTag(true);
CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true);
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateCtvAutopilotStatusTag(true);
CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@@ -257,36 +311,69 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
TaxiModel.getInstance().startOrStopCalculateRouteInfo(false);
TaxiModel.getInstance().cleanLineMarker();
TaxiModel.getInstance().cleanStation();
runOnUIThread(() -> {
/** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
* 2.server去除订单流转对"安全确认"的限制读写接口默认反馈ok但"开启自动驾驶成功"不再限制)
*/
mView.updateCtvAutopilotStatusTag(false);
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
/** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
* 2.server去除订单流转对"安全确认"的限制读写接口默认反馈ok但"开启自动驾驶成功"不再限制)
*/
mView.updateCtvAutopilotStatusTag(false);
if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) {
CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false);
if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) {
CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false);
}
}
}
});
}, UiThreadHandler.MODE.QUEUE);
}
if (TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus) {
VoiceNotice.showNotice("乘客已取消行程");
}
runOnUIThread(() -> mView.updateCurrentOrderStatusChanged(order));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateCurrentOrderStatusChanged(order);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onCurrentOrderCancelDone() {
runOnUIThread(() -> mView.onCurrentOrderCancelDone());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onCurrentOrderCancelDone();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onOrderCancelDone(String orderNo) {
runOnUIThread(() -> mView.onOrderCancelDone(orderNo));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onOrderCancelDone(orderNo);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo) {
runOnUIThread(() -> mView.onCurrentOrderRouteInfoGot(routeInfo));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onCurrentOrderRouteInfoGot(routeInfo);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -295,44 +382,98 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) {
runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onCurrentOrderDistToEndChanged(meters, timeInSecond);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onNewBookingOrderGot(OrderQueryRespBean.Result order) {
runOnUIThread(() -> mView.onNewBookingOrderGot(order));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onNewBookingOrderGot(order);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onGrabOrderExecuteDone() {
runOnUIThread(() -> mView.onGrabOrderExecuteDone());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onGrabOrderExecuteDone();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onGrabOrderSuccess(OrderQueryRespBean.Result order) {
runOnUIThread(() -> mView.onGrabOrderSuccess(order));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onGrabOrderSuccess(order);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onGrabOrderFailed(OrderQueryRespBean.Result order) {
runOnUIThread(() -> mView.onGrabOrderFailed(order));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onGrabOrderFailed(order);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onDriverHasCheckedPilotCondition() {
runOnUIThread(() -> mView.onCheckPilotConditionSafe());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onCheckPilotConditionSafe();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onNaviToEnd(boolean isAmap, boolean isShow) {
runOnUIThread(() -> mView.onNaviToEnd(isAmap, isShow));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onNaviToEnd(isAmap, isShow);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void startOpenAutopilot() {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(true);
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(true);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -347,15 +488,25 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
role = TaxiConst.TEST_USER;
}
String finalRole = role;
runOnUIThread(() -> {
mView.setRole(finalRole);
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.setRole(finalRole);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) {
runOnUIThread(() -> {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
}
}
}, UiThreadHandler.MODE.QUEUE);
}
}

View File

@@ -69,17 +69,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
LoginStatusManager.INSTANCE.removeListener(TAG);
}
private void runOnUIThread(Runnable executor) {
if (executor == null) {
return;
}
if (Looper.myLooper() != Looper.getMainLooper()) {
UiThreadHandler.post(executor);
} else {
executor.run();
}
}
/**
* 开启自动驾驶 自驾模式
*/
@@ -111,95 +100,179 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onAutopilotEnable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotDisable(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onAutopilotRunning(boolean canStartAuto) {
runOnUIThread(() -> mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateAutopilotStatus(
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onParallelDrivingStatus(boolean canStartAuto) {
runOnUIThread(() -> mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.onParallelDrivingStatus(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING,canStartAuto);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onStartAdasFailure() {
runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus());
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.stopAnimAndUpdateBtnStatus();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void updateAutopilotStatus(boolean canStartAuto) {
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
if(mView!=null) {
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), canStartAuto);
}
}
@Override
public void onNaviToEnd(boolean isAmap, boolean isShow) {
runOnUIThread(() -> mView.onNaviToEnd(isAmap, isShow));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
onNaviToEnd(isAmap, isShow);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onVRModeChanged(boolean isVRMode) {
runOnUIThread(() -> mView.switchVRFlatMode(isVRMode));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.switchVRFlatMode(isVRMode);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void onCarLocationChanged(MogoLocation location) {
// if (null != location) {
// runOnUIThread(() -> {
// mView.updateSpeedView((float) location.getGnssSpeed());
// });
// }
}
@Override
public void startOpenAutopilot() {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(true);
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(true);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void startOpenAutopilotNonManual() {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(true);
mView.showStartAutopilotBlinkAnimation();
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(true);
mView.showStartAutopilotBlinkAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void stopOpenAutopilotNonManual(boolean canStartAuto) {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.stopAutopilotBlinkAnimation();
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.stopAutopilotBlinkAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void pauseOpenAutopilotNonManual(boolean canStartAuto) {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.pauseAutopilotBlinkAnimation();
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(false);
mView.updateAutopilotStatus(CallerAutoPilotStatusListenerManager.INSTANCE.getState(),canStartAuto);
mView.pauseAutopilotBlinkAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void resumeOpenAutopilotNonManual() {
runOnUIThread(() -> {
mView.startOrStopLoadingAnim(true);
mView.resumeAutopilotBlinkAnimation();
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.startOrStopLoadingAnim(true);
mView.resumeAutopilotBlinkAnimation();
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
@@ -212,12 +285,18 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
role = TaxiUnmannedConst.TEST_USER;
}
String finalRole = role;
runOnUIThread(() -> {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
mView.setRole(finalRole);
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
mView.setRole(finalRole);
}
}
}, UiThreadHandler.MODE.QUEUE);
if (!TaxiTaskModel.INSTANCE.checkCurrentTaskCondition()) {
if (!TaxiTaskModel.INSTANCE.checkCurrentTaskCondition()&&mView!=null) {
mView.showDebugPanel();
}
@@ -226,9 +305,14 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
@Override
public void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum) {
runOnUIThread(() -> {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
});
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if(mView!=null) {
mView.updateOperationStatus(LoginStatusManager.getOpenOrderType());
}
}
}, UiThreadHandler.MODE.QUEUE);
}
public void stopAutoStartAutopilot() {

View File

@@ -62,11 +62,20 @@ public class RoutingNaviPresenter extends Presenter<TaxiRoutingNaviFragment> imp
@Override
public void setLineMarker(LatLng startStation, LatLng endStation) {
runOnUIThread(() -> mView.setLineMarker(startStation, endStation));
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
if (mView != null) {
mView.setLineMarker(startStation, endStation);
}
}
}, UiThreadHandler.MODE.QUEUE);
}
@Override
public void routeResult(List<LatLng> routeArrivied, List<LatLng> routeArriving, MogoLocation location) {
mView.routeResult(routeArrivied, routeArriving, location);
if (mView != null) {
mView.routeResult(routeArrivied, routeArriving, location);
}
}
}

View File

@@ -27,13 +27,15 @@ public class MainPresenter extends Presenter<MainView> {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case MainConstants.MSG_HIDE_MAP_COVER_FRAME:
mView.hideCoverUpLayout();
break;
case MainConstants.MSG_LOAD_MODULES:
mView.loadModules();
break;
if(mView!=null) {
switch (msg.what) {
case MainConstants.MSG_HIDE_MAP_COVER_FRAME:
mView.hideCoverUpLayout();
break;
case MainConstants.MSG_LOAD_MODULES:
mView.loadModules();
break;
}
}
}
};