diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index d009a992fa..e84d8a4d64 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -195,7 +195,7 @@ aiMakers.remove(id) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt index 2e046f3b22..51496058de 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt @@ -52,9 +52,25 @@ class V2XAiRoadEventMarker { builder.setMaxIndex(800000f) builder.setVisible(true) val line = CallerMapUIServiceManager.getOverlayManager()?.showOrUpdateLine(builder.build()) + + +// val colors2 = ArrayList() +// colors2.add(Color.argb(204, 237, 172, 21)) +// colors2.add(Color.argb(0, 255, 255, 255)) +// builder2.colors(colors2) +// builder2.points(points) +// builder2.setIsGradient(true) +// builder2.isFilledIn(true) +// builder2.useFacade(false) +// builder2.setUseGps(true) +// builder2.setWidth(10f) +//// builder2.setMaxIndex(800000f) +// builder2.setVisible(true) +// val line2 = CallerMapUIServiceManager.getOverlayManager()?.showOrUpdateLine(builder2.build()) line?.let { current.set(Pair(line, wrapper.markers)) wrapper.addLine(line) +// wrapper.addLine(line2!!) } } } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java index 3b91f91e88..0c306bafca 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java @@ -1,8 +1,5 @@ package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road; -import android.telecom.Call; - -import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.enums.CommunicationType; import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; @@ -171,7 +168,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp if (isNeedChangeAngle()) { MarkerLocation location = content.getLocation(); if (location != null) { - CallerVisualAngleManager.INSTANCE.changeAngle(new RoadEvent(2, TimeUnit.SECONDS)); + CallerVisualAngleManager.INSTANCE.changeScene(new RoadEvent(2, TimeUnit.SECONDS)); } } if (entity.isNeedAddLine() && !EventTypeEnumNew.TYPE_SOCKET_ROAD_CONGESTION.getPoiType().equals(content.getPoiType())) { @@ -202,7 +199,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp } catch (Throwable ignore) {} } } - CallerVisualAngleManager.INSTANCE.changeAngle(new Default(3, TimeUnit.SECONDS)); + CallerVisualAngleManager.INSTANCE.changeScene(new Default(3, TimeUnit.SECONDS)); } release(); } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index d0df8332fe..37b63b34be 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -417,12 +417,12 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener showWarning(v2xType, alertContent, ttsContent, direction, object : IMoGoWarningStatusListener { override fun onShow() { - CallerVisualAngleManager.changeAngle(CrossRoad(2)) + CallerVisualAngleManager.changeScene(CrossRoad(2)) } override fun onDismiss() { super.onDismiss() - CallerVisualAngleManager.changeAngle(Default()) + CallerVisualAngleManager.changeScene(Default()) } }) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index c0c6211fd7..e98ed806c1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -9,7 +9,6 @@ import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.function.angle.scenes.CrossRoad import com.mogo.eagle.core.function.angle.scenes.Default import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener -import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager @@ -968,14 +967,14 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener { override fun onShow() { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { //盲区预警,展示近视角 - CallerVisualAngleManager.changeAngle(CrossRoad(2)) + CallerVisualAngleManager.changeScene(CrossRoad(2)) } } override fun onDismiss() { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { //盲区预警,取消近视角 - CallerVisualAngleManager.changeAngle(Default()) + CallerVisualAngleManager.changeScene(Default()) } } }, diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ItinerarySummaryDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ItinerarySummaryDialog.kt index 5f48ada220..58c69affd5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ItinerarySummaryDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ItinerarySummaryDialog.kt @@ -2,34 +2,54 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.app.Dialog import android.content.Context -import android.view.LayoutInflater -import androidx.lifecycle.LifecycleObserver +import android.os.Bundle +import android.widget.ImageView import com.mogo.eagle.core.function.hmi.R -import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog +import me.jessyan.autosize.utils.AutoSizeUtils /** * 行程总结View * 鹰眼6.5.0需求 */ -class ItinerarySummaryDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver { +class ItinerarySummaryDialog(context: Context, isDriver: Boolean, theme: Int) : + Dialog(context, theme) { - companion object { - private const val TAG = "ItinerarySummaryView" + private val mContext: Context + private val isDriver: Boolean - - - } + private var ivSummaryClose: ImageView ?= null init { - setContentView(R.layout.dialog_itinerary_summary) + this.mContext = context + this.isDriver = isDriver } - override fun onAttachedToWindow() { - super.onAttachedToWindow() + override fun onCreate(savedInstanceState: Bundle?){ + super.onCreate(savedInstanceState) + val params = window!!.attributes + if(isDriver){ + setContentView(R.layout.dialog_itinerary_summary) + params.height = AutoSizeUtils.dp2px(context,840f) + params.width = AutoSizeUtils.dp2px(context,1600f) + }else{ + setContentView(R.layout.dialog_itinerary_summary_p) + params.height = AutoSizeUtils.dp2px(context,1170f) + params.width = AutoSizeUtils.dp2px(context,2158f) + } + window!!.attributes = params //向WindowManager设置属性 + setCanceledOnTouchOutside(false) + initEvent() } - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() + private fun initEvent(){ + //关闭Dialog按钮 + ivSummaryClose = findViewById(R.id.ivSummaryClose) + ivSummaryClose?.setOnClickListener { + dismiss() + } + + + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_itinerary_summary.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_itinerary_summary_p.png similarity index 100% rename from core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_itinerary_summary.png rename to core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_itinerary_summary_p.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close.png index 7acdca2329..2fbe977936 100644 Binary files a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close.png and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close_p.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close_p.png new file mode 100644 index 0000000000..7acdca2329 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_summary_close_p.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_itinerary_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_itinerary_summary.xml new file mode 100644 index 0000000000..1db4cf4783 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_itinerary_summary.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement.xml new file mode 100644 index 0000000000..80b6c5bb1c --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement_p.xml new file mode 100644 index 0000000000..4b879961f7 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_achievement_p.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service.xml new file mode 100644 index 0000000000..45c09c6ed6 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service.xml @@ -0,0 +1,11 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service_p.xml new file mode 100644 index 0000000000..7963e81783 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_summary_service_p.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary.xml index 889d4a727f..df23d3d702 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary.xml @@ -1,53 +1,56 @@ @@ -147,9 +152,10 @@ app:layout_constraintLeft_toLeftOf="@id/tvLightServices" app:layout_constraintBottom_toTopOf="@id/tvLightServices" app:layout_constraintRight_toLeftOf="@id/tvLightServicesUnit" - android:textSize="@dimen/sp_94" + android:textSize="@dimen/sp_72" android:textColor="@color/summary_service_num" app:layout_constraintHorizontal_chainStyle="packed" + android:text="4" /> @@ -172,9 +179,10 @@ app:layout_constraintLeft_toLeftOf="@id/tvInfoTip" app:layout_constraintBottom_toTopOf="@id/tvInfoTip" app:layout_constraintRight_toLeftOf="@id/tvInfoTipUnit" - android:textSize="@dimen/sp_94" + android:textSize="@dimen/sp_72" android:textColor="@color/summary_service_num" app:layout_constraintHorizontal_chainStyle="packed" + android:text="3" /> @@ -197,9 +206,10 @@ app:layout_constraintBottom_toTopOf="@id/tvVehicleTip" app:layout_constraintLeft_toLeftOf="@id/tvVehicleTip" app:layout_constraintRight_toLeftOf="@id/tvVehicleTipUnit" - android:textSize="@dimen/sp_94" + android:textSize="@dimen/sp_72" android:textColor="@color/summary_service_num" app:layout_constraintHorizontal_chainStyle="packed" + android:text="2" /> @@ -222,9 +233,11 @@ app:layout_constraintLeft_toLeftOf="@id/tvVulnerableTip" app:layout_constraintBottom_toTopOf="@id/tvVulnerableTip" app:layout_constraintRight_toLeftOf="@id/tvVulnerableTipUnit" - android:textSize="@dimen/sp_94" + android:textSize="@dimen/sp_72" android:textColor="@color/summary_service_num" app:layout_constraintHorizontal_chainStyle="packed" + android:text="5" + /> @@ -244,11 +258,12 @@ @@ -338,8 +362,10 @@ app:layout_constraintTop_toBottomOf="@id/viewDangerLayout" app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout" android:text="@string/summary_danger_tip" - android:textSize="@dimen/sp_24" + android:textSize="@dimen/sp_16" android:textColor="@color/summary_tip" + android:layout_marginTop="@dimen/dp_15" + android:layout_marginStart="@dimen/dp_m_10" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml new file mode 100644 index 0000000000..e56ca2fdf1 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_itinerary_summary_p.xml @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml index 33e28a5719..391a77d460 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration.xml @@ -3,7 +3,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_margin="@dimen/dp_10" + android:layout_marginTop="@dimen/dp_10" + android:layout_marginBottom="@dimen/dp_10" > \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml index 561bb04419..1220778189 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_auto_exploration_p.xml @@ -3,7 +3,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_margin="@dimen/dp_10"> + android:layout_marginTop="@dimen/dp_10" + android:layout_marginBottom="@dimen/dp_10"> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml index 4627a06d4b..0cccd76263 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration.xml @@ -7,8 +7,8 @@ \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml index 23e371e96d..8ea703c520 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_automatic_exploration_p.xml @@ -47,7 +47,6 @@ app:layout_constraintRight_toRightOf="parent" android:src="@drawable/icon_exploration_close" android:contentDescription="@string/exploration_close" - android:padding="@dimen/dp_20" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml index 820a98b51d..af6f482247 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml @@ -86,11 +86,15 @@ #FF1E32D9 #243959 - #49546A - #464646 + #7C93C2 + #49546A + #FFFFFF + #464646 #24313E - #106FF0 - #42464F + #2DF0FE + #106FF0 + #6A758D + #42464F #131415 #FF3B2D diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/styles.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/styles.xml index 99c0c612b0..7bd309ce51 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/styles.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/styles.xml @@ -88,4 +88,20 @@ @dimen/dp_10 + + + + diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index 402840435a..279bb7b85a 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -71,7 +71,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { } } if (triggerClose) { - changeAngle(Default()) + changeScene(Default()) } } @@ -83,7 +83,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { triggerRoadId.set(this.roadId.get()) distanceOfCarToStopLine.set(info.distance) triggerLocation.set(CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()) - changeAngle(CrossRoad(2)) + changeScene(CrossRoad(2)) } } } @@ -130,7 +130,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { mLevel = level } - override fun changeAngle(scene: Scene) { + override fun changeScene(scene: Scene) { if(mLevel){ return } @@ -140,13 +140,21 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { if (delay > 0) { delay(delay) } - + val lastPriority = prevScene.get()?.priority ?: Int.MIN_VALUE + val currentPriority = scene.priority + if (lastPriority > currentPriority) { + return@launch + } doChangeAngle(scene) }.also { prevJob = it } } + override fun getCurrentScene(): Scene { + return prevScene.get() ?: Default() + } + private fun doChangeAngle(target: Scene) { val angle = target.angle CallerMapUIServiceManager.getMapUIController()?.also { @@ -159,6 +167,12 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { notifyChanged(target) } prevScene.set(target) + if (target.displayThreshold > 0) { + scope.launch { + delay(target.displayThreshold) + doChangeAngle(Default(0)) + } + } } } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt index 88d0d002f4..a50848f4c4 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt @@ -11,7 +11,7 @@ class CrossRoad(private val delayTime: Long): Scene { override val angle: VisualAngleMode get() = MAP_STYLE_VR_ANGLE_CROSS - override val priority: Int = 4 + override val priority: Int = 0 override val displayThreshold: Long get() = -1 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt index 233246fcd6..37c2667b48 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt @@ -16,7 +16,7 @@ class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): S override val angle: VisualAngleMode get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - override val priority: Int = 1 + override val priority: Int = 0 override val displayThreshold: Long get() = 0 diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt index 55cba3b488..1a4429092b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/LongSight.kt @@ -12,7 +12,7 @@ class LongSight(private val delayTime: Long, private val unit: TimeUnit = TimeUn override val priority: Int get() = 0 override val displayThreshold: Long - get() = 0 + get() = -1 override val delay: Long get() = unit.toMillis(delayTime) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt index 7647705482..23ec37979b 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt @@ -13,10 +13,10 @@ class RoadEvent(private val delayTime: Long, private val unit: TimeUnit): Scene override val angle: VisualAngleMode = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT - override val priority: Int = 5 + override val priority: Int = 0 override val displayThreshold: Long - get() = TimeUnit.SECONDS.toMillis(8) + get() = -1 override val delay: Long get() = unit.toMillis(delayTime) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index 2785c8369c..9918680cdb 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -9,10 +9,8 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig.accThreshold import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener -import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager -import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP import com.mogo.map.MogoMap @@ -26,7 +24,6 @@ import kotlin.properties.Delegates class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), - IMoGoSkinModeChangeListener, IMoGoChassisLocationWGS84Listener, IMoGoChassisLamplightListener, LifecycleObserver { companion object { @@ -37,8 +34,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, super.onCreate(bundle) map?.uiController?.showMyLocation(true) initMapView() - CallerSkinModeListenerManager.addListener(TAG, this) - CallerChassisLocationWGS84ListenerManager.addListener(TAG, 20,this) + CallerChassisLocationWGS84ListenerManager.addListener(TAG, 20, this) CallerChassisLamplightListenerManager.addListener(TAG, this) } @@ -68,15 +64,15 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, return MogoMap.DEFAULT } - fun getUI(): IMogoMapUIController? { + fun getUI(): IMogoMapUIController? { return map?.uiController } - fun addLine(options:Polyline.Options): IMapPolylineOverlay? { + fun addLine(options: Polyline.Options): IMapPolylineOverlay? { return map?.addLine(options) } - fun addPoint(options: Point.Options): IMapPointOverlay?{ + fun addPoint(options: Point.Options): IMapPointOverlay? { return map?.addPoint(options) } @@ -92,22 +88,14 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, super.onPause() } - override fun onSkinModeChange(skinMode: Int) { - if (skinMode == 0) { - getUI()?.stepInDayMode(false) - } else if (skinMode == 1) { - getUI()?.stepInDayMode(true) - } - } - /** * 设置车辆灯光状态 true 刹车, false 正常 */ - private var accLimit : Boolean by Delegates.observable(false){ _, oldV, newV -> - if(oldV != newV){ - if(newV){ + private var accLimit: Boolean by Delegates.observable(false) { _, oldV, newV -> + if (oldV != newV) { + if (newV) { turn(4) - }else{ + } else { turn(0) } } @@ -119,7 +107,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, accLimit = gnssInfo.acceleration < accThreshold } - private var currentLevel:Int = 0 + private var currentLevel: Int = 0 override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) { super.onAutopilotLightSwitchData(lightSwitch) @@ -128,9 +116,11 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, Chassis.LightSwitch.LIGHT_LEFT_VALUE -> { //左转灯 turn(1) } + Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转灯 turn(2) } + Chassis.LightSwitch.LIGHT_NONE_VALUE -> { turn(0) } @@ -147,7 +137,6 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, override fun onDestroy() { // 先取消注册数据,再onDestroy - CallerSkinModeListenerManager.removeListener(TAG) CallerChassisLocationWGS84ListenerManager.removeListener(TAG) CallerChassisLamplightListenerManager.removeListener(TAG) super.onDestroy() diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapRoamView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapRoamView.kt index 6928c87050..a5aac288fa 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapRoamView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapRoamView.kt @@ -7,10 +7,8 @@ import android.util.AttributeSet import android.util.Log import androidx.lifecycle.LifecycleObserver import com.mogo.eagle.core.function.api.map.road.IMoGoMapRoadListener -import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager -import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.map.MogoMap.Companion.MAP_ROAM import com.mogo.map.MogoMapView @@ -19,7 +17,6 @@ import com.mogo.map.uicontroller.VisualAngleMode class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), - IMoGoSkinModeChangeListener, LifecycleObserver, IMoGoMapRoadListener { companion object { @@ -33,7 +30,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context override fun onAttachedToWindow() { super.onAttachedToWindow() initMapView() - CallerSkinModeListenerManager.addListener(TAG, this) CallerMapRoadListenerManager.addListener(TAG, this) } @@ -72,14 +68,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context return map?.uiController } - override fun onSkinModeChange(skinMode: Int) { - if (skinMode == 0) { - getUI()?.stepInDayMode(false) - } else if (skinMode == 1) { - getUI()?.stepInDayMode(true) - } - } - @SuppressLint("ObsoleteSdkInt") override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { super.onSizeChanged(w, h, oldw, oldh) @@ -111,7 +99,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context override fun onDestroy() { // 先取消注册数据,再onDestroy - CallerSkinModeListenerManager.removeListener(TAG) CallerMapRoadListenerManager.removeListener(TAG) super.onDestroy() } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamListAdapter.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamListAdapter.kt index 370d8f7ab0..97923c4251 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamListAdapter.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamListAdapter.kt @@ -13,7 +13,7 @@ import com.mogo.eagle.core.function.map.R import kotlin.random.Random -class RoadCrossRoamListAdapter(private val mContext: Context) : RecyclerView.Adapter() { +class RoadCrossRoamListAdapter(private val mContext: Context, private val lightMode: Boolean) : RecyclerView.Adapter() { private val items: MutableList = mutableListOf() @@ -35,6 +35,11 @@ class RoadCrossRoamListAdapter(private val mContext: Context) : RecyclerView.Ad override fun onBindViewHolder(holder: ViewHolder, position: Int) { val item = items[position] + if(lightMode){ + holder.textView.setTextColor(mContext.getColor(R.color.color_191A1C)) + }else{ + holder.textView.setTextColor(mContext.getColor(R.color.white)) + } holder.textView.text = item // 随机决定是否显示ProgressBar // if (Random.nextBoolean()) { // 50%的几率显示ProgressBar diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamView.kt index 80d44345e4..e5e523c4f6 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/RoadCrossRoamView.kt @@ -8,6 +8,9 @@ import android.util.AttributeSet import android.util.Log import android.view.LayoutInflater import android.view.View +import android.view.animation.Animation +import android.view.animation.AnimationUtils +import android.view.animation.LinearInterpolator import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -21,8 +24,11 @@ import kotlinx.android.synthetic.main.view_road_cross_roam.view.ivCoverRoam import kotlinx.android.synthetic.main.view_road_cross_roam.view.ivRoadRoamClose import kotlinx.android.synthetic.main.view_road_cross_roam.view.lvRoadCrossRoamTip import kotlinx.android.synthetic.main.view_road_cross_roam.view.mapRoamView +import kotlinx.android.synthetic.main.view_road_cross_roam_light.view.ivZhiRoadRoamView +import kotlinx.android.synthetic.main.view_road_cross_roam_light.view.tvRoadRoamTitle import kotlin.properties.Delegates + class RoadCrossRoamView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -40,12 +46,13 @@ class RoadCrossRoamView @JvmOverloads constructor( } private var animator: ObjectAnimator? = null + private var lightMode = CallerSkinModeListenerManager.getMode() == 1 init { - val res = when (CallerSkinModeListenerManager.getMode()) { - 0 -> R.layout.view_road_cross_roam - 1 -> R.layout.view_road_cross_roam_light - else -> R.layout.view_road_cross_roam + val res = if (lightMode) { + R.layout.view_road_cross_roam_light + } else { + R.layout.view_road_cross_roam } LayoutInflater.from(context).inflate(res, this, true) lvRoadCrossRoamTip.layoutManager = LinearLayoutManager(context) @@ -84,14 +91,15 @@ class RoadCrossRoamView @JvmOverloads constructor( override fun onStopLineInfo(info: StopLine) { super.onStopLineInfo(info) showState = info.distance < 200 && info.distance > 100 - Log.i("emArrow","showState $showState , distance:${info.distance}") + Log.i("emArrow", "showState $showState , distance:${info.distance}") } private fun attachView() { this.visibility = View.VISIBLE + ivZhiRoadRoamView.visibility = View.VISIBLE mapRoamView.visibility = View.VISIBLE mapRoamView.openRoam() - lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context) + lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context, lightMode) // 创建横向移动的动画 if (animator == null) { animator = @@ -106,6 +114,22 @@ class RoadCrossRoamView @JvmOverloads constructor( animator?.repeatCount = ValueAnimator.INFINITE // 设置动画无限重复 animator?.repeatMode = ValueAnimator.RESTART // 设置动画来回移动 animator?.start() + + if (lightMode) { +// val rotateAnimation: Animation = AnimationUtils.loadAnimation( +// context, R.anim.anim_road_cross_roam +// ) +// ivZhiRoadRoamView.startAnimation(rotateAnimation) + val rotationAnim = ObjectAnimator.ofFloat(ivZhiRoadRoamView, "rotation", 0f, 360f) + rotationAnim.repeatCount = ValueAnimator.INFINITE + rotationAnim.repeatMode = ValueAnimator.RESTART + rotationAnim.duration = 1000 + rotationAnim.interpolator = LinearInterpolator() + rotationAnim.start() + tvRoadRoamTitle.setTextColor(context.getColor(R.color.color_131415)) + } else { + tvRoadRoamTitle.setTextColor(context.getColor(R.color.white)) + } } private fun detachView() { @@ -113,12 +137,18 @@ class RoadCrossRoamView @JvmOverloads constructor( mapRoamView.visibility = View.GONE lvRoadCrossRoamTip.adapter = null animator?.cancel() + if(lightMode){ + ivZhiRoadRoamView.clearAnimation() + } this.visibility = View.GONE } override fun onDetachedFromWindow() { super.onDetachedFromWindow() animator?.cancel() + if(lightMode){ + ivZhiRoadRoamView.clearAnimation() + } CallerMapRoadListenerManager.removeListener(TAG) } diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/anim_road_cross_roam.xml b/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/anim_road_cross_roam.xml deleted file mode 100644 index 1c8a56caa0..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/drawable-nodpi/anim_road_cross_roam.xml +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/view_road_cross_roam_light.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/view_road_cross_roam_light.xml index 4c195a66bb..f8528192bc 100644 --- a/core/function-impl/mogo-core-function-map/src/main/res/layout/view_road_cross_roam_light.xml +++ b/core/function-impl/mogo-core-function-map/src/main/res/layout/view_road_cross_roam_light.xml @@ -8,15 +8,14 @@ + app:layout_constraintTop_toTopOf="parent" + app:styleMode="MAP_STYLE_DAY_VR_TAXI" /> @@ -73,9 +75,9 @@ android:id="@+id/ivCoverRoam" android:layout_width="@dimen/dp_120" android:layout_height="@dimen/dp_300" + android:src="@drawable/icon_cover_road_roam" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" - android:src="@drawable/icon_cover_road_roam" tools:ignore="ContentDescription" /> @@ -83,8 +85,8 @@ android:id="@+id/lvRoadCrossRoamTip" android:layout_width="match_parent" android:layout_height="@dimen/dp_200" - android:layout_marginTop="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30" + android:layout_marginTop="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt index dd71253bfd..eaf2e36e35 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt @@ -6,7 +6,9 @@ interface IMoGoVisualAngleChangeProvider: IProvider { fun updateLongSightLevel(level: Boolean) - fun changeAngle(scene: Scene) + fun changeScene(scene: Scene) + + fun getCurrentScene(): Scene fun addListener(tag: String, listener: OnMoGoVisualAngleSceneChangeListener) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt index d8a7e0031d..6d261c9689 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerVisualAngleManager.kt @@ -22,8 +22,12 @@ object CallerVisualAngleManager { } } - fun changeAngle(scene: Scene) { - provider?.changeAngle(scene) + fun changeScene(scene: Scene) { + provider?.changeScene(scene) + } + + fun getCurrentScene(): Scene { + return provider?.getCurrentScene() ?: throw AssertionError() } fun updateLongSightLevel(level: Boolean) { diff --git a/core/mogo-core-res/src/main/res/values/color.xml b/core/mogo-core-res/src/main/res/values/color.xml index 510fbcda51..b64cb72842 100644 --- a/core/mogo-core-res/src/main/res/values/color.xml +++ b/core/mogo-core-res/src/main/res/values/color.xml @@ -17,6 +17,8 @@ #1A000000 #FF2966EC #1F9BFE + #191A1C + #131415 #256BFF #3E7BFE #323C6F diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml index 0458ee6ea7..273a1d3513 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -1079,9 +1079,11 @@ 48dp 52dp 55dp + 72dp 76dp 94dp 120dp + 150dp 195dp diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/core/Level.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/core/Level.kt index 620cd25678..be57ac4b27 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/core/Level.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/core/Level.kt @@ -21,7 +21,12 @@ enum class Level(val zIndex: Int) { GUIDE_ROUTE_LINE(75000), /** - * 道路围栏区域绘制 + * 围栏区域绘制 */ - MAP_POLYGON(76000) + MAP_POLYGON(76000), + + /** + * 围栏区域底色 + */ + MAP_POLYGON_SOLID(75500) } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/line/Polyline.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/line/Polyline.kt index dbd3e6e6fc..b64427be77 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/line/Polyline.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/overlay/line/Polyline.kt @@ -56,6 +56,8 @@ data class Polyline(val id: String, val owner: String, val level: Level, val opt val isShowArrow: Boolean = builder.isShowArrow + val isFilledIn: Boolean = builder.isFilledIn + fun builder(): Builder { return builder } @@ -100,6 +102,8 @@ data class Polyline(val id: String, val owner: String, val level: Level, val opt internal var isShowArrow: Boolean = false + internal var isFilledIn: Boolean = false + fun setId(id: String) = apply { this.id = id } @@ -176,6 +180,10 @@ data class Polyline(val id: String, val owner: String, val level: Level, val opt this.isShowArrow = show } + fun isFilledIn(filled: Boolean) = apply { + this.isFilledIn = filled + } + fun build(): Options { if (TextUtils.isEmpty(id)) { id = UUID.randomUUID().toString() diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.kt index bebd043d44..5e676954e6 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.kt @@ -75,12 +75,17 @@ class AMapWrapper(map: MapAutoViewHelper?, mapView: MapAutoView, controller: IMo e(TAG, "polyline参数为空") return null } - val delegate = - (if (polylineOptions.lineWidth > 0) mAMap!!.drawThickLine(polylineOptions) else mAMap!!.drawLine( - polylineOptions - )) - ?: return null - return AMapPolylineWrapper(options.id, delegate, mMapView) + if (options.isFilledIn) { + val delegate = mAMap?.drawPolygon(polylineOptions) + return AMapPolylineWrapper(options.id, delegate, mMapView) + } else { + val delegate = + (if (polylineOptions.lineWidth > 0) mAMap?.drawThickLine(polylineOptions) else mAMap?.drawLine( + polylineOptions + )) + ?: return null + return AMapPolylineWrapper(options.id, delegate, mMapView) + } } private val batchMarkerOptions = BatchMarkerOptions() diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/line/AMapPolylineWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/line/AMapPolylineWrapper.kt index 4c19310216..f600c43367 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/line/AMapPolylineWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/wrapper/line/AMapPolylineWrapper.kt @@ -7,7 +7,7 @@ import com.zhidaoauto.map.sdk.open.view.MapAutoView import java.util.concurrent.atomic.* import com.zhidaoauto.map.sdk.open.renders.poyline.Polyline -class AMapPolylineWrapper(private val id: String, private val delegate: Polyline, private val mMapAutoView: MapAutoView): IMapPolylineOverlay { +class AMapPolylineWrapper(private val id: String, private val delegate: Polyline?, private val mMapAutoView: MapAutoView): IMapPolylineOverlay { private val isDestroyed by lazy { AtomicBoolean(false) } @@ -19,7 +19,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline override fun destroy() { if (isDestroyed.compareAndSet(false, true)) { try { - delegate.destroy() + delegate?.destroy() } finally { onRemoveAction?.invoke(id) } @@ -29,7 +29,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline override fun remove() { if (isRemoved.compareAndSet(false, true)) { try { - delegate.remove() + delegate?.remove() } finally { onRemoveAction?.invoke(id) } @@ -40,7 +40,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline if (isDestroyed.get() || isRemoved.get()) { return } - delegate.setVisible(visible) + delegate?.setVisible(visible) } override fun isDestroyed(): Boolean { @@ -48,7 +48,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline } override fun isVisible(): Boolean { - return delegate.isVisible() + return delegate?.isVisible() ?: false } override fun setToTop() { @@ -66,7 +66,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline delegate.also { val option = ObjectUtils.fromMogo(options,mMapAutoView) if (option != null) { - it.setOption(option) + it?.setOption(option) } } }