Merge branch 'dev_robo_240612_6.5.0_tmp' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robo_240612_6.5.0_tmp

This commit is contained in:
aibingbing
2024-07-01 19:37:34 +08:00
43 changed files with 743 additions and 193 deletions

View File

@@ -195,7 +195,7 @@
<!-- 前方路况探查 --> <!-- 前方路况探查 -->
<com.mogo.eagle.core.function.view.RoadCrossRoamView <com.mogo.eagle.core.function.view.RoadCrossRoamView
android:layout_width="@dimen/dp_660" android:layout_width="@dimen/dp_670"
android:layout_height="@dimen/dp_790" android:layout_height="@dimen/dp_790"
android:layout_marginTop="@dimen/dp_482" android:layout_marginTop="@dimen/dp_482"
android:visibility="gone" android:visibility="gone"

View File

@@ -44,7 +44,6 @@ import mogo.telematics.pad.MessagePad.TrackedObject
import mogo.v2x.MogoV2X import mogo.v2x.MogoV2X
import mogo.v2x.MogoV2X.RSI_PB import mogo.v2x.MogoV2X.RSI_PB
import mogo.v2x.MogoV2X.RTEData_PB import mogo.v2x.MogoV2X.RTEData_PB
import java.lang.Math.abs
import java.util.concurrent.TimeUnit.SECONDS import java.util.concurrent.TimeUnit.SECONDS
/** /**
@@ -200,7 +199,7 @@ internal object V2NIdentifyDrawer {
} }
} }
val alert = sb.toString() val alert = sb.toString()
CallerRoadV2NEventWindowListenerManager.show("${itx.longitude}-${itx.latitude}", itx.systemTime.toLong(), EventTypeEnumNew.getMarker3DRes(poiType), alert, isDriver, itx.cameraIp, itx.longitude, itx.latitude) CallerRoadV2NEventWindowListenerManager.show("${itx.longitude}-${itx.latitude}", itx.systemTime.toLong(), EventTypeEnumNew.getUpdateIconRes(poiType), alert, isDriver, itx.cameraIp, itx.longitude, itx.latitude)
} }
} }
//消息埋点 //消息埋点
@@ -296,13 +295,13 @@ internal object V2NIdentifyDrawer {
override fun onShow() { override fun onShow() {
super.onShow() super.onShow()
runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.START) } runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.START) }
CallerVisualAngleManager.changeAngle(RoadEvent(2, SECONDS)) CallerVisualAngleManager.changeScene(RoadEvent(2, SECONDS))
} }
override fun onDismiss() { override fun onDismiss() {
super.onDismiss() super.onDismiss()
runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.STOP) } runCatching { CallerHmiManager.notifyXiaoZhiStatusChanged(V2N(EventTypeEnumNew.getEnumType(poiType)), State.STOP) }
CallerVisualAngleManager.changeAngle(Default()) CallerVisualAngleManager.changeScene(Default())
} }
}, },
ALERT_WARNING_TOP, ALERT_WARNING_TOP,

View File

@@ -91,7 +91,7 @@ class AiRoadMarker {
marker.entity?.apply { roadMarker.drawMarkers(this, wrapper) } marker.entity?.apply { roadMarker.drawMarkers(this, wrapper) }
} }
if (drawRoadLine) { if (drawRoadLine) {
//施工中心点前方的自车行驶方向上300米距离 /* //施工中心点前方的自车行驶方向上300米距离
var l1: CenterLine? = null var l1: CenterLine? = null
var l2: CenterLine? = null var l2: CenterLine? = null
mogoMapData.get()?.getCenterLineRangeInfo( mogoMapData.get()?.getCenterLineRangeInfo(
@@ -118,7 +118,7 @@ class AiRoadMarker {
} }
countDown.incrementAndGet() countDown.incrementAndGet()
realMark(marker, wrapper, l1, l2, location.heading) realMark(marker, wrapper, l1, l2, location.heading)
}) })*/
} else { } else {
wrapper.onRemoved = { id -> wrapper.onRemoved = { id ->
aiMakers.remove(id) aiMakers.remove(id)

View File

@@ -52,9 +52,25 @@ class V2XAiRoadEventMarker {
builder.setMaxIndex(800000f) builder.setMaxIndex(800000f)
builder.setVisible(true) builder.setVisible(true)
val line = CallerMapUIServiceManager.getOverlayManager()?.showOrUpdateLine(builder.build()) val line = CallerMapUIServiceManager.getOverlayManager()?.showOrUpdateLine(builder.build())
// val colors2 = ArrayList<Int>()
// 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 { line?.let {
current.set(Pair(line, wrapper.markers)) current.set(Pair(line, wrapper.markers))
wrapper.addLine(line) wrapper.addLine(line)
// wrapper.addLine(line2!!)
} }
} }
} }

View File

@@ -1,8 +1,5 @@
package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road; 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.CommunicationType;
import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.data.enums.DataSourceType;
import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.enums.EventTypeEnumNew;
@@ -171,7 +168,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
if (isNeedChangeAngle()) { if (isNeedChangeAngle()) {
MarkerLocation location = content.getLocation(); MarkerLocation location = content.getLocation();
if (location != null) { 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())) { if (entity.isNeedAddLine() && !EventTypeEnumNew.TYPE_SOCKET_ROAD_CONGESTION.getPoiType().equals(content.getPoiType())) {
@@ -202,7 +199,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
} catch (Throwable ignore) {} } catch (Throwable ignore) {}
} }
} }
CallerVisualAngleManager.INSTANCE.changeAngle(new Default(3, TimeUnit.SECONDS)); CallerVisualAngleManager.INSTANCE.changeScene(new Default(3, TimeUnit.SECONDS));
} }
release(); release();
} }

View File

@@ -417,12 +417,12 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener
showWarning(v2xType, alertContent, ttsContent, direction, object : IMoGoWarningStatusListener { showWarning(v2xType, alertContent, ttsContent, direction, object : IMoGoWarningStatusListener {
override fun onShow() { override fun onShow() {
CallerVisualAngleManager.changeAngle(CrossRoad(2)) CallerVisualAngleManager.changeScene(CrossRoad(2))
} }
override fun onDismiss() { override fun onDismiss() {
super.onDismiss() super.onDismiss()
CallerVisualAngleManager.changeAngle(Default()) CallerVisualAngleManager.changeScene(Default())
} }
}) })
} }

View File

@@ -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.CrossRoad
import com.mogo.eagle.core.function.angle.scenes.Default 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.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.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
@@ -968,14 +967,14 @@ class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
override fun onShow() { override fun onShow() {
if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) {
//盲区预警,展示近视角 //盲区预警,展示近视角
CallerVisualAngleManager.changeAngle(CrossRoad(2)) CallerVisualAngleManager.changeScene(CrossRoad(2))
} }
} }
override fun onDismiss() { override fun onDismiss() {
if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) { if (appId == MogoObuShowConstants.V2X_WARNING_TYPE.BSW.toString()) {
//盲区预警,取消近视角 //盲区预警,取消近视角
CallerVisualAngleManager.changeAngle(Default()) CallerVisualAngleManager.changeScene(Default())
} }
} }
}, },

View File

