[650] refactor: 请求事件拉流地址接口 增加cityCod 参数;
refactor: 弹框show, dissmiss 主动切主线程;
This commit is contained in:
@@ -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)
|
||||
},
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
}
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user