diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt index 5307db0926..c511c80e78 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt @@ -38,6 +38,7 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe private var turnLightFirst = false private var turnLightEnd = true private var result: TrafficLightResult? = null + private var vip: Boolean = false fun initServer(context: Context) { mContext = context @@ -53,9 +54,12 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe } //todo 后续改成接口调用查询,防止清除缓存造成状态不统一 if (vipSetTime > 0 && System.currentTimeMillis() - vipSetTime < 0) { //未超时,需要设置VIP + vip = true CallerHmiManager.vipIdentification(true) CallTrafficLightListenerManager.registerTrafficLightListener(TAG, this) } else { + vip = false + CallerHmiManager.vipIdentification(false) SPUtils.getInstance().remove("vip") //超时 } } @@ -69,11 +73,13 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe vipMessage?.let { when (it.vipType) { 0 -> { //取消VIP + vip = false SPUtils.getInstance().remove("vip") CallerHmiManager.vipIdentification(false) CallTrafficLightListenerManager.unRegisterTrafficLightListener(TAG) } 1 -> { //设置VIP + vip = true SPUtils.getInstance().put("vip", vipMessage.timeOut) CallerHmiManager.vipIdentification(true) CallTrafficLightListenerManager.registerTrafficLightListener(TAG, this) @@ -83,11 +89,13 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe } override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { + if (!vip) { + return + } if (trafficLightResult.currentRoadTrafficLight() == null) { Logger.d(TAG, "vip 获取到灯态,但没找到对应车道数据 result : $trafficLightResult") return } - if (!turnLightFirst) { // 首次判断,变灯 turnLightFirst = true