@@ -2,34 +2,54 @@ package com.mogo.eagle.core.function.hmi.ui.widget
import android.app.Dialog import android.app.Dialog
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.os.Bundle
import androidx.lifecycle.LifecycleObserver import android.widget.ImageView
import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog import me.jessyan.autosize.utils.AutoSizeUtils
/** /**
* 行程总结View * 行程总结View
* 鹰眼6.5.0需求 * 鹰眼6.5.0需求
*/ */
class ItinerarySummaryDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver { class ItinerarySummaryDialog(context: Context, isDriver: Boolean, theme: Int) :
Dialog(context, theme) {
companion object { private val mContext: Context
private const val TAG = "ItinerarySummaryView" private val isDriver: Boolean
private var ivSummaryClose: ImageView ?= null
}
init { init {
setContentView(R.layout.dialog_itinerary_summary) this.mContext = context
this.isDriver = isDriver
} }
override fun onAttachedToWindow() { override fun onCreate(savedInstanceState: Bundle?){
super.onAttachedToWindow() 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() { private fun initEvent(){
super.onDetachedFromWindow() //关闭Dialog按钮
ivSummaryClose = findViewById(R.id.ivSummaryClose)
ivSummaryClose?.setOnClickListener {
dismiss()
}
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_16"/>
<solid android:color="#121826" />
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_20"/>
<solid android:color="#333E52" />
</shape>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient
android:startColor="#2B61A5FF"
android:endColor="#2B6F9EFB"/>
<corners
android:radius="@dimen/dp_25"/>
</shape>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#121826" />
<corners android:radius="@dimen/dp_20"
/>
<stroke
android:width="@dimen/dp_2"
android:color="#34425E" />
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_26"/>
<solid android:color="#73FFFFFF" />
</shape>

View File

@@ -1,53 +1,56 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_2158" android:layout_width="@dimen/dp_1600"
android:layout_height="@dimen/dp_1170" android:layout_height="@dimen/dp_840"
android:background="@drawable/bg_itinerary_summary" android:background="@drawable/bg_itinerary_summary"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView <ImageView
android:id="@+id/ivSummaryClose" android:id="@+id/ivSummaryClose"
android:layout_width="@dimen/dp_86" android:layout_width="@dimen/dp_50"
android:layout_height="@dimen/dp_86" android:layout_height="@dimen/dp_50"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/icon_summary_close" android:src="@drawable/icon_summary_close"
android:contentDescription="@string/summary_close" android:contentDescription="@string/summary_close"
android:layout_marginEnd="@dimen/dp_43" android:layout_marginEnd="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_68" android:layout_marginTop="@dimen/dp_15"
/> />
<ImageView <ImageView
android:id="@+id/ivSummaryZhi" android:id="@+id/ivSummaryZhi"
android:layout_width="@dimen/dp_190" android:layout_width="@dimen/dp_135"
android:layout_height="@dimen/dp_160" android:layout_height="@dimen/dp_114"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:src="@drawable/icon_summary_zhi" android:src="@drawable/icon_summary_zhi"
android:contentDescription="@string/summary_zhi" android:contentDescription="@string/summary_zhi"
android:layout_marginTop="@dimen/dp_120" android:layout_marginTop="@dimen/dp_98"
android:layout_marginStart="@dimen/dp_735" android:layout_marginStart="@dimen/dp_565"
/> />
<TextView <TextView
android:layout_width="@dimen/dp_927" android:layout_width="@dimen/dp_738"
android:layout_height="@dimen/dp_84" android:layout_height="@dimen/dp_60"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="@id/ivSummaryZhi"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toRightOf="@id/ivSummaryZhi"
android:layout_marginTop="@dimen/dp_130" android:layout_marginTop="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_220" android:layout_marginStart="@dimen/dp_20"
android:background="@drawable/bg_summary_zhi_tip" android:background="@drawable/bg_summary_zhi_tip"
android:textColor="@color/white"
android:textSize="@dimen/sp_20"
android:gravity="center"
android:text="全程 5km智慧道路护航 3km全息感知覆盖率 60%,车辆服务"
/> />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clService" android:id="@+id/clService"
android:layout_width="@dimen/dp_1261" android:layout_width="@dimen/dp_970"
android:layout_height="@dimen/dp_260" android:layout_height="@dimen/dp_200"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toBottomOf="@id/ivSummaryZhi"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintLeft_toLeftOf="@id/ivSummaryZhi"
android:layout_marginTop="@dimen/dp_486" android:layout_marginTop="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_83" android:background="@drawable/bg_summary_service"
> >
<TextView <TextView
@@ -56,11 +59,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_20"
android:textColor="@color/summary_service_content" android:textColor="@color/summary_service_content"
android:text="@string/summary_intersection_services" android:text="@string/summary_intersection_services"
android:layout_marginBottom="@dimen/dp_56" android:layout_marginBottom="@dimen/dp_44"
android:layout_marginStart="@dimen/dp_58" android:layout_marginStart="@dimen/dp_39"
/> />
<TextView <TextView
@@ -70,10 +73,10 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvIntersectionServices" app:layout_constraintLeft_toRightOf="@id/tvIntersectionServices"
app:layout_constraintRight_toLeftOf="@id/tvInfoTip" app:layout_constraintRight_toLeftOf="@id/tvInfoTip"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_20"
android:textColor="@color/summary_service_content" android:textColor="@color/summary_service_content"
android:text="@string/summary_light_services" android:text="@string/summary_light_services"
android:layout_marginBottom="@dimen/dp_56" android:layout_marginBottom="@dimen/dp_44"
/> />
<TextView <TextView
@@ -83,10 +86,10 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvLightServices" app:layout_constraintLeft_toRightOf="@id/tvLightServices"
app:layout_constraintRight_toLeftOf="@id/tvVehicleTip" app:layout_constraintRight_toLeftOf="@id/tvVehicleTip"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_20"
android:textColor="@color/summary_service_content" android:textColor="@color/summary_service_content"
android:text="@string/summary_info_tip" android:text="@string/summary_info_tip"
android:layout_marginBottom="@dimen/dp_56" android:layout_marginBottom="@dimen/dp_44"
/> />
<TextView <TextView
@@ -96,10 +99,10 @@
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvInfoTip" app:layout_constraintLeft_toRightOf="@id/tvInfoTip"
app:layout_constraintRight_toLeftOf="@id/tvVulnerableTip" app:layout_constraintRight_toLeftOf="@id/tvVulnerableTip"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_20"
android:textColor="@color/summary_service_content" android:textColor="@color/summary_service_content"
android:text="@string/summary_vehicle_tip" android:text="@string/summary_vehicle_tip"
android:layout_marginBottom="@dimen/dp_56" android:layout_marginBottom="@dimen/dp_44"
/> />
<TextView <TextView
@@ -108,11 +111,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
android:textSize="@dimen/sp_26" android:textSize="@dimen/sp_20"
android:textColor="@color/summary_service_content" android:textColor="@color/summary_service_content"
android:text="@string/summary_vulnerable_tip" android:text="@string/summary_vulnerable_tip"
android:layout_marginBottom="@dimen/dp_56" android:layout_marginBottom="@dimen/dp_44"
android:layout_marginEnd="@dimen/dp_58" android:layout_marginEnd="@dimen/dp_39"
/> />
<TextView <TextView
@@ -122,9 +125,10 @@
app:layout_constraintLeft_toLeftOf="@id/tvIntersectionServices" app:layout_constraintLeft_toLeftOf="@id/tvIntersectionServices"
app:layout_constraintBottom_toTopOf="@id/tvIntersectionServices" app:layout_constraintBottom_toTopOf="@id/tvIntersectionServices"
app:layout_constraintRight_toLeftOf="@id/tvIntersectionServicesUnit" app:layout_constraintRight_toLeftOf="@id/tvIntersectionServicesUnit"
android:textSize="@dimen/sp_94" android:textSize="@dimen/sp_72"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:text="1"
/> />
<TextView <TextView
@@ -134,9 +138,10 @@
app:layout_constraintBottom_toBottomOf="@id/tvIntersectionServicesNum" app:layout_constraintBottom_toBottomOf="@id/tvIntersectionServicesNum"
app:layout_constraintLeft_toRightOf="@id/tvIntersectionServicesNum" app:layout_constraintLeft_toRightOf="@id/tvIntersectionServicesNum"
app:layout_constraintRight_toRightOf="@id/tvIntersectionServices" app:layout_constraintRight_toRightOf="@id/tvIntersectionServices"
android:textSize="@dimen/sp_31" android:textSize="@dimen/sp_24"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_15"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
@@ -147,9 +152,10 @@
app:layout_constraintLeft_toLeftOf="@id/tvLightServices" app:layout_constraintLeft_toLeftOf="@id/tvLightServices"
app:layout_constraintBottom_toTopOf="@id/tvLightServices" app:layout_constraintBottom_toTopOf="@id/tvLightServices"
app:layout_constraintRight_toLeftOf="@id/tvLightServicesUnit" app:layout_constraintRight_toLeftOf="@id/tvLightServicesUnit"
android:textSize="@dimen/sp_94" android:textSize="@dimen/sp_72"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:text="4"
/> />
<TextView <TextView
@@ -159,9 +165,10 @@
app:layout_constraintRight_toRightOf="@id/tvLightServices" app:layout_constraintRight_toRightOf="@id/tvLightServices"
app:layout_constraintBottom_toBottomOf="@id/tvLightServicesNum" app:layout_constraintBottom_toBottomOf="@id/tvLightServicesNum"
app:layout_constraintLeft_toRightOf="@id/tvLightServicesNum" app:layout_constraintLeft_toRightOf="@id/tvLightServicesNum"
android:textSize="@dimen/sp_31" android:textSize="@dimen/sp_24"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_15"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
@@ -172,9 +179,10 @@
app:layout_constraintLeft_toLeftOf="@id/tvInfoTip" app:layout_constraintLeft_toLeftOf="@id/tvInfoTip"
app:layout_constraintBottom_toTopOf="@id/tvInfoTip" app:layout_constraintBottom_toTopOf="@id/tvInfoTip"
app:layout_constraintRight_toLeftOf="@id/tvInfoTipUnit" app:layout_constraintRight_toLeftOf="@id/tvInfoTipUnit"
android:textSize="@dimen/sp_94" android:textSize="@dimen/sp_72"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:text="3"
/> />
<TextView <TextView
@@ -184,9 +192,10 @@
app:layout_constraintLeft_toRightOf="@id/tvInfoTipNum" app:layout_constraintLeft_toRightOf="@id/tvInfoTipNum"
app:layout_constraintBottom_toBottomOf="@id/tvInfoTipNum" app:layout_constraintBottom_toBottomOf="@id/tvInfoTipNum"
app:layout_constraintRight_toRightOf="@id/tvInfoTip" app:layout_constraintRight_toRightOf="@id/tvInfoTip"
android:textSize="@dimen/sp_31" android:textSize="@dimen/sp_24"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_15"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
@@ -197,9 +206,10 @@
app:layout_constraintBottom_toTopOf="@id/tvVehicleTip" app:layout_constraintBottom_toTopOf="@id/tvVehicleTip"
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTip" app:layout_constraintLeft_toLeftOf="@id/tvVehicleTip"
app:layout_constraintRight_toLeftOf="@id/tvVehicleTipUnit" app:layout_constraintRight_toLeftOf="@id/tvVehicleTipUnit"
android:textSize="@dimen/sp_94" android:textSize="@dimen/sp_72"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:text="2"
/> />
<TextView <TextView
@@ -209,9 +219,10 @@
app:layout_constraintBottom_toBottomOf="@id/tvVehicleTipNum" app:layout_constraintBottom_toBottomOf="@id/tvVehicleTipNum"
app:layout_constraintRight_toRightOf="@id/tvVehicleTip" app:layout_constraintRight_toRightOf="@id/tvVehicleTip"
app:layout_constraintLeft_toRightOf="@id/tvVehicleTipNum" app:layout_constraintLeft_toRightOf="@id/tvVehicleTipNum"
android:textSize="@dimen/sp_31" android:textSize="@dimen/sp_24"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_15"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
@@ -222,9 +233,11 @@
app:layout_constraintLeft_toLeftOf="@id/tvVulnerableTip" app:layout_constraintLeft_toLeftOf="@id/tvVulnerableTip"
app:layout_constraintBottom_toTopOf="@id/tvVulnerableTip" app:layout_constraintBottom_toTopOf="@id/tvVulnerableTip"
app:layout_constraintRight_toLeftOf="@id/tvVulnerableTipUnit" app:layout_constraintRight_toLeftOf="@id/tvVulnerableTipUnit"
android:textSize="@dimen/sp_94" android:textSize="@dimen/sp_72"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:text="5"
/> />
<TextView <TextView
@@ -234,9 +247,10 @@
app:layout_constraintBottom_toBottomOf="@id/tvVulnerableTipNum" app:layout_constraintBottom_toBottomOf="@id/tvVulnerableTipNum"
app:layout_constraintLeft_toRightOf="@id/tvVulnerableTipNum" app:layout_constraintLeft_toRightOf="@id/tvVulnerableTipNum"
app:layout_constraintRight_toRightOf="@id/tvVulnerableTip" app:layout_constraintRight_toRightOf="@id/tvVulnerableTip"
android:textSize="@dimen/sp_31" android:textSize="@dimen/sp_24"
android:textColor="@color/summary_service_num" android:textColor="@color/summary_service_num"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_15"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
@@ -244,11 +258,12 @@
<View <View
android:id="@+id/viewDangerLayout" android:id="@+id/viewDangerLayout"
android:layout_width="@dimen/dp_611" android:layout_width="@dimen/dp_470"
android:layout_height="@dimen/dp_366" android:layout_height="@dimen/dp_270"
app:layout_constraintTop_toBottomOf="@id/clService" app:layout_constraintTop_toBottomOf="@id/clService"
app:layout_constraintLeft_toLeftOf="@id/clService" app:layout_constraintLeft_toLeftOf="@id/clService"
android:layout_marginTop="@dimen/dp_38" android:layout_marginTop="@dimen/dp_38"
android:background="@drawable/bg_summary_achievement"
/> />
<TextView <TextView
@@ -257,9 +272,10 @@
app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout" app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout"
app:layout_constraintRight_toRightOf="@id/viewDangerLayout" app:layout_constraintRight_toRightOf="@id/viewDangerLayout"
app:layout_constraintTop_toTopOf="@id/viewDangerLayout" app:layout_constraintTop_toTopOf="@id/viewDangerLayout"
android:textSize="@dimen/sp_39" android:textSize="@dimen/sp_30"
android:textColor="@color/summary_danger_title" android:textColor="@color/white"
android:text="@string/summary_danger_title" android:text="@string/summary_danger_title"
android:layout_marginTop="@dimen/dp_44"
/> />
<TextView <TextView
@@ -271,7 +287,9 @@
app:layout_constraintRight_toLeftOf="@id/tvDangerUnit" app:layout_constraintRight_toLeftOf="@id/tvDangerUnit"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:textColor="@color/summary_danger_num" android:textColor="@color/summary_danger_num"
android:textSize="@dimen/sp_195" android:textSize="@dimen/sp_150"
android:text="5"
android:layout_marginTop="@dimen/dp_80"
/> />
<TextView <TextView
@@ -282,18 +300,20 @@
app:layout_constraintRight_toRightOf="@id/viewDangerLayout" app:layout_constraintRight_toRightOf="@id/viewDangerLayout"
app:layout_constraintLeft_toRightOf="@id/tvDangerNum" app:layout_constraintLeft_toRightOf="@id/tvDangerNum"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_40"
android:textColor="@color/summary_danger_num" android:textColor="@color/summary_danger_num"
android:textSize="@dimen/sp_52" android:textSize="@dimen/sp_40"
android:text="@string/summary_service_unit" android:text="@string/summary_service_unit"
/> />
<View <View
android:id="@+id/viewEfficiencyLayout" android:id="@+id/viewEfficiencyLayout"
android:layout_width="@dimen/dp_611" android:layout_width="@dimen/dp_470"
android:layout_height="@dimen/dp_366" android:layout_height="@dimen/dp_270"
app:layout_constraintTop_toBottomOf="@id/clService" app:layout_constraintTop_toBottomOf="@id/clService"
app:layout_constraintRight_toRightOf="@id/clService" app:layout_constraintRight_toRightOf="@id/clService"
android:layout_marginTop="@dimen/dp_38" android:layout_marginTop="@dimen/dp_38"
android:background="@drawable/bg_summary_achievement"
/> />
<TextView <TextView
@@ -303,8 +323,9 @@
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout" app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
app:layout_constraintTop_toTopOf="@id/viewEfficiencyLayout" app:layout_constraintTop_toTopOf="@id/viewEfficiencyLayout"
android:text="@string/summary_efficiency_title" android:text="@string/summary_efficiency_title"
android:textSize="@dimen/sp_39" android:textSize="@dimen/sp_30"
android:textColor="@color/summary_danger_title" android:textColor="@color/white"
android:layout_marginTop="@dimen/dp_44"
/> />
<TextView <TextView
@@ -316,7 +337,9 @@
app:layout_constraintRight_toLeftOf="@id/tvEfficiencyUnit" app:layout_constraintRight_toLeftOf="@id/tvEfficiencyUnit"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:textColor="@color/summary_danger_num" android:textColor="@color/summary_danger_num"
android:textSize="@dimen/sp_195" android:textSize="@dimen/sp_150"
android:text="13"
android:layout_marginTop="@dimen/dp_80"
/> />
<TextView <TextView
@@ -327,7 +350,8 @@
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout" app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
app:layout_constraintLeft_toRightOf="@id/tvEfficiencyNum" app:layout_constraintLeft_toRightOf="@id/tvEfficiencyNum"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
android:textSize="@dimen/sp_52" android:layout_marginBottom="@dimen/dp_40"
android:textSize="@dimen/sp_40"
android:textColor="@color/summary_danger_num" android:textColor="@color/summary_danger_num"
android:text="@string/summary_efficiency_unit" android:text="@string/summary_efficiency_unit"
/> />
@@ -338,8 +362,10 @@
app:layout_constraintTop_toBottomOf="@id/viewDangerLayout" app:layout_constraintTop_toBottomOf="@id/viewDangerLayout"
app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout" app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout"
android:text="@string/summary_danger_tip" android:text="@string/summary_danger_tip"
android:textSize="@dimen/sp_24" android:textSize="@dimen/sp_16"
android:textColor="@color/summary_tip" android:textColor="@color/summary_tip"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_m_10"
/> />
<TextView <TextView
@@ -348,8 +374,9 @@
app:layout_constraintTop_toBottomOf="@id/viewEfficiencyLayout" app:layout_constraintTop_toBottomOf="@id/viewEfficiencyLayout"
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout" app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
android:text="@string/summary_powered" android:text="@string/summary_powered"
android:textSize="@dimen/sp_24" android:textSize="@dimen/sp_16"
android:textColor="@color/summary_tip" android:textColor="@color/summary_tip"
android:layout_marginTop="@dimen/dp_15"
/> />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,382 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/dp_2158"
android:layout_height="@dimen/dp_1170"
android:background="@drawable/bg_itinerary_summary_p"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:id="@+id/ivSummaryClose"
android:layout_width="@dimen/dp_86"
android:layout_height="@dimen/dp_86"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/icon_summary_close_p"
android:contentDescription="@string/summary_close"
android:layout_marginEnd="@dimen/dp_80"
android:layout_marginTop="@dimen/dp_80"
/>
<ImageView
android:id="@+id/ivSummaryZhi"
android:layout_width="@dimen/dp_190"
android:layout_height="@dimen/dp_160"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:src="@drawable/icon_summary_zhi"
android:contentDescription="@string/summary_zhi"
android:layout_marginTop="@dimen/dp_150"
android:layout_marginStart="@dimen/dp_813"
/>
<TextView
android:layout_width="@dimen/dp_927"
android:layout_height="@dimen/dp_84"
app:layout_constraintTop_toTopOf="@id/ivSummaryZhi"
app:layout_constraintLeft_toRightOf="@id/ivSummaryZhi"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginStart="@dimen/dp_20"
android:background="@drawable/bg_summary_zhi_tip"
android:textColor="@color/black"
android:textSize="@dimen/sp_28"
android:gravity="center"
android:text="“旅途全长 38 km全感知覆盖率 90%,车辆服务次数 68次”"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/clService"
android:layout_width="@dimen/dp_1261"
android:layout_height="@dimen/dp_260"
app:layout_constraintTop_toBottomOf="@id/ivSummaryZhi"
app:layout_constraintLeft_toLeftOf="@id/ivSummaryZhi"
android:layout_marginTop="@dimen/dp_40"
android:background="@drawable/bg_summary_service_p"
>
<TextView
android:id="@+id/tvIntersectionServices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/sp_26"
android:textColor="@color/summary_service_content_p"
android:text="@string/summary_intersection_services"
android:layout_marginBottom="@dimen/dp_56"
android:layout_marginStart="@dimen/dp_58"
/>
<TextView
android:id="@+id/tvLightServices"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvIntersectionServices"
app:layout_constraintRight_toLeftOf="@id/tvInfoTip"
android:textSize="@dimen/sp_26"
android:textColor="@color/summary_service_content_p"
android:text="@string/summary_light_services"
android:layout_marginBottom="@dimen/dp_56"
/>
<TextView
android:id="@+id/tvInfoTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvLightServices"
app:layout_constraintRight_toLeftOf="@id/tvVehicleTip"
android:textSize="@dimen/sp_26"
android:textColor="@color/summary_service_content_p"
android:text="@string/summary_info_tip"
android:layout_marginBottom="@dimen/dp_56"
/>
<TextView
android:id="@+id/tvVehicleTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/tvInfoTip"
app:layout_constraintRight_toLeftOf="@id/tvVulnerableTip"
android:textSize="@dimen/sp_26"
android:textColor="@color/summary_service_content_p"
android:text="@string/summary_vehicle_tip"
android:layout_marginBottom="@dimen/dp_56"
/>
<TextView
android:id="@+id/tvVulnerableTip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toRightOf="parent"
android:textSize="@dimen/sp_26"
android:textColor="@color/summary_service_content_p"
android:text="@string/summary_vulnerable_tip"
android:layout_marginBottom="@dimen/dp_56"
android:layout_marginEnd="@dimen/dp_58"
/>
<TextView
android:id="@+id/tvIntersectionServicesNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/tvIntersectionServices"
app:layout_constraintBottom_toTopOf="@id/tvIntersectionServices"
app:layout_constraintRight_toLeftOf="@id/tvIntersectionServicesUnit"
android:textSize="@dimen/sp_94"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:text="1"
/>
<TextView
android:id="@+id/tvIntersectionServicesUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tvIntersectionServicesNum"
app:layout_constraintLeft_toRightOf="@id/tvIntersectionServicesNum"
app:layout_constraintRight_toRightOf="@id/tvIntersectionServices"
android:textSize="@dimen/sp_31"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/summary_service_unit"
/>
<TextView
android:id="@+id/tvLightServicesNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/tvLightServices"
app:layout_constraintBottom_toTopOf="@id/tvLightServices"
app:layout_constraintRight_toLeftOf="@id/tvLightServicesUnit"
android:textSize="@dimen/sp_94"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:text="4"
/>
<TextView
android:id="@+id/tvLightServicesUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintRight_toRightOf="@id/tvLightServices"
app:layout_constraintBottom_toBottomOf="@id/tvLightServicesNum"
app:layout_constraintLeft_toRightOf="@id/tvLightServicesNum"
android:textSize="@dimen/sp_31"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/summary_service_unit"
/>
<TextView
android:id="@+id/tvInfoTipNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/tvInfoTip"
app:layout_constraintBottom_toTopOf="@id/tvInfoTip"
app:layout_constraintRight_toLeftOf="@id/tvInfoTipUnit"
android:textSize="@dimen/sp_94"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:text="3"
/>
<TextView
android:id="@+id/tvInfoTipUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toRightOf="@id/tvInfoTipNum"
app:layout_constraintBottom_toBottomOf="@id/tvInfoTipNum"
app:layout_constraintRight_toRightOf="@id/tvInfoTip"
android:textSize="@dimen/sp_31"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/summary_service_unit"
/>
<TextView
android:id="@+id/tvVehicleTipNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/tvVehicleTip"
app:layout_constraintLeft_toLeftOf="@id/tvVehicleTip"
app:layout_constraintRight_toLeftOf="@id/tvVehicleTipUnit"
android:textSize="@dimen/sp_94"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:text="2"
/>
<TextView
android:id="@+id/tvVehicleTipUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tvVehicleTipNum"
app:layout_constraintRight_toRightOf="@id/tvVehicleTip"
app:layout_constraintLeft_toRightOf="@id/tvVehicleTipNum"
android:textSize="@dimen/sp_31"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/summary_service_unit"
/>
<TextView
android:id="@+id/tvVulnerableTipNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/tvVulnerableTip"
app:layout_constraintBottom_toTopOf="@id/tvVulnerableTip"
app:layout_constraintRight_toLeftOf="@id/tvVulnerableTipUnit"
android:textSize="@dimen/sp_94"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:text="5"
/>
<TextView
android:id="@+id/tvVulnerableTipUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tvVulnerableTipNum"
app:layout_constraintLeft_toRightOf="@id/tvVulnerableTipNum"
app:layout_constraintRight_toRightOf="@id/tvVulnerableTip"
android:textSize="@dimen/sp_31"
android:textColor="@color/summary_service_num_p"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/summary_service_unit"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:id="@+id/viewDangerLayout"
android:layout_width="@dimen/dp_611"
android:layout_height="@dimen/dp_366"
app:layout_constraintTop_toBottomOf="@id/clService"
app:layout_constraintLeft_toLeftOf="@id/clService"
android:layout_marginTop="@dimen/dp_38"
android:background="@drawable/bg_summary_achievement_p"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout"
app:layout_constraintRight_toRightOf="@id/viewDangerLayout"
app:layout_constraintTop_toTopOf="@id/viewDangerLayout"
android:textSize="@dimen/sp_39"
android:textColor="@color/summary_danger_title"
android:text="@string/summary_danger_title"
android:layout_marginTop="@dimen/dp_58"
/>
<TextView
android:id="@+id/tvDangerNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewDangerLayout"
app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout"
app:layout_constraintRight_toLeftOf="@id/tvDangerUnit"
app:layout_constraintHorizontal_chainStyle="packed"
android:textColor="@color/summary_danger_num_p"
android:textSize="@dimen/sp_195"
android:text="5"
android:layout_marginTop="@dimen/dp_120"
/>
<TextView
android:id="@+id/tvDangerUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tvDangerNum"
app:layout_constraintRight_toRightOf="@id/viewDangerLayout"
app:layout_constraintLeft_toRightOf="@id/tvDangerNum"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_40"
android:textColor="@color/summary_danger_num_p"
android:textSize="@dimen/sp_52"
android:text="@string/summary_service_unit"
/>
<View
android:id="@+id/viewEfficiencyLayout"
android:layout_width="@dimen/dp_611"
android:layout_height="@dimen/dp_366"
app:layout_constraintTop_toBottomOf="@id/clService"
app:layout_constraintRight_toRightOf="@id/clService"
android:layout_marginTop="@dimen/dp_38"
android:background="@drawable/bg_summary_achievement_p"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/viewEfficiencyLayout"
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
app:layout_constraintTop_toTopOf="@id/viewEfficiencyLayout"
android:text="@string/summary_efficiency_title"
android:textSize="@dimen/sp_39"
android:textColor="@color/summary_danger_title"
android:layout_marginTop="@dimen/dp_58"
/>
<TextView
android:id="@+id/tvEfficiencyNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@id/viewEfficiencyLayout"
app:layout_constraintLeft_toLeftOf="@id/viewEfficiencyLayout"
app:layout_constraintRight_toLeftOf="@id/tvEfficiencyUnit"
app:layout_constraintHorizontal_chainStyle="packed"
android:textColor="@color/summary_danger_num_p"
android:textSize="@dimen/sp_195"
android:text="13"
android:layout_marginTop="@dimen/dp_120"
/>
<TextView
android:id="@+id/tvEfficiencyUnit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/tvEfficiencyNum"
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
app:layout_constraintLeft_toRightOf="@id/tvEfficiencyNum"
app:layout_constraintHorizontal_chainStyle="packed"
android:layout_marginBottom="@dimen/dp_40"
android:textSize="@dimen/sp_52"
android:textColor="@color/summary_danger_num_p"
android:text="@string/summary_efficiency_unit"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/viewDangerLayout"
app:layout_constraintLeft_toLeftOf="@id/viewDangerLayout"
android:text="@string/summary_danger_tip"
android:textSize="@dimen/sp_24"
android:textColor="@color/summary_tip_p"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginStart="@dimen/dp_m_10"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/viewEfficiencyLayout"
app:layout_constraintRight_toRightOf="@id/viewEfficiencyLayout"
android:text="@string/summary_powered"
android:textSize="@dimen/sp_24"
android:textColor="@color/summary_tip_p"
android:layout_marginTop="@dimen/dp_15"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -3,7 +3,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_margin="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
> >
<ImageView <ImageView
@@ -12,6 +13,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/icon_exploration_loading" android:src="@drawable/icon_exploration_loading"
android:contentDescription="@string/exploration_loading" android:contentDescription="@string/exploration_loading"
android:layout_gravity="center_vertical"
/> />
<TextView <TextView
@@ -21,6 +23,7 @@
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textColor="@color/white" android:textColor="@color/white"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_gravity="center_vertical"
/> />
</LinearLayout> </LinearLayout>

View File

@@ -3,7 +3,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:layout_margin="@dimen/dp_10"> android:layout_marginTop="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10">
<ImageView <ImageView
android:id="@+id/ivExplorationLoading" android:id="@+id/ivExplorationLoading"
@@ -11,6 +12,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/icon_exploration_loading_p" android:src="@drawable/icon_exploration_loading_p"
android:contentDescription="@string/exploration_loading" android:contentDescription="@string/exploration_loading"
android:layout_gravity="center_vertical"
/> />
<TextView <TextView
@@ -20,6 +22,7 @@
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textColor="@color/auto_exploration_content_p" android:textColor="@color/auto_exploration_content_p"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_gravity="center_vertical"
/> />
</LinearLayout> </LinearLayout>

View File

@@ -7,8 +7,8 @@
<ImageView <ImageView
android:id="@+id/ivScan" android:id="@+id/ivScan"
android:layout_width="wrap_content" android:layout_width="@dimen/dp_100"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_100"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
android:src="@drawable/icon_exploration_scan" android:src="@drawable/icon_exploration_scan"
@@ -17,8 +17,8 @@
/> />
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="@dimen/dp_75"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_75"
app:layout_constraintTop_toTopOf="@id/ivScan" app:layout_constraintTop_toTopOf="@id/ivScan"
app:layout_constraintBottom_toBottomOf="@id/ivScan" app:layout_constraintBottom_toBottomOf="@id/ivScan"
app:layout_constraintLeft_toLeftOf="@id/ivScan" app:layout_constraintLeft_toLeftOf="@id/ivScan"
@@ -38,7 +38,6 @@
android:textColor="@color/white" android:textColor="@color/white"
android:text="@string/exploration_title" android:text="@string/exploration_title"
android:layout_marginStart="@dimen/dp_30" android:layout_marginStart="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_30"
/> />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@@ -47,6 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tvExplorationTitle" app:layout_constraintTop_toBottomOf="@id/tvExplorationTitle"
app:layout_constraintLeft_toLeftOf="@id/tvExplorationTitle" app:layout_constraintLeft_toLeftOf="@id/tvExplorationTitle"
android:layout_marginTop="@dimen/dp_20"
/> />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -47,7 +47,6 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
android:src="@drawable/icon_exploration_close" android:src="@drawable/icon_exploration_close"
android:contentDescription="@string/exploration_close" android:contentDescription="@string/exploration_close"
android:padding="@dimen/dp_20"
/> />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@@ -56,6 +55,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tvExplorationTitle" app:layout_constraintTop_toBottomOf="@id/tvExplorationTitle"
app:layout_constraintLeft_toLeftOf="@id/tvExplorationTitle" app:layout_constraintLeft_toLeftOf="@id/tvExplorationTitle"
android:layout_marginTop="@dimen/dp_20"
/> />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -86,11 +86,15 @@
<color name="voice_user_end">#FF1E32D9</color> <color name="voice_user_end">#FF1E32D9</color>
<color name="voice_resp">#243959</color> <color name="voice_resp">#243959</color>
<color name="summary_service_content">#49546A</color> <color name="summary_service_content">#7C93C2</color>
<color name="summary_service_num">#464646</color> <color name="summary_service_content_p">#49546A</color>
<color name="summary_service_num">#FFFFFF</color>
<color name="summary_service_num_p">#464646</color>
<color name="summary_danger_title">#24313E</color> <color name="summary_danger_title">#24313E</color>
<color name="summary_danger_num">#106FF0</color> <color name="summary_danger_num">#2DF0FE</color>
<color name="summary_tip">#42464F</color> <color name="summary_danger_num_p">#106FF0</color>
<color name="summary_tip">#6A758D</color>
<color name="summary_tip_p">#42464F</color>
<color name="light_prompt_content">#131415 </color> <color name="light_prompt_content">#131415 </color>
<color name="light_prompt_red">#FF3B2D</color> <color name="light_prompt_red">#FF3B2D</color>

View File

@@ -88,4 +88,20 @@
<item name="android:layout_margin">@dimen/dp_10</item> <item name="android:layout_margin">@dimen/dp_10</item>
</style> </style>
<style name="summary_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/bg_itinerary_summary</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="summary_dialog_p" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/bg_itinerary_summary_p</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources> </resources>

View File

@@ -71,7 +71,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
} }
} }
if (triggerClose) { if (triggerClose) {
changeAngle(Default()) changeScene(Default())
} }
} }
@@ -83,7 +83,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
triggerRoadId.set(this.roadId.get()) triggerRoadId.set(this.roadId.get())
distanceOfCarToStopLine.set(info.distance) distanceOfCarToStopLine.set(info.distance)
triggerLocation.set(CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()) triggerLocation.set(CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02())
changeAngle(CrossRoad(2)) changeScene(CrossRoad(2))
} }
} }
} }
@@ -130,7 +130,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
mLevel = level mLevel = level
} }
override fun changeAngle(scene: Scene) { override fun changeScene(scene: Scene) {
if(mLevel){ if(mLevel){
return return
} }
@@ -140,13 +140,21 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
if (delay > 0) { if (delay > 0) {
delay(delay) delay(delay)
} }
val lastPriority = prevScene.get()?.priority ?: Int.MIN_VALUE
val currentPriority = scene.priority
if (lastPriority > currentPriority) {
return@launch
}
doChangeAngle(scene) doChangeAngle(scene)
}.also { }.also {
prevJob = it prevJob = it
} }
} }
override fun getCurrentScene(): Scene {
return prevScene.get() ?: Default()
}
private fun doChangeAngle(target: Scene) { private fun doChangeAngle(target: Scene) {
val angle = target.angle val angle = target.angle
CallerMapUIServiceManager.getMapUIController()?.also { CallerMapUIServiceManager.getMapUIController()?.also {
@@ -159,6 +167,12 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
notifyChanged(target) notifyChanged(target)
} }
prevScene.set(target) prevScene.set(target)
if (target.displayThreshold > 0) {
scope.launch {
delay(target.displayThreshold)
doChangeAngle(Default(0))
}
}
} }
} }
} }

View File

@@ -11,7 +11,7 @@ class CrossRoad(private val delayTime: Long): Scene {
override val angle: VisualAngleMode override val angle: VisualAngleMode
get() = MAP_STYLE_VR_ANGLE_CROSS get() = MAP_STYLE_VR_ANGLE_CROSS
override val priority: Int = 4 override val priority: Int = 0
override val displayThreshold: Long override val displayThreshold: Long
get() = -1 get() = -1

View File

@@ -16,7 +16,7 @@ class Default(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): S
override val angle: VisualAngleMode override val angle: VisualAngleMode
get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
override val priority: Int = 1 override val priority: Int = 0
override val displayThreshold: Long override val displayThreshold: Long
get() = 0 get() = 0

View File

@@ -12,7 +12,7 @@ class LongSight(private val delayTime: Long, private val unit: TimeUnit = TimeUn
override val priority: Int override val priority: Int
get() = 0 get() = 0
override val displayThreshold: Long override val displayThreshold: Long
get() = 0 get() = -1
override val delay: Long override val delay: Long
get() = unit.toMillis(delayTime) get() = unit.toMillis(delayTime)

View File

@@ -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 angle: VisualAngleMode = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
override val priority: Int = 5 override val priority: Int = 0
override val displayThreshold: Long override val displayThreshold: Long
get() = TimeUnit.SECONDS.toMillis(8) get() = -1
override val delay: Long override val delay: Long
get() = unit.toMillis(delayTime) get() = unit.toMillis(delayTime)

View File

@@ -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.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener 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.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.CallerChassisLamplightListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager 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.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAP
import com.mogo.map.MogoMap import com.mogo.map.MogoMap
@@ -26,7 +24,6 @@ import kotlin.properties.Delegates
class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs),
IMoGoSkinModeChangeListener,
IMoGoChassisLocationWGS84Listener, IMoGoChassisLamplightListener, LifecycleObserver { IMoGoChassisLocationWGS84Listener, IMoGoChassisLamplightListener, LifecycleObserver {
companion object { companion object {
@@ -37,8 +34,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
super.onCreate(bundle) super.onCreate(bundle)
map?.uiController?.showMyLocation(true) map?.uiController?.showMyLocation(true)
initMapView() initMapView()
CallerSkinModeListenerManager.addListener(TAG, this) CallerChassisLocationWGS84ListenerManager.addListener(TAG, 20, this)
CallerChassisLocationWGS84ListenerManager.addListener(TAG, 20,this)
CallerChassisLamplightListenerManager.addListener(TAG, this) CallerChassisLamplightListenerManager.addListener(TAG, this)
} }
@@ -68,15 +64,15 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
return MogoMap.DEFAULT return MogoMap.DEFAULT
} }
fun getUI(): IMogoMapUIController? { fun getUI(): IMogoMapUIController? {
return map?.uiController return map?.uiController
} }
fun addLine(options:Polyline.Options): IMapPolylineOverlay? { fun addLine(options: Polyline.Options): IMapPolylineOverlay? {
return map?.addLine(options) return map?.addLine(options)
} }
fun addPoint(options: Point.Options): IMapPointOverlay?{ fun addPoint(options: Point.Options): IMapPointOverlay? {
return map?.addPoint(options) return map?.addPoint(options)
} }
@@ -92,22 +88,14 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
super.onPause() super.onPause()
} }
override fun onSkinModeChange(skinMode: Int) {
if (skinMode == 0) {
getUI()?.stepInDayMode(false)
} else if (skinMode == 1) {
getUI()?.stepInDayMode(true)
}
}
/** /**
* 设置车辆灯光状态 true 刹车, false 正常 * 设置车辆灯光状态 true 刹车, false 正常
*/ */
private var accLimit : Boolean by Delegates.observable(false){ _, oldV, newV -> private var accLimit: Boolean by Delegates.observable(false) { _, oldV, newV ->
if(oldV != newV){ if (oldV != newV) {
if(newV){ if (newV) {
turn(4) turn(4)
}else{ } else {
turn(0) turn(0)
} }
} }
@@ -119,7 +107,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
accLimit = gnssInfo.acceleration < accThreshold accLimit = gnssInfo.acceleration < accThreshold
} }
private var currentLevel:Int = 0 private var currentLevel: Int = 0
override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) { override fun onAutopilotLightSwitchData(lightSwitch: Chassis.LightSwitch?) {
super.onAutopilotLightSwitchData(lightSwitch) super.onAutopilotLightSwitchData(lightSwitch)
@@ -128,9 +116,11 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
Chassis.LightSwitch.LIGHT_LEFT_VALUE -> { //左转灯 Chassis.LightSwitch.LIGHT_LEFT_VALUE -> { //左转灯
turn(1) turn(1)
} }
Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转灯 Chassis.LightSwitch.LIGHT_RIGHT_VALUE -> { //右转灯
turn(2) turn(2)
} }
Chassis.LightSwitch.LIGHT_NONE_VALUE -> { Chassis.LightSwitch.LIGHT_NONE_VALUE -> {
turn(0) turn(0)
} }
@@ -147,7 +137,6 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context,
override fun onDestroy() { override fun onDestroy() {
// 先取消注册数据再onDestroy // 先取消注册数据再onDestroy
CallerSkinModeListenerManager.removeListener(TAG)
CallerChassisLocationWGS84ListenerManager.removeListener(TAG) CallerChassisLocationWGS84ListenerManager.removeListener(TAG)
CallerChassisLamplightListenerManager.removeListener(TAG) CallerChassisLamplightListenerManager.removeListener(TAG)
super.onDestroy() super.onDestroy()

View File

@@ -7,10 +7,8 @@ import android.util.AttributeSet
import android.util.Log import android.util.Log
import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.api.map.road.IMoGoMapRoadListener 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.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager 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.eagle.core.widget.media.video.TextureVideoViewOutlineProvider
import com.mogo.map.MogoMap.Companion.MAP_ROAM import com.mogo.map.MogoMap.Companion.MAP_ROAM
import com.mogo.map.MogoMapView import com.mogo.map.MogoMapView
@@ -19,7 +17,6 @@ import com.mogo.map.uicontroller.VisualAngleMode
class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs), class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, attrs),
IMoGoSkinModeChangeListener,
LifecycleObserver, IMoGoMapRoadListener { LifecycleObserver, IMoGoMapRoadListener {
companion object { companion object {
@@ -33,7 +30,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
override fun onAttachedToWindow() { override fun onAttachedToWindow() {
super.onAttachedToWindow() super.onAttachedToWindow()
initMapView() initMapView()
CallerSkinModeListenerManager.addListener(TAG, this)
CallerMapRoadListenerManager.addListener(TAG, this) CallerMapRoadListenerManager.addListener(TAG, this)
} }
@@ -72,14 +68,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
return map?.uiController return map?.uiController
} }
override fun onSkinModeChange(skinMode: Int) {
if (skinMode == 0) {
getUI()?.stepInDayMode(false)
} else if (skinMode == 1) {
getUI()?.stepInDayMode(true)
}
}
@SuppressLint("ObsoleteSdkInt") @SuppressLint("ObsoleteSdkInt")
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh) super.onSizeChanged(w, h, oldw, oldh)
@@ -111,7 +99,6 @@ class MapRoamView(context: Context?, attrs: AttributeSet?) : MogoMapView(context
override fun onDestroy() { override fun onDestroy() {
// 先取消注册数据再onDestroy // 先取消注册数据再onDestroy
CallerSkinModeListenerManager.removeListener(TAG)
CallerMapRoadListenerManager.removeListener(TAG) CallerMapRoadListenerManager.removeListener(TAG)
super.onDestroy() super.onDestroy()
} }

View File

@@ -13,7 +13,7 @@ import com.mogo.eagle.core.function.map.R
import kotlin.random.Random import kotlin.random.Random
class RoadCrossRoamListAdapter(private val mContext: Context) : RecyclerView.Adapter<RoadCrossRoamListAdapter.ViewHolder>() { class RoadCrossRoamListAdapter(private val mContext: Context, private val lightMode: Boolean) : RecyclerView.Adapter<RoadCrossRoamListAdapter.ViewHolder>() {
private val items: MutableList<String> = mutableListOf() private val items: MutableList<String> = mutableListOf()
@@ -35,6 +35,11 @@ class RoadCrossRoamListAdapter(private val mContext: Context) : RecyclerView.Ad
override fun onBindViewHolder(holder: ViewHolder, position: Int) { override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = items[position] 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 holder.textView.text = item
// 随机决定是否显示ProgressBar // 随机决定是否显示ProgressBar
// if (Random.nextBoolean()) { // 50%的几率显示ProgressBar // if (Random.nextBoolean()) { // 50%的几率显示ProgressBar

View File

@@ -8,6 +8,9 @@ import android.util.AttributeSet
import android.util.Log import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View 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.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView 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.ivRoadRoamClose
import kotlinx.android.synthetic.main.view_road_cross_roam.view.lvRoadCrossRoamTip 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.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 import kotlin.properties.Delegates
class RoadCrossRoamView @JvmOverloads constructor( class RoadCrossRoamView @JvmOverloads constructor(
context: Context, context: Context,
attrs: AttributeSet? = null, attrs: AttributeSet? = null,
@@ -40,12 +46,13 @@ class RoadCrossRoamView @JvmOverloads constructor(
} }
private var animator: ObjectAnimator? = null private var animator: ObjectAnimator? = null
private var lightMode = CallerSkinModeListenerManager.getMode() == 1
init { init {
val res = when (CallerSkinModeListenerManager.getMode()) { val res = if (lightMode) {
0 -> R.layout.view_road_cross_roam R.layout.view_road_cross_roam_light
1 -> R.layout.view_road_cross_roam_light } else {
else -> R.layout.view_road_cross_roam R.layout.view_road_cross_roam
} }
LayoutInflater.from(context).inflate(res, this, true) LayoutInflater.from(context).inflate(res, this, true)
lvRoadCrossRoamTip.layoutManager = LinearLayoutManager(context) lvRoadCrossRoamTip.layoutManager = LinearLayoutManager(context)
@@ -84,14 +91,15 @@ class RoadCrossRoamView @JvmOverloads constructor(
override fun onStopLineInfo(info: StopLine) { override fun onStopLineInfo(info: StopLine) {
super.onStopLineInfo(info) super.onStopLineInfo(info)
showState = info.distance < 200 && info.distance > 100 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() { private fun attachView() {
this.visibility = View.VISIBLE this.visibility = View.VISIBLE
ivZhiRoadRoamView.visibility = View.VISIBLE
mapRoamView.visibility = View.VISIBLE mapRoamView.visibility = View.VISIBLE
mapRoamView.openRoam() mapRoamView.openRoam()
lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context) lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context, lightMode)
// 创建横向移动的动画 // 创建横向移动的动画
if (animator == null) { if (animator == null) {
animator = animator =
@@ -106,6 +114,22 @@ class RoadCrossRoamView @JvmOverloads constructor(
animator?.repeatCount = ValueAnimator.INFINITE // 设置动画无限重复 animator?.repeatCount = ValueAnimator.INFINITE // 设置动画无限重复
animator?.repeatMode = ValueAnimator.RESTART // 设置动画来回移动 animator?.repeatMode = ValueAnimator.RESTART // 设置动画来回移动
animator?.start() 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() { private fun detachView() {
@@ -113,12 +137,18 @@ class RoadCrossRoamView @JvmOverloads constructor(
mapRoamView.visibility = View.GONE mapRoamView.visibility = View.GONE
lvRoadCrossRoamTip.adapter = null lvRoadCrossRoamTip.adapter = null
animator?.cancel() animator?.cancel()
if(lightMode){
ivZhiRoadRoamView.clearAnimation()
}
this.visibility = View.GONE this.visibility = View.GONE
} }
override fun onDetachedFromWindow() { override fun onDetachedFromWindow() {
super.onDetachedFromWindow() super.onDetachedFromWindow()
animator?.cancel() animator?.cancel()
if(lightMode){
ivZhiRoadRoamView.clearAnimation()
}
CallerMapRoadListenerManager.removeListener(TAG) CallerMapRoadListenerManager.removeListener(TAG)
} }

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/anim_road_roam"
android:duration="1000"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:repeatMode="restart"
android:toDegrees="360" />

View File

@@ -8,15 +8,14 @@
<ImageView <ImageView
android:id="@+id/ivRoadRoamClose" android:id="@+id/ivRoadRoamClose"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_60"
android:src="@drawable/bg_close_nor_light" android:layout_marginTop="@dimen/dp_16"
android:padding="@dimen/dp_30" android:layout_marginEnd="@dimen/dp_20"
android:scaleType="center" android:scaleType="center"
android:layout_marginTop="@dimen/dp_12" android:src="@drawable/bg_close_nor_light"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
@@ -36,12 +35,13 @@
android:layout_height="@dimen/dp_84" android:layout_height="@dimen/dp_84"
android:layout_marginStart="@dimen/dp_24" android:layout_marginStart="@dimen/dp_24"
android:layout_marginTop="@dimen/dp_24" android:layout_marginTop="@dimen/dp_24"
android:background="@drawable/anim_road_cross_roam" android:background="@drawable/anim_road_roam"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<TextView <TextView
android:id="@+id/tvRoadRoamTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20" android:layout_marginStart="@dimen/dp_20"
@@ -57,15 +57,17 @@
android:layout_width="@dimen/dp_540" android:layout_width="@dimen/dp_540"
android:layout_height="@dimen/dp_300" android:layout_height="@dimen/dp_300"
android:layout_marginTop="@dimen/dp_160" android:layout_marginTop="@dimen/dp_160"
app:isWeatherEnable="true"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"
app:styleMode="MAP_STYLE_DAY_VR_TAXI" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/dp_540" android:layout_width="@dimen/dp_540"
android:layout_height="@dimen/dp_300" android:layout_height="@dimen/dp_300"
android:layout_marginTop="@dimen/dp_160"
android:layout_marginStart="@dimen/dp_26" android:layout_marginStart="@dimen/dp_26"
android:layout_marginTop="@dimen/dp_160"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
@@ -73,9 +75,9 @@
android:id="@+id/ivCoverRoam" android:id="@+id/ivCoverRoam"
android:layout_width="@dimen/dp_120" android:layout_width="@dimen/dp_120"
android:layout_height="@dimen/dp_300" android:layout_height="@dimen/dp_300"
android:src="@drawable/icon_cover_road_roam"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/icon_cover_road_roam"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@@ -83,8 +85,8 @@
android:id="@+id/lvRoadCrossRoamTip" android:id="@+id/lvRoadCrossRoamTip"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_200" android:layout_height="@dimen/dp_200"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginLeft="@dimen/dp_30" android:layout_marginLeft="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginRight="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"

View File

@@ -6,7 +6,9 @@ interface IMoGoVisualAngleChangeProvider: IProvider {
fun updateLongSightLevel(level: Boolean) fun updateLongSightLevel(level: Boolean)
fun changeAngle(scene: Scene) fun changeScene(scene: Scene)
fun getCurrentScene(): Scene
fun addListener(tag: String, listener: OnMoGoVisualAngleSceneChangeListener) fun addListener(tag: String, listener: OnMoGoVisualAngleSceneChangeListener)

View File

@@ -22,8 +22,12 @@ object CallerVisualAngleManager {
} }
} }
fun changeAngle(scene: Scene) { fun changeScene(scene: Scene) {
provider?.changeAngle(scene) provider?.changeScene(scene)
}
fun getCurrentScene(): Scene {
return provider?.getCurrentScene() ?: throw AssertionError()
} }
fun updateLongSightLevel(level: Boolean) { fun updateLongSightLevel(level: Boolean) {

View File

@@ -17,6 +17,8 @@
<color name="color_1A000000">#1A000000</color> <color name="color_1A000000">#1A000000</color>
<color name="color_FF2966EC">#FF2966EC</color> <color name="color_FF2966EC">#FF2966EC</color>
<color name="color_1F9BFE">#1F9BFE</color> <color name="color_1F9BFE">#1F9BFE</color>
<color name="color_191A1C">#191A1C</color>
<color name="color_131415">#131415</color>
<color name="color_256BFF">#256BFF</color> <color name="color_256BFF">#256BFF</color>
<color name="color_3E7BFE">#3E7BFE</color> <color name="color_3E7BFE">#3E7BFE</color>
<color name="color_323C6F">#323C6F</color> <color name="color_323C6F">#323C6F</color>

View File

@@ -1079,9 +1079,11 @@
<dimen name="sp_48">48dp</dimen> <dimen name="sp_48">48dp</dimen>
<dimen name="sp_52">52dp</dimen> <dimen name="sp_52">52dp</dimen>
<dimen name="sp_55">55dp</dimen> <dimen name="sp_55">55dp</dimen>
<dimen name="sp_72">72dp</dimen>
<dimen name="sp_76">76dp</dimen> <dimen name="sp_76">76dp</dimen>
<dimen name="sp_94">94dp</dimen> <dimen name="sp_94">94dp</dimen>
<dimen name="sp_120">120dp</dimen> <dimen name="sp_120">120dp</dimen>
<dimen name="sp_150">150dp</dimen>
<dimen name="sp_195">195dp</dimen> <dimen name="sp_195">195dp</dimen>

View File

@@ -21,7 +21,12 @@ enum class Level(val zIndex: Int) {
GUIDE_ROUTE_LINE(75000), GUIDE_ROUTE_LINE(75000),
/** /**
* 道路围栏区域绘制 * 围栏区域绘制
*/ */
MAP_POLYGON(76000) MAP_POLYGON(76000),
/**
* 围栏区域底色
*/
MAP_POLYGON_SOLID(75500)
} }

View File

@@ -56,6 +56,8 @@ data class Polyline(val id: String, val owner: String, val level: Level, val opt
val isShowArrow: Boolean = builder.isShowArrow val isShowArrow: Boolean = builder.isShowArrow
val isFilledIn: Boolean = builder.isFilledIn
fun builder(): Builder { fun builder(): Builder {
return 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 isShowArrow: Boolean = false
internal var isFilledIn: Boolean = false
fun setId(id: String) = apply { fun setId(id: String) = apply {
this.id = id this.id = id
} }
@@ -176,6 +180,10 @@ data class Polyline(val id: String, val owner: String, val level: Level, val opt
this.isShowArrow = show this.isShowArrow = show
} }
fun isFilledIn(filled: Boolean) = apply {
this.isFilledIn = filled
}
fun build(): Options { fun build(): Options {
if (TextUtils.isEmpty(id)) { if (TextUtils.isEmpty(id)) {
id = UUID.randomUUID().toString() id = UUID.randomUUID().toString()

View File

@@ -75,12 +75,17 @@ class AMapWrapper(map: MapAutoViewHelper?, mapView: MapAutoView, controller: IMo
e(TAG, "polyline参数为空") e(TAG, "polyline参数为空")
return null return null
} }
val delegate = if (options.isFilledIn) {
(if (polylineOptions.lineWidth > 0) mAMap!!.drawThickLine(polylineOptions) else mAMap!!.drawLine( val delegate = mAMap?.drawPolygon(polylineOptions)
polylineOptions return AMapPolylineWrapper(options.id, delegate, mMapView)
)) } else {
?: return null val delegate =
return AMapPolylineWrapper(options.id, delegate, mMapView) (if (polylineOptions.lineWidth > 0) mAMap?.drawThickLine(polylineOptions) else mAMap?.drawLine(
polylineOptions
))
?: return null
return AMapPolylineWrapper(options.id, delegate, mMapView)
}
} }
private val batchMarkerOptions = BatchMarkerOptions() private val batchMarkerOptions = BatchMarkerOptions()

View File

@@ -7,7 +7,7 @@ import com.zhidaoauto.map.sdk.open.view.MapAutoView
import java.util.concurrent.atomic.* import java.util.concurrent.atomic.*
import com.zhidaoauto.map.sdk.open.renders.poyline.Polyline 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) } private val isDestroyed by lazy { AtomicBoolean(false) }
@@ -19,7 +19,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline
override fun destroy() { override fun destroy() {
if (isDestroyed.compareAndSet(false, true)) { if (isDestroyed.compareAndSet(false, true)) {
try { try {
delegate.destroy() delegate?.destroy()
} finally { } finally {
onRemoveAction?.invoke(id) onRemoveAction?.invoke(id)
} }
@@ -29,7 +29,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline
override fun remove() { override fun remove() {
if (isRemoved.compareAndSet(false, true)) { if (isRemoved.compareAndSet(false, true)) {
try { try {
delegate.remove() delegate?.remove()
} finally { } finally {
onRemoveAction?.invoke(id) onRemoveAction?.invoke(id)
} }
@@ -40,7 +40,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline
if (isDestroyed.get() || isRemoved.get()) { if (isDestroyed.get() || isRemoved.get()) {
return return
} }
delegate.setVisible(visible) delegate?.setVisible(visible)
} }
override fun isDestroyed(): Boolean { override fun isDestroyed(): Boolean {
@@ -48,7 +48,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline
} }
override fun isVisible(): Boolean { override fun isVisible(): Boolean {
return delegate.isVisible() return delegate?.isVisible() ?: false
} }
override fun setToTop() { override fun setToTop() {
@@ -66,7 +66,7 @@ class AMapPolylineWrapper(private val id: String, private val delegate: Polyline
delegate.also { delegate.also {
val option = ObjectUtils.fromMogo(options,mMapAutoView) val option = ObjectUtils.fromMogo(options,mMapAutoView)
if (option != null) { if (option != null) {
it.setOption(option) it?.setOption(option)
} }
} }
} }