diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt index 09a57f03ac..95330857d3 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt @@ -79,8 +79,11 @@ object LineManager : CallerBase() { private var autopilotId: String by Delegates.observable("") { _, oldValue, newValue -> if (oldValue != newValue) { CallerEagleBaseFunctionCall4OchManager.setOchAutopilotOrderId(newValue) - getStations { start, end -> + val (start, end) = getStations() + if(start!=null&&end!=null){ CallerDataCenterBizListener.invokeOchInfo(OchInfo(0, mutableListOf(start.toMogoLocation(),end.toMogoLocation()))) + }else{ + CallerDataCenterBizListener.invokeOchInfo(OchInfo(0, mutableListOf())) } } diff --git a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt index 2d8d811713..32f1ad3a4a 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/V2NTest.kt @@ -58,7 +58,6 @@ class V2NTest { if (millis > 0) { delay(millis) } -// FunctionBuildConfig.v2nNewLinked = true FunctionBuildConfig.v2nTotalSwitch = true runCatching { val map = HashMap().also { diff --git a/build.gradle b/build.gradle index 4b5751b6ab..4f65df0298 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,6 @@ buildscript { apply from: rootProject.file('gradle/ext.gradle') repositories { mavenLocal() - maven { url 'https://nexus.zhidaoauto.com/repository/maven-snapshot/' } maven { url 'https://nexus.zhidaoauto.com/repository/maven-releases/' } maven { url 'https://nexus.zhidaoauto.com/repository/maven-public/' } maven { url 'https://storage.zego.im/maven' } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index dccaa74662..884ca3cce3 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -114,7 +114,7 @@ class AiRoadMarker { .longitude(marker.poi_lon) .latitude(marker.poi_lat) if (marker.poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType) { - builder.anchorColor("#FFBF10") + builder.anchorColor("#FFBF10CC") } CallerMapUIServiceManager.getOverlayManager()?.showOrUpdatePoint(builder.build())?.let { p -> if (!markerIds.contains(markerId)) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt index 48e9dd35d8..8bc10393e2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt @@ -7,6 +7,7 @@ import android.animation.ValueAnimator import android.content.Context import android.os.Bundle import android.util.AttributeSet +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.animation.AccelerateDecelerateInterpolator @@ -42,7 +43,9 @@ class MapContainerLayout @JvmOverloads constructor( private var maxMarginStart = 0 private var maxMarginTop = 0 - private var valueAnimator: ValueAnimator? = null + private var zoomInAnimator: ValueAnimator? = null + private var zoomOutAnimator: ValueAnimator? = null + private val evaluator = IntEvaluator() init { LayoutInflater.from(context).inflate(R.layout.view_map_container, this, true) @@ -111,12 +114,17 @@ class MapContainerLayout @JvmOverloads constructor( override fun onDetachedFromWindow() { super.onDetachedFromWindow() MogoMapListenerHandler.mogoMapListenerHandler.unregisterHostMapListener("${TAG}${this.hashCode()}") - valueAnimator?.removeAllListeners() + CallerDataCenterBizListener.removeListener("${TAG}${this.hashCode()}") + zoomInAnimator?.removeListener(listenerAdapter) + zoomOutAnimator?.removeListener(listenerAdapter) + zoomInAnimator = null + zoomOutAnimator = null } private fun initView() { shadowView.setOnClickListener(object : OnPreventFastClickListener() { override fun onClickImpl(v: View?) { + Log.d(TAG, "点击了shadowView按钮!") scaleMapWithAnim() } }) @@ -136,48 +144,55 @@ class MapContainerLayout @JvmOverloads constructor( } private fun scaleMapWithAnim() { - if (isPlayingAnim) return + if (isPlayingAnim) { + Log.d(TAG, "动画执行中,直接return") + return + } + Log.d(TAG, "scaleMapWithAnim") if (mapMaxWidth == 0 && maxMarginStart == 0 && !isScaled) { calculate() } if (!isScaled) { - valueAnimator = ValueAnimator.ofInt(mapMinWidth, mapMaxWidth) - val evaluator = IntEvaluator() - valueAnimator?.addUpdateListener { - overMapView.layoutParams = - (overMapView.layoutParams as LayoutParams).also { layoutParams -> - layoutParams.width = it.animatedValue as Int - layoutParams.height = evaluator.evaluate(it.animatedFraction, mapMinHeight, mapMaxHeight) - layoutParams.leftMargin = evaluator.evaluate(it.animatedFraction, maxMarginStart, 0) - layoutParams.topMargin = evaluator.evaluate(it.animatedFraction, maxMarginTop, 0) - } + if (zoomInAnimator == null) { + zoomInAnimator = ValueAnimator.ofInt(mapMinWidth, mapMaxWidth) + zoomInAnimator?.addUpdateListener { + overMapView.layoutParams = + (overMapView.layoutParams as LayoutParams).also { layoutParams -> + layoutParams.width = it.animatedValue as Int + layoutParams.height = evaluator.evaluate(it.animatedFraction, mapMinHeight, mapMaxHeight) + layoutParams.leftMargin = evaluator.evaluate(it.animatedFraction, maxMarginStart, 0) + layoutParams.topMargin = evaluator.evaluate(it.animatedFraction, maxMarginTop, 0) + } + } + zoomInAnimator?.interpolator = AccelerateDecelerateInterpolator() + zoomInAnimator?.addListener(listenerAdapter) + zoomInAnimator?.duration = 400 } - valueAnimator?.interpolator = AccelerateDecelerateInterpolator() - valueAnimator?.addListener(listenerAdapter) - valueAnimator?.duration = 400 - valueAnimator?.start() + zoomInAnimator?.start() } else { - valueAnimator = ValueAnimator.ofInt(mapMaxWidth, mapMinWidth) - val evaluator = IntEvaluator() - valueAnimator?.addUpdateListener { - overMapView.layoutParams = - (overMapView.layoutParams as LayoutParams).also { layoutParams -> - layoutParams.width = it.animatedValue as Int - layoutParams.height = evaluator.evaluate(it.animatedFraction, mapMaxHeight, mapMinHeight) - layoutParams.leftMargin = evaluator.evaluate(it.animatedFraction, 0, maxMarginStart) - layoutParams.topMargin = evaluator.evaluate(it.animatedFraction, 0, maxMarginTop) - } + if (zoomOutAnimator == null) { + zoomOutAnimator = ValueAnimator.ofInt(mapMaxWidth, mapMinWidth) + zoomOutAnimator?.addUpdateListener { + overMapView.layoutParams = + (overMapView.layoutParams as LayoutParams).also { layoutParams -> + layoutParams.width = it.animatedValue as Int + layoutParams.height = evaluator.evaluate(it.animatedFraction, mapMaxHeight, mapMinHeight) + layoutParams.leftMargin = evaluator.evaluate(it.animatedFraction, 0, maxMarginStart) + layoutParams.topMargin = evaluator.evaluate(it.animatedFraction, 0, maxMarginTop) + } + } + zoomOutAnimator?.interpolator = AccelerateDecelerateInterpolator() + zoomOutAnimator?.addListener(listenerAdapter) + zoomOutAnimator?.duration = 400 } - valueAnimator?.interpolator = AccelerateDecelerateInterpolator() - valueAnimator?.addListener(listenerAdapter) - valueAnimator?.duration = 400 - valueAnimator?.start() + zoomOutAnimator?.start() } } private val listenerAdapter = object : AnimatorListenerAdapter() { override fun onAnimationStart(animation: Animator) { super.onAnimationStart(animation) + Log.d(TAG, "onAnimationStart") isPlayingAnim = true overMapView.setIsPlaying(true) overMapView.setMapFlag(isScaled) @@ -185,6 +200,7 @@ class MapContainerLayout @JvmOverloads constructor( override fun onAnimationCancel(animation: Animator) { super.onAnimationCancel(animation) + Log.d(TAG, "onAnimationCancel") isPlayingAnim = false overMapView.setIsPlaying(false) overMapView.swapSettings() @@ -200,6 +216,7 @@ class MapContainerLayout @JvmOverloads constructor( override fun onAnimationEnd(animation: Animator) { super.onAnimationEnd(animation) + Log.d(TAG, "onAnimationEnd") isPlayingAnim = false overMapView.setIsPlaying(false) overMapView.swapSettings() @@ -215,6 +232,7 @@ class MapContainerLayout @JvmOverloads constructor( } private fun updateShadowBg(isSmallMap: Boolean) { + Log.d(TAG, "updateShadowBg") if (!isSmallMap) { shadowView.setBackgroundResource(R.drawable.gaojing_bg) } else { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt index b18f4b5686..b2b16c999f 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt @@ -335,6 +335,7 @@ class TravelRealityView @JvmOverloads constructor( } fun swapSettings() { + Log.d(TAG, "swapSettings") if (isSmallMap) { Message.obtain().apply { what = CLEAR_ALL_DATA diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt index 1b772b1279..6a5461673c 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HdMapBuildConfig.kt @@ -1,6 +1,8 @@ package com.mogo.eagle.core.data.config import com.mogo.eagle.core.data.R +import com.mogo.eagle.core.data.enums.Carmodel +import kotlin.properties.Delegates /** * @author xiaoyuzhou @@ -12,9 +14,9 @@ object HdMapBuildConfig { * 自车模型(默认是出租车) * 可以指定,R.raw.chuzuche,R.raw.xiaobache,R.raw.hongqi */ - @Volatile - @JvmField - var currentCarVrIconRes = R.raw.hq_h9 + var currentCarVrIconRes by Delegates.observable(R.raw.hq_h9) { _, _, newValue -> + carModel = Carmodel.values().find { it.resId == newValue } + } /** * 地图 DEFAULT 是否加载成功 @@ -24,4 +26,12 @@ object HdMapBuildConfig { @JvmField var isMapLoaded = false + + /** + * 表示当前车机数据实体 + */ + @Volatile + @JvmField + var carModel: Carmodel? = null + } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt index 404155b7fd..95ff2b1b73 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt @@ -831,7 +831,7 @@ enum class EventTypeEnumNew( } } TYPE_SOCKET_ROAD_CONGESTION.poiType -> R.raw.v2x_yongdu - TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType -> if (FunctionBuildConfig.skinMode != 0) TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.traffic3DIconId else TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE.traffic3DNightIconId + TYPE_SOCKET_ROAD_PEOPLE_CROSS.poiType -> if (FunctionBuildConfig.skinMode != 0) TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE_CROSS.traffic3DIconId else TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE_CROSS.traffic3DNightIconId TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType -> if (FunctionBuildConfig.skinMode != 0) TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE_RETROGRADE.traffic3DIconId else TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE_RETROGRADE.traffic3DNightIconId else -> 0 } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt index b3627550e7..5994672fa6 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/TrafficTypeEnum.kt @@ -129,6 +129,14 @@ enum class TrafficTypeEnum( R.raw.traffic_tachexiaoche_retrograde, R.raw.traffic_tachexiaoche_retrograde, R.raw.traffic_tachexiaoche_retrograde + ), + + TYPE_TRAFFIC_ID_PEOPLE_CROSS( + 100064, + "行人横穿", + R.raw.xingren, + R.raw.xingren, + R.raw.xingren ); diff --git a/gradle.properties b/gradle.properties index a6db15110c..ea0396f005 100644 --- a/gradle.properties +++ b/gradle.properties @@ -83,7 +83,7 @@ MOGO_TELEMATIC_VERSION=1.4.7.42 MOGO_SKIN_VERSION=1.4.7.48 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=3.4.1.13_alpha_7 +MAP_SDK_VERSION=3.4.1.13_alpha_8 MAP_SDK_DATA_VERSION=1.0.0.9 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoAutoView.kt b/libraries/mogo-map/src/main/java/com/mogo/map/MogoAutoView.kt new file mode 100644 index 0000000000..56ecb7857c --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoAutoView.kt @@ -0,0 +1,40 @@ +package com.mogo.map + +import android.content.Context +import android.util.AttributeSet +import com.mogo.eagle.core.data.config.HdMapBuildConfig +import com.mogo.eagle.core.data.enums.Carmodel.T2 +import com.mogo.eagle.core.utilcode.mogo.logger.Logger +import com.zhidaoauto.map.sdk.inner.abs.IMapController +import com.zhidaoauto.map.sdk.inner.abs.IMarkerController +import com.zhidaoauto.map.sdk.open.abs.view.IMapStyleParams +import com.zhidaoauto.map.sdk.open.renders.marker.Marker +import com.zhidaoauto.map.sdk.open.renders.marker.MarkerOptions +import com.zhidaoauto.map.sdk.open.view.MapAutoView + +class MoGoAutoView: MapAutoView { + + companion object { + private const val TAG = "MoGoAutoView" + } + + constructor(context: Context) : super(context) + constructor(context: Context, mapStyleParams: IMapStyleParams) : super(context, mapStyleParams) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + + override fun getMarkerController(mapController: IMapController): IMarkerController { + return MarkerControllerWrapper(super.getMarkerController(mapController)) + } + + private class MarkerControllerWrapper(private val controller: IMarkerController): IMarkerController by controller { + + override fun addSelfCar(markerOptions: MarkerOptions): Marker? { + Logger.d(TAG, "addSelfCar-> ${HdMapBuildConfig.carModel}") + if (HdMapBuildConfig.carModel == T2) { + markerOptions.scale = 1.05f + } + return controller.addSelfCar(markerOptions) + } + } +} \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.kt b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.kt index ff227c23ef..6b7794403b 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.kt @@ -31,9 +31,9 @@ open class MogoMapView : MogoBaseMapView, ILifeCycle { override fun addMapView(context: Context, attrs: AttributeSet) { if (mapAutoView == null) { mapAutoView = if (styleParams == null) { - MapAutoView(context, attrs) + MoGoAutoView(context, attrs) } else { - MapAutoView(context, styleParams!!) + MoGoAutoView(context, styleParams!!) } } if (mMapView == null) {