From f4d3fff3ea0a34a80f4b872a5e771be9a5b7f48b Mon Sep 17 00:00:00 2001 From: zhongchao Date: Sat, 27 Nov 2021 17:50:01 +0800 Subject: [PATCH 1/4] fix bug of vip --- .../core/function/v2x/vip/VipCarManager.kt | 44 +++++++++++++++---- 1 file changed, 36 insertions(+), 8 deletions(-) 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 bf93846658..55a24b08d0 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 @@ -20,6 +20,7 @@ import com.mogo.map.navi.IMogoCarLocationChangedListener2 import com.mogo.module.common.MogoApisHandler import com.mogo.module.common.enums.EventTypeEnum import com.mogo.service.cloud.socket.IMogoOnMessageListener +import com.mogo.utils.UiThreadHandler import com.mogo.utils.logger.Logger import kotlin.math.abs @@ -41,8 +42,14 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe private var mLocation: Location? = null private var turnLightFirst = false private var turnLightEnd = true - private var result: TrafficLightResult? = null private var vip: Boolean = false + + @Volatile + private var enter: Boolean = false + + private var result: TrafficLightResult? = null + private var lastResult: TrafficLightStatus? = null + private val vipNetWorkModel = VipNetWorkModel() private val handler = Handler(Looper.getMainLooper(), this) @@ -96,15 +103,21 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe if (!vip) { return } + if (enter) { + Logger.d(TAG, "驶入路口,返回 , then resetConditions") + resetConditions() + return + } if (trafficLightResult.currentRoadTrafficLight() == null) { - Logger.d(TAG, "vip 获取到灯态,但没找到对应车道数据 result : $trafficLightResult") + Logger.d(TAG, "vip 获取到灯态,但没找到对应车道数据 result : $trafficLightResult , then resetConditions") + resetConditions() return } val currentResult = trafficLightResult.currentRoadTrafficLight() - val lastResult = result?.currentRoadTrafficLight() + lastResult = result?.currentRoadTrafficLight() Logger.d( TAG, - "检查是否变灯 last.remain : ${lastResult?.remain} , current.remain : ${currentResult?.remain}" + "检查是否变灯 last.remain : ${lastResult?.remain} , color : ${lastResult?.color} , current.remain : ${currentResult?.remain} , color : ${currentResult?.color}, turnLightFirst : $turnLightFirst" ) this.result = trafficLightResult @@ -118,7 +131,7 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe } lastResult?.let { //如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗 - if (abs(lastResult.remain - currentResult!!.remain) > 3) { + if (abs(it.remain - currentResult!!.remain) > 5) { CallerHmiManager.showWarningV2X(EventTypeEnum.TYPE_VIP_IDENTIFICATION.poiType.toInt(), EventTypeEnum.TYPE_VIP_IDENTIFICATION.content, EventTypeEnum.TYPE_VIP_IDENTIFICATION.tts, @@ -128,10 +141,9 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe override fun onDismiss() { Logger.d( TAG, - "showWarningV2X vip dismiss , reset turnLightFirst to false " + "showWarningV2X vip dismiss , resetConditions" ) - turnLightFirst = false - turnLightEnd = true + resetConditions() } }) } @@ -145,6 +157,13 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe // } } + private fun resetConditions() { + turnLightFirst = false + turnLightEnd = true + result = null + lastResult = null + } + private fun setVip(cancelDelayTime: Long) { vip = true handler.sendEmptyMessageDelayed( @@ -154,6 +173,7 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe CallerHmiManager.vipIdentification(true) CallVipSetListenerManager.invokeVipSetStatus(true) CallTrafficLightListenerManager.registerTrafficLightListener(TAG, this) + CallTrafficLightListenerManager.registerEnterCrossRoadListener(TAG, this) } private fun cancelVip() { @@ -164,6 +184,7 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe CallerHmiManager.vipIdentification(false) CallVipSetListenerManager.invokeVipSetStatus(false) CallTrafficLightListenerManager.unRegisterTrafficLightListener(TAG) + CallTrafficLightListenerManager.unRegisterEnterCrossRoadListener(TAG) } private fun canGetThroughCross( @@ -202,6 +223,13 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe }) } + override fun onEnterCrossRoad(enter: Boolean) { + super.onEnterCrossRoad(enter) + UiThreadHandler.post { + this.enter = enter + } + } + private fun turnLight(controlTime: Int) { result?.let { MogoTrafficLightManager.INSTANCE.turnLightToGreen( From 8143fce16909cfc3775288cd11af215f9c5c2cd3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Sat, 27 Nov 2021 18:35:06 +0800 Subject: [PATCH 2/4] add log --- .../java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 55a24b08d0..dd79d5f32c 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 @@ -131,7 +131,8 @@ class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListe } lastResult?.let { //如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗 - if (abs(it.remain - currentResult!!.remain) > 5) { + if (abs(currentResult!!.remain - it.remain) > 5) { + Logger.d(TAG,"调用showWarningV2X to show") CallerHmiManager.showWarningV2X(EventTypeEnum.TYPE_VIP_IDENTIFICATION.poiType.toInt(), EventTypeEnum.TYPE_VIP_IDENTIFICATION.content, EventTypeEnum.TYPE_VIP_IDENTIFICATION.tts, From fbdda7acd8dcd435ea468eea035a0d0b9dcb3b02 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Sat, 27 Nov 2021 19:26:47 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[Add]=20=E5=A2=9E=E5=8A=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=90=AF=E5=8A=A8=E6=97=B6=E9=97=B4=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../src/main/java/com/mogo/module/main/MainActivity.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 966be80f93..4c15f8dfa1 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -31,6 +31,7 @@ import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.api.CallChatApi; +import com.mogo.module.common.enums.EventTypeEnum; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; import com.mogo.module.main.cards.MogoModulesManager; @@ -51,6 +52,9 @@ import com.zhidao.adasconfig.api.AdasConfigApiController; import com.zhidao.adasconfig.common.log.LoggerController; import com.zhidao.autopilot.support.api.AutopilotServiceManage; +import java.util.HashMap; +import java.util.Map; + /** * @author congtaowang * @since 2019-12-23 @@ -176,6 +180,8 @@ public class MainActivity extends MvpActivity implement @Override public void onWindowFocusChanged(boolean hasFocus) { if (hasFocus) { + // 统计代码 + final Map properties = new HashMap<>(); long hotStartTime = AppLaunchTimeUtils.getTimeCalculate(AppLaunchTimeUtils.HOT_START); if (AppLaunchTimeUtils.sColdStartTime > 0 && hotStartTime > 0) { // 真正的冷启动时间 = Application启动时间 + 热启动时间 @@ -184,14 +190,17 @@ public class MainActivity extends MvpActivity implement if (coldStartTime < 50000) { // 上传冷启动时间coldStartTime Logger.i(TAG, "coldStartTime:" + coldStartTime); + properties.put("app_launch_coldStartTime", coldStartTime); } } else if (hotStartTime > 0) { // 过滤掉异常启动时间 if (hotStartTime < 30000) { // 上传热启动时间hotStartTime Logger.i(TAG, "hotStartTime:" + hotStartTime); + properties.put("app_launch_hotStartTime", hotStartTime); } } + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track("app_launch_time", properties); } } From 7e84b41e782eee39f9138292750d49a31774bb73 Mon Sep 17 00:00:00 2001 From: lianglihui Date: Sat, 27 Nov 2021 20:03:54 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E8=A7=84=E5=88=92=20=E4=BF=AE=E6=94=B9=E7=BC=A9=E6=94=BE?= =?UTF-8?q?=E5=88=B015;=E9=99=90=E9=80=9F=E6=A0=87=E8=AF=86=E4=BF=9D?= =?UTF-8?q?=E6=8C=81=E5=B1=95=E7=A4=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/eagle/core/function/smp/SmallMapDirectionView.java | 4 ++-- .../core/function/v2x/speedlimit/SpeedLimitDataManager.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java index aa1875fcf7..03c2eb53bd 100644 --- a/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java +++ b/core/function-impl/mogo-core-function-smp/src/main/java/com/mogo/eagle/core/function/smp/SmallMapDirectionView.java @@ -63,7 +63,7 @@ public class SmallMapDirectionView private Marker mStartMarker; private Marker mEndMarker; - private int zoomLevel = 13; + private int zoomLevel = 15; private List mCoordinatesLatLng = new ArrayList<>(); private List mCoordinatesLatLngCurrent = new ArrayList<>(); private Polyline mPolyline; @@ -217,7 +217,7 @@ public class SmallMapDirectionView clearPolyline(); mCoordinatesLatLng.clear(); } - cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).build(); + cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); } else { //设置希望展示的地图缩放级别 cameraPosition = new CameraPosition.Builder().target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java index c6d22b44b6..9144ac50b5 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/speedlimit/SpeedLimitDataManager.java @@ -41,7 +41,7 @@ public class SpeedLimitDataManager implements IMogoCarLocationChangedListener2 { @Override public void run() { int speed = (int) (mLocation.getSpeed() * 3.6f); - if (speed > speedLimmit){ + if (speed > 0 && speedLimmit > 0){ CallerHmiManager.INSTANCE.showLimitingVelocity(speedLimmit); }else { CallerHmiManager.INSTANCE.disableLimitingVelocity();