From 67b99edbfdecd40e022fb5c628ae16089cc9098a Mon Sep 17 00:00:00 2001 From: aibingbing Date: Thu, 20 Jun 2024 10:34:49 +0800 Subject: [PATCH] =?UTF-8?q?[650]=20feat:=20=E4=B9=98=E5=AE=A2=E5=B1=8F=20?= =?UTF-8?q?=E8=B7=AF=E4=BE=A7=20V2N=20=E4=BA=8B=E4=BB=B6=E5=BC=B9=E6=A1=86?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8A=9F=E8=83=BD=E5=AE=9E=E7=8E=B0=EF=BC=8C?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=20Caller=20=E8=B0=83=E7=94=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/taxt_u_p_base_fragment.xml | 6 +- .../hmi/ui/v2n/PassengerV2NEventView.kt | 73 +++++++-- .../hmi/ui/v2n/V2NEventLivePlayView.kt | 78 ++++++--- .../hmi/ui/v2n/net/INDERoadV2NApiService.kt | 25 +++ .../hmi/ui/v2n/net/NDERoadV2NModel.kt | 55 +++++++ .../layout/hmi_view_passenger_v2n_event.xml | 152 ++++++++++-------- .../{road => v2x}/RoadV2NEventWindowBean.kt | 8 +- .../hmi/v2n/IRoadV2NEventWindowListener.kt | 2 +- ...CallerRoadV2NEventWindowListenerManager.kt | 17 +- 9 files changed, 303 insertions(+), 113 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/v2n/net/INDERoadV2NApiService.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/v2n/net/NDERoadV2NModel.kt rename core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/{road => v2x}/RoadV2NEventWindowBean.kt (53%) diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml index a8dc0fe8f9..c6280e5f48 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxt_u_p_base_fragment.xml @@ -200,12 +200,12 @@ + android:visibility="gone"/> + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/v2n/net/NDERoadV2NModel.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/v2n/net/NDERoadV2NModel.kt new file mode 100644 index 0000000000..3ace304cce --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/v2n/net/NDERoadV2NModel.kt @@ -0,0 +1,55 @@ +package com.mogo.eagle.core.function.business.roadcross.net + +import com.mogo.commons.constants.HostConst +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.eagle.core.data.road.RoadCameraLive +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.network.apiCall +import com.mogo.eagle.core.network.cancel +import com.mogo.eagle.core.network.request +import com.mogo.eagle.core.utilcode.util.Md5Util +import java.util.Locale + +class NDERoadV2NModel private constructor() { + + companion object { + val ndeRoadV2NModel by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { + NDERoadV2NModel() + } + } + + private fun getNetWorkApi(baseUrl: String = HostConst.getNDEHost()): INDERoadV2NApiService { + return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl) + .create(INDERoadV2NApiService::class.java) + } + + fun querySingleCameraLiveByCameraIp( + cameraIp: String, + lon: Double, + lat: Double, + onSuccess: ((RoadCameraLive?) -> Unit), + onError: ((String) -> Unit) + ) { + request>("querySingleCameraLiveByCameraIp") { + loader { + apiCall { + val time = System.currentTimeMillis().toString() + val md5String = "${QUERY_SINGLE_LIVE.uppercase(Locale.getDefault())}$time" + getNetWorkApi().querySingleCameraLiveByCameraIp( + Md5Util.getMD5Result(md5String), time, cameraIp, lon, lat + ) + } + } + onSuccess { + onSuccess.invoke(it.result) + } + onError { + onError.invoke(it.message.toString()) + } + } + } + + fun cancelRequest(tag: String) { + cancel(tag) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml index 6fc547d18d..50fd5a3a54 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/hmi_view_passenger_v2n_event.xml @@ -2,95 +2,107 @@ + android:background="@drawable/hmi_v2n_event_bg_passenger" + android:padding="@dimen/dp_37"> - + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/containerLivePlay" + tools:text="更新时间:10:38:20" /> + - - - - - - - \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/road/RoadV2NEventWindowBean.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/RoadV2NEventWindowBean.kt similarity index 53% rename from core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/road/RoadV2NEventWindowBean.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/RoadV2NEventWindowBean.kt index d94a964cbf..ddd45686d5 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/road/RoadV2NEventWindowBean.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/RoadV2NEventWindowBean.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.data.road +package com.mogo.eagle.core.data.v2x /** * 路侧道路事件 弹框 @@ -9,9 +9,11 @@ data class RoadV2NEventWindowBean( var iconResId: Int, //事件icon resource id var hintStr: String, //事件提示文案 var isNeedTTS: Boolean = false, //事件文案是否需要同步tts - var cameraIp: String // 路侧carema ip,用于请求获取拉流地址 + var cameraIp: String, // 路侧camera ip,用于请求获取拉流地址 + var lon: Double, //事件坐标-经度 + var lat: Double, //事件坐标-纬度 ) { override fun toString(): String { - return "RoadV2NEventWindowBean(id='$uuid', timestamp=$timestamp, iconResId=$iconResId, hintStr='$hintStr', isNeedTTS=$isNeedTTS, cameraIp='$cameraIp')" + return "RoadV2NEventWindowBean(uuid='$uuid', timestamp=$timestamp, iconResId=$iconResId, hintStr='$hintStr', isNeedTTS=$isNeedTTS, cameraIp='$cameraIp', lon=$lon, lat=$lat)" } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/v2n/IRoadV2NEventWindowListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/v2n/IRoadV2NEventWindowListener.kt index 8d4244662c..9919ec7285 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/v2n/IRoadV2NEventWindowListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/v2n/IRoadV2NEventWindowListener.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.api.hmi.v2n -import com.mogo.eagle.core.data.road.RoadV2NEventWindowBean +import com.mogo.eagle.core.data.v2x.RoadV2NEventWindowBean /** * 路侧道路事件弹框, 调用接口 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerRoadV2NEventWindowListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerRoadV2NEventWindowListenerManager.kt index 266ccae0d6..b419757309 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerRoadV2NEventWindowListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerRoadV2NEventWindowListenerManager.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.call.hmi -import com.mogo.eagle.core.data.road.RoadV2NEventWindowBean +import com.mogo.eagle.core.data.v2x.RoadV2NEventWindowBean import com.mogo.eagle.core.function.api.hmi.v2n.IRoadV2NEventWindowListener import com.mogo.eagle.core.function.call.base.CallerBase import java.util.UUID @@ -15,10 +15,21 @@ object CallerRoadV2NEventWindowListenerManager : CallerBase