[650] refactor: 请求事件拉流地址接口 增加cityCod 参数;

refactor: 弹框show, dissmiss 主动切主线程;
This commit is contained in:
aibingbing
2024-06-27 16:54:34 +08:00
parent b6ccf3c8f4
commit 3f65bc3976
4 changed files with 36 additions and 26 deletions

View File

@@ -114,14 +114,14 @@ class RoadV2NEventLivePlayView @JvmOverloads constructor(
* 开始查询拉流url
*/
fun startRoadCameraLive(
cameraId: String, lon: Double, lat: Double
cameraId: String, lon: Double, lat: Double, cityCode: String
) {
CallerLogger.i(
"${SceneConstant.M_HMI}$TAG",
"startRoadCameraLive, cameraId=$cameraId, lon=$lon, lat=$lat"
)
startLoading()
NDERoadV2NModel.ndeRoadV2NModel.querySingleCameraLiveByCameraIp(cameraId, lon, lat,
NDERoadV2NModel.ndeRoadV2NModel.querySingleCameraLiveByCameraIp(cameraId, lon, lat, cityCode,
onSuccess = {
startPlay(it?.liveUrl)
},

View File

@@ -13,6 +13,7 @@ import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.config.FunctionBuildConfig
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.autopilot.CallerChassisLocationWGS84ListenerManager
import com.mogo.eagle.core.function.call.hmi.CallerRoadV2NEventWindowListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
@@ -27,6 +28,7 @@ import kotlinx.android.synthetic.main.hmi_view_road_v2n_event_window.view.roundR
import kotlinx.android.synthetic.main.hmi_view_road_v2n_event_window.view.tvV2XHintContent
import kotlinx.android.synthetic.main.hmi_view_road_v2n_event_window.view.tvV2XTimeStr
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.UUID
/**
* 路侧V2N事件通用弹框
@@ -230,7 +232,9 @@ class RoadV2NEventWindowView @JvmOverloads constructor(
CallerRoadV2NEventWindowListenerManager.addListener(TAG, this)
initView()
//TODO
val eventId = CallerRoadV2NEventWindowListenerManager.show(
val eventId = UUID.randomUUID().toString()
CallerRoadV2NEventWindowListenerManager.show(
eventId,
System.currentTimeMillis(),
R.drawable.v2x_icon_shigong_zhandao,
"前方 200米 道路积水",
@@ -243,6 +247,7 @@ class RoadV2NEventWindowView @JvmOverloads constructor(
CallerRoadV2NEventWindowListenerManager.dismiss(eventId)
val eventId1 = CallerRoadV2NEventWindowListenerManager.show(
UUID.randomUUID().toString(),
System.currentTimeMillis(),
R.drawable.v2x_icon_jiaotongshigu_vr,
"前方 300米 发生交通事故",
@@ -260,32 +265,35 @@ class RoadV2NEventWindowView @JvmOverloads constructor(
}
override fun show(dataBean: RoadV2NEventWindowBean) {
currentEventUUID = dataBean.uuid
ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
context,
dataBean.iconResId
UiThreadHandler.post {
currentEventUUID = dataBean.uuid
ivV2XImage.setImageDrawable(
ContextCompat.getDrawable(
context,
dataBean.iconResId
)
)
)
tvV2XHintContent.text = dataBean.hintStr
tvV2XTimeStr.text =
"更新时间:${DateTimeUtils.getTimeText(dataBean.timestamp, DateTimeUtils.HH_mm_ss)}"
if (dataBean.isNeedTTS) {
AIAssist.getInstance(context)
.speakTTSVoiceWithLevel(dataBean.hintStr, AIAssist.LEVEL0)
tvV2XHintContent.text = dataBean.hintStr
tvV2XTimeStr.text =
"更新时间:${DateTimeUtils.getTimeText(dataBean.timestamp, DateTimeUtils.HH_mm_ss)}"
if (dataBean.isNeedTTS) {
AIAssist.getInstance(context)
.speakTTSVoiceWithLevel(dataBean.hintStr, AIAssist.LEVEL0)
}
val cityCode = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84().cityCode
containerLivePlay.startRoadCameraLive(
dataBean.cameraIp, dataBean.lon, dataBean.lat, cityCode)
visibility = View.VISIBLE
}
containerLivePlay.startRoadCameraLive(
dataBean.cameraIp,
dataBean.lon, dataBean.lat
)
visibility = View.VISIBLE
}
override fun dismiss(eventId: String) {
if (eventId == currentEventUUID) {
visibility = View.GONE
currentEventUUID = ""
containerLivePlay.stopRoadCameraLive()
UiThreadHandler.post {
if (eventId == currentEventUUID) {
visibility = View.GONE
currentEventUUID = ""
containerLivePlay.stopRoadCameraLive()
}
}
}
}

View File

@@ -19,7 +19,8 @@ interface INDERoadV2NApiService {
@Header("MogoReqTime") time: String,
@Query("ip") ip: String,
@Query("lon") lon: Double,
@Query("lat") lat: Double
@Query("lat") lat: Double,
@Query("cityCode") cityCode: String
): BaseResponse<RoadCameraLive>
}

View File

@@ -27,6 +27,7 @@ class NDERoadV2NModel private constructor() {
cameraIp: String,
lon: Double,
lat: Double,
cityCode: String,
onSuccess: ((RoadCameraLive?) -> Unit),
onError: ((String) -> Unit)
) {
@@ -36,7 +37,7 @@ class NDERoadV2NModel private constructor() {
val time = System.currentTimeMillis().toString()
val md5String = "${QUERY_SINGLE_LIVE.uppercase(Locale.getDefault())}$time"
getNetWorkApi().querySingleCameraLiveByCameraIp(
Md5Util.getMD5Result(md5String), time, cameraIp, lon, lat
Md5Util.getMD5Result(md5String), time, cameraIp, lon, lat, cityCode
)
}
}