From ce215194dda2942c52c18f6e72c4bd7e32682d4f Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Mon, 21 Nov 2022 18:14:24 +0800 Subject: [PATCH] =?UTF-8?q?[2.13.0]=20bus=E5=A2=9E=E5=8A=A0=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E6=A0=B8=E9=94=80=E9=95=BF=E9=93=BE=E6=8E=A5=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E7=AB=AF=E4=B8=8A=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/model/BusOrderModel.java | 92 +++++++------------ .../bus/presenter/BusModelLoopManager.java | 40 ++++---- .../socketmessage/OCHSocketMessageManager.kt | 4 +- 3 files changed, 55 insertions(+), 81 deletions(-) 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 b86baeb6b8..4a11f5c05d 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 @@ -169,9 +169,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 @@ -225,6 +229,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; } @@ -311,7 +332,7 @@ public class BusOrderModel { public void release(){ startOrStopOrderLoop(false); - startOrStopQueryPassengerWriteOff(false); +// startOrStopQueryPassengerWriteOff(false); MogoApisHandler.getInstance() .getApis() .getStatusManagerApi() @@ -328,6 +349,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() { @@ -501,7 +527,7 @@ public class BusOrderModel { endOrAbortTaskSuccess(); clearBusStationDatas(); queryBusRoutes(); - startOrStopQueryPassengerWriteOff(false); +// startOrStopQueryPassengerWriteOff(false); } } @@ -600,58 +626,6 @@ 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(); - } - } - /** * 到站后重置站点状态 */ @@ -678,7 +652,7 @@ public class BusOrderModel { arriveStationSuccess(arrivedStationIndex,departureStopName,arriveStation); //5s轮询核销乘客 - startOrStopQueryPassengerWriteOff(true); +// startOrStopQueryPassengerWriteOff(true); } @Override @@ -736,7 +710,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) }