diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 79097d0636..db6d46c691 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -167,9 +167,13 @@ public class BusOrderModel { //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); - OCHSocketMessageManager.INSTANCE.registerSocketMessageListener( + OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听运营消息 OCHSocketMessageManager.INSTANCE.getMsgMonitorType(), mMogoOnMessageListener); + + OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客 + OCHSocketMessageManager.INSTANCE.getMsgWriteOffPassengerType(), + mWriteOffPassengeOnMessageListener); } //2022.1.28 @@ -223,6 +227,23 @@ public class BusOrderModel { } }; + private final IMogoOnMessageListener mWriteOffPassengeOnMessageListener = + new IMogoOnMessageListener() { + @Override + public Class target() { + return WriteOffPassenger.class; + } + + @Override + public void onMsgReceived(WriteOffPassenger passenger) { + //进行播报 + if (passenger != null && passenger.passengerSize == 0) return; + if (mPassengerCallback != null){ + mPassengerCallback.playPassenger(passenger); + } + } + }; + public void setAdasStatusCallback(IBusADASStatusCallback callback){ this.mADASStatusCallback = callback; } @@ -309,7 +330,7 @@ public class BusOrderModel { public void release() { startOrStopOrderLoop(false); - startOrStopQueryPassengerWriteOff(false); + //startOrStopQueryPassengerWriteOff(false); MogoStatusManager.getInstance().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); // 注销到达起始站围栏监听 @@ -323,6 +344,11 @@ public class BusOrderModel { loginService = null; OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); + + OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( + OCHSocketMessageManager.INSTANCE.getMsgMonitorType()); + OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener( + OCHSocketMessageManager.INSTANCE.getMsgWriteOffPassengerType()); } private Object readResolve() { @@ -498,7 +524,7 @@ public class BusOrderModel { endOrAbortTaskSuccess(); clearBusStationDatas(); queryBusRoutes(); - startOrStopQueryPassengerWriteOff(false); + // startOrStopQueryPassengerWriteOff(false); } } @@ -598,64 +624,12 @@ public class BusOrderModel { } } - /** - * 到站查询核销乘客 - */ - public void queryPassengerWriteOff() { - if (backgroundCurrentStationIndex > stationList.size() - 1) { //到站短时间内调用多次 - CallerLogger.INSTANCE.e(M_BUS + TAG, "数组越界"); - return; - } - BusServiceManager.queryStationWriteOffPassengers(mContext, - currentTaskId, - stationList.get(backgroundCurrentStationIndex).getSiteId(), - prePassengerWriteOffTime, - new OchCommonServiceCallback() { - - @Override - public void onSuccess(BusQueryWriteOffPassengersResponse o) { - if (o.code != 0 || o.data == null || o.data.isEmpty()) { - return; - } - List passengers = o.data; - playWriteOffPassengersMsg(passengers); - } - - @Override - public void onFail(int code, String failMsg) { - - } - }); - } - - private void playWriteOffPassengersMsg(List passengers) { - for (int i = 0; i < passengers.size(); i++) { - WriteOffPassenger passenger = passengers.get(i); - CallerLogger.INSTANCE.e(M_BUS + TAG, "size = " + passenger.passengerSize + - " time = " + passenger.writeOffTime); - prePassengerWriteOffTime = passenger.writeOffTime; - if (mPassengerCallback != null) { - mPassengerCallback.playPassenger(passenger); - } - } - } - - private void startOrStopQueryPassengerWriteOff(boolean isStart) { - if (isStart) { - BusModelLoopManager.getInstance().startQueryPassengerWriteOffLoop(); - } else { - prePassengerWriteOffTime = 0; - SoundPoolHelper.getSoundPoolHelper().releaseSoundPool(); - BusModelLoopManager.getInstance().stopQueryPassengerWriteOffLoop(); - } - } - /** * 到站后重置站点状态 */ private void arriveSiteStation() { - if (backgroundCurrentStationIndex + 1 > stationList.size() - 1) { //到站短时间内调用多次 - CallerLogger.INSTANCE.e(M_BUS + TAG, "数组越界"); + if ( backgroundCurrentStationIndex +1 > stationList.size() - 1 ) { //到站短时间内调用多次 + CallerLogger.INSTANCE.e( M_BUS + TAG, "数组越界" ); return; } int arrivedStationIndex = backgroundCurrentStationIndex + 1; @@ -676,7 +650,7 @@ public class BusOrderModel { arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); //5s轮询核销乘客 - startOrStopQueryPassengerWriteOff(true); +// startOrStopQueryPassengerWriteOff(true); } @Override @@ -734,7 +708,7 @@ public class BusOrderModel { isArrivedStation = false; CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); //需要更改当前站和下一站的状态 然后渲染 - startOrStopQueryPassengerWriteOff(false); + //startOrStopQueryPassengerWriteOff(false); queryBusRoutes(); leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); } @@ -821,7 +795,7 @@ public class BusOrderModel { BusSendTripInfoManager.INSTANCE.sendBusTripInfo(BusSendTripInfoManager.START_TRIP , busRoutesResult.getName(), "", "", false); } - startOrStopQueryPassengerWriteOff(true); +// startOrStopQueryPassengerWriteOff(true); } BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); @@ -925,7 +899,7 @@ public class BusOrderModel { endOrAbortTaskSuccess(); clearBusStationDatas(); queryBusRoutes();// 重新获取任务 - startOrStopQueryPassengerWriteOff(false); +// startOrStopQueryPassengerWriteOff(false); VoiceNotice.showNotice(mContext.getString(R.string.bus_end_task_tip)); } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java index ad76324a64..9baa585f9f 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java @@ -33,28 +33,28 @@ public class BusModelLoopManager { } private Disposable mHeartbeatDisposable; //心跳轮询 - private Disposable mQueryPassengerDisposable; //查询核销乘客 +// private Disposable mQueryPassengerDisposable; //查询核销乘客 - public void startQueryPassengerWriteOffLoop() { - if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) { - return; - } - CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()"); - mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500, - LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff()); - } +// public void startQueryPassengerWriteOffLoop() { +// if (mQueryPassengerDisposable != null && !mQueryPassengerDisposable.isDisposed()) { +// return; +// } +// CallerLogger.INSTANCE.i(M_BUS + TAG, "startQueryPassengerWriteOffLoop()"); +// mQueryPassengerDisposable = Observable.interval(LOOP_DELAY_500, +// LOOP_PASSENGER_5S, TimeUnit.MILLISECONDS) +// .map((aLong -> aLong + 1)) +// .subscribeOn(Schedulers.io()) +// .observeOn(AndroidSchedulers.mainThread()) +// .subscribe(aLong -> BusOrderModel.getInstance().queryPassengerWriteOff()); +// } - public void stopQueryPassengerWriteOffLoop() { - if (mQueryPassengerDisposable != null) { - CallerLogger.INSTANCE.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()"); - mQueryPassengerDisposable.dispose(); - mQueryPassengerDisposable = null; - } - } +// public void stopQueryPassengerWriteOffLoop() { +// if (mQueryPassengerDisposable != null) { +// CallerLogger.INSTANCE.i(M_BUS + TAG, "stopQueryPassengerWriteOffLoop()"); +// mQueryPassengerDisposable.dispose(); +// mQueryPassengerDisposable = null; +// } +// } public void startHeartbeatLoop() { if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt index a9107a81c6..e64b84e1e2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/common/socketmessage/OCHSocketMessageManager.kt @@ -13,8 +13,8 @@ object OCHSocketMessageManager { public val msgMonitorType:Int = 0X0601001 public val msgWriteOffPassengerType:Int = 0X0601002 - fun registerSocketMessageListener(msgType:Int, - mogoOnMessageListener : IMogoOnMessageListener){ + fun registerSocketMessageListener(msgType:Int, + mogoOnMessageListener :IMogoOnMessageListener){ MogoAiCloudSocketManager.getInstance(AbsMogoApplication.getApp().applicationContext) .registerOnMessageListener(msgType,mogoOnMessageListener) }