diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/ThirdDeviceData.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/ThirdDeviceData.kt index 9c09e78b6c..b885b237c2 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/ThirdDeviceData.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/ThirdDeviceData.kt @@ -4,7 +4,6 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OFFLINE import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager @@ -17,11 +16,13 @@ import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg import com.mogo.och.common.module.utils.ResourcesUtils +import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusTransferData import com.mogo.och.offline.R import com.mogo.och.offline.constant.BusConst import com.mogo.och.offline.util.ShuttleVoiceManager +import io.reactivex.disposables.Disposable object ThirdDeviceData { @@ -58,6 +59,8 @@ object ThirdDeviceData { DPMsgType.TYPE_TASK_DETAILS.type, taskDetailsMsgListener ) + + RxUtils.disposeSubscribe(leaveStationDisposable) } // 乘客屏请求线路信息 @@ -66,17 +69,15 @@ object ThirdDeviceData { override fun onLanMsgReceived(taskDetailsMsg: TaskDetailsMsg?) = sendTaskDetailsToClients() } - private var delayedTts:Runnable?=null + private var leaveStationDisposable: Disposable? = null // 离站 fun leaveStation() { LineManager.getStationsWithLine { start, end, lineInfo -> - delayedTts = object :Runnable{ - override fun run() { - ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr) - } + RxUtils.disposeSubscribe(leaveStationDisposable) + leaveStationDisposable = RxUtils.createSubscribe(BusConst.DELAY_10S) { + ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr) } - UiThreadHandler.postDelayed(delayedTts, BusConst.DELAY_10S) //给bus外屏发送 LedScreenManager.sendTripInfo2Led( LedScreenManager.LEAVE_STATION, @@ -90,9 +91,7 @@ object ThirdDeviceData { //到站 fun arriveStation() { - delayedTts?.let { - UiThreadHandler.removeCallbacks(delayedTts) - } + RxUtils.disposeSubscribe(leaveStationDisposable) LineManager.getStationsWithLine { start, end, lineInfo -> ShuttleVoiceManager.arrivedStationBus(end.name, end.nameKr) // 收到正在进站的决策信息时播报,每个站点仅播报1次 @@ -110,9 +109,7 @@ object ThirdDeviceData { //结束任务 fun endTask() { - delayedTts?.let { - UiThreadHandler.removeCallbacks(delayedTts) - } + RxUtils.disposeSubscribe(leaveStationDisposable) LineManager.getLineInfo {lineInfo -> LedScreenManager.sendTripInfo2Led( LedScreenManager.END_TRIP,