diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt index 3c6aecd196..8be8ce69b7 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt @@ -35,8 +35,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListener import com.mogo.eagle.core.function.call.map.CallerMapRomaListener import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.updateLongSightLevel -import com.mogo.eagle.core.function.utils.MapBizTrace -import com.mogo.eagle.core.function.utils.MapBizTrace.Companion.getCurrentCNode +import com.mogo.eagle.core.function.utils.MapRomaTrace +import com.mogo.eagle.core.function.utils.MapRomaTrace.Companion.getCurrentCNode import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.map.uicontroller.VisualAngleMode import com.zhidaoauto.map.data.point.LonLatPoint @@ -74,7 +74,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, private val handler = Handler(Looper.getMainLooper()) { if (it.what == H_ERROR_CLOUD) { if (!aiCloudDataChange.get()) { - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_CLOUD_ERROR, TAG, mutableMapOf( "msg" to "云端 $H_DELAY_TIME 秒内无感知数据下发", @@ -83,7 +83,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, ) ) } else { - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_CLOUD_PUSH, TAG, mutableMapOf( "msg" to "延迟 $H_DELAY_TIME 秒内获取云端下发感知数据大小", @@ -93,7 +93,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, } } if (it.what == H_ERROR_MAP) { - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_MAP_ERROR, TAG, mutableMapOf("msg" to "地图漫游模式启动失败,原因:${it.obj}") ) @@ -148,7 +148,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, // 乘客司机屏屏各自单独控制漫游 if (romaStatus) { // 开启roma,当前非漫游,开启 - MapBizTrace.log( + MapRomaTrace.log( "", CHAIN_CODE_ROMA_CLICK, TAG, @@ -157,7 +157,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, openRoma() } else { // 跟上次关联,需要确认parent进度 - MapBizTrace.log(getCurrentCNode(), CHAIN_CODE_ROMA_CLOSE_CLICK, TAG, "") + MapRomaTrace.log(getCurrentCNode(), CHAIN_CODE_ROMA_CLOSE_CLICK, TAG, "") handler.removeMessages(H_ERROR_CLOUD) closeRoma() } @@ -186,7 +186,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, fun requestRangeOfIdentify(dataReceive: Boolean) { val gnss = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().gnssInfo // false,改变父节点信息 - MapBizTrace.log( + MapRomaTrace.log( if (dataReceive) CHAIN_CODE_ROMA_CLICK else "", CHAIN_CODE_ROMA_REQUEST, TAG, mutableMapOf( "dataReceive" to dataReceive, @@ -203,7 +203,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, gnss.latitude, { // false,改变父节点信息 - MapBizTrace.log( + MapRomaTrace.log( if (dataReceive) CHAIN_CODE_ROMA_REQUEST else "", CHAIN_CODE_ROMA_REQUEST_OK, TAG, @@ -218,13 +218,13 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, CallerMapUIServiceManager.getMapUIController()?.setRomaMode(FunctionBuildConfig.romaModeStyle) }else{ // 保底清除策略 - MapBizTrace.log("",CHAIN_CODE_ROMA_REQUEST_DELAY,TAG,mutableMapOf("delay" to true),true) + MapRomaTrace.log("",CHAIN_CODE_ROMA_REQUEST_DELAY,TAG,mutableMapOf("delay" to true),true) MapIdentifySubscriber.instance.clearAiCloudRoma() } }, { errorMsg -> // false,改变父节点信息 - MapBizTrace.log( + MapRomaTrace.log( if (dataReceive) CHAIN_CODE_ROMA_REQUEST else "", CHAIN_CODE_ROMA_REQUEST_ERROR, TAG, @@ -248,7 +248,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, super.mapRomaStatus(status, msg) when (status) { 0 -> { - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_REQUEST_OK, CHAIN_CODE_ROMA_MAP_READY_START, TAG, @@ -256,7 +256,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, ) } 4 -> { - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_MAP_READY_START, CHAIN_CODE_ROMA_MAP_START, TAG, @@ -280,14 +280,14 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, closeRoma(false) } 2 -> { // 地图自动漫游结束,重置状态,调用close通知服务端 - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_MAP_START, CHAIN_CODE_ROMA_MAP_END, TAG, mutableMapOf("romaEnd" to "地图结束回调,状态:$status"), true ) reset() } 3 -> { // 业务释放地图视角锁定,回调切换视角结束漫游 - MapBizTrace.log( + MapRomaTrace.log( CHAIN_CODE_ROMA_CLOSE_CLICK, CHAIN_CODE_ROMA_MAP_CHANGE_END, TAG, mutableMapOf("romaEnd" to "地图结束回调,状态:$status"), true @@ -330,7 +330,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, } private fun updateRomaStyle(auto: Boolean, routeList: ArrayList? = null) { - MapBizTrace.log( + MapRomaTrace.log( "", CHAIN_CODE_ROMA_ROUTE_MODE, TAG, diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapBizTrace.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapRomaTrace.kt similarity index 98% rename from core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapBizTrace.kt rename to core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapRomaTrace.kt index 060c44b0e8..d1530b14f6 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapBizTrace.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/utils/MapRomaTrace.kt @@ -8,7 +8,7 @@ import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.ChildNodeAlias import com.zhjt.service.chain.ParentNodeAlias -class MapBizTrace { +class MapRomaTrace { companion object { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt index afa697169d..e393ead0aa 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt @@ -103,6 +103,7 @@ class ChainConstant { const val CHAIN_CODE_MSG_BOX = "CHAIN_CODE_MSG_BOX" const val CHAIN_CODE_HD_MAP_CALL = "CHAIN_CODE_HD_MAP_CALL" const val CHAIN_CODE_HD_MAP_ROAD_CROSS = "CHAIN_CODE_HD_MAP_ROAD_CROSS" + const val CHAIN_CODE_HD_MAP_ICON_SET = "CHAIN_CODE_HD_MAP_ICON_SET" const val CHAIN_CODE_HMI_ACTIONS = "CHAIN_CODE_HMI_ACTIONS" //operation by user diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt index f064eea7ed..8fc2207970 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt @@ -25,6 +25,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHandler import com.mogo.map.uicontroller.* +import com.mogo.map.utils.MapTraceUtil import com.mogo.map.utils.MogoMapUtils import com.mogo.map.utils.ObjectUtils import com.zhidaoauto.map.data.point.LonLatPoint @@ -50,6 +51,7 @@ import com.zhidaoauto.map.sdk.open.tools.MapTools.getVisibleRegion import com.zhidaoauto.map.sdk.open.tools.MapTools.toScreenLocation import com.zhidaoauto.map.sdk.open.view.MapAutoView import com.zhjt.service.chain.ChainLog +import java.util.concurrent.atomic.AtomicInteger import kotlin.properties.Delegates class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIController, @@ -221,7 +223,7 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle invokeRoadChange(1, newValue) return@let } - if((newValue!!.cross_id_end.isNotEmpty() && oldValue.cross_id_end != newValue.cross_id_end)){ + if ((newValue!!.cross_id_end.isNotEmpty() && oldValue.cross_id_end != newValue.cross_id_end)) { //路口发生变化 i("$M_MAP$TAG", "路段发生变化 上个:${oldValue.cross_id_end} , 下个:${newValue.cross_id_end}") invokeRoadChange(2, newValue) @@ -554,9 +556,25 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle } } + private var reChangeIconCount = AtomicInteger(0) + override fun changeCurrentIcon(iconId: Int) { if (checkAMapView()) { - mMapView.getMapAutoViewHelper()!!.getMyLocationStyle()!!.myLocationIcon(iconId, true) + val changeResult = mMapView.getMapAutoViewHelper()!!.getMyLocationStyle()!! + .myLocationIcon(iconId, true) + if (!changeResult) { + val count = reChangeIconCount.incrementAndGet() + MapTraceUtil.log( + "", ChainConstant.CHAIN_CODE_HD_MAP_ICON_SET, TAG, + mapOf("changeCurrentIcon-count" to "$count") + ) + if (count >= 3) { + return + } + UiThreadHandler.postDelayed({ changeCurrentIcon(iconId) }, 3000L, + UiThreadHandler.MODE.QUEUE) + reChangeIconCount.set(0) + } } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/MapTraceUtil.kt b/libraries/mogo-map/src/main/java/com/mogo/map/utils/MapTraceUtil.kt new file mode 100644 index 0000000000..3ccb1769cc --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/MapTraceUtil.kt @@ -0,0 +1,56 @@ +package com.mogo.map.utils + +import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.deva.chain.ChainConstant +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.zhjt.service.chain.ChainLog +import com.zhjt.service.chain.ChildNodeAlias +import com.zhjt.service.chain.ParentNodeAlias + +class MapTraceUtil { + + companion object { + + fun log(pN: String, cN: String, data: Any, data1: Any, end: Boolean = true) { + if (end) { + logEnd(pN, cN, data, data1) + } else { + realLog(pN, cN, data, data1) + } + } + + @ChainLog( + linkChainLog = ChainConstant.CHAIN_TYPE_HD_MAP, + linkCode = ChainConstant.CHAIN_SOURCE_MAP, + paramIndexes = [2, 3], + endPoint = false + ) + private fun realLog( + @ParentNodeAlias pN: String, + @ChildNodeAlias cN: String, + data: Any, + data1: Any + ) { + if (DebugConfig.isDebug()) { + CallerLogger.d("${SceneConstant.M_MAP}$data", data1) + } + } + + @ChainLog( + linkChainLog = ChainConstant.CHAIN_TYPE_HD_MAP, + linkCode = ChainConstant.CHAIN_SOURCE_MAP, + paramIndexes = [2, 3] + ) + private fun logEnd( + @ParentNodeAlias pN: String, + @ChildNodeAlias cN: String, + data: Any, + data1: Any + ) { + if (DebugConfig.isDebug()) { + CallerLogger.d("${SceneConstant.M_MAP}$data", data1) + } + } + } +} \ No newline at end of file