[VisualAngle]地图视角切换部分代码提交

This commit is contained in:
renwj
2022-03-17 19:47:54 +08:00
parent ee881c99e7
commit 1a262230ca
6 changed files with 256 additions and 2 deletions

View File

@@ -9,6 +9,9 @@ import android.view.animation.Animation
import android.view.animation.LinearInterpolator
import android.widget.ImageView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Turning
import com.mogo.eagle.core.function.hmi.R
import kotlinx.android.synthetic.main.view_turn_light_status.view.*
import kotlinx.coroutines.Dispatchers
@@ -35,6 +38,9 @@ class TurnLightViewStatus @JvmOverloads constructor(
private var isRightLight :Boolean = false
private var isDisappare :Boolean = false
@Volatile
private var isVisualAngleChanged = false
/**
* 转向灯动画
*/
@@ -46,6 +52,13 @@ class TurnLightViewStatus @JvmOverloads constructor(
isShowNormalBg = true
}
if (directionLight == 1 || directionLight == 2) {
if (!isVisualAngleChanged) {
isVisualAngleChanged = true
CallerVisualAngleManager.changeVisualAngle(Turning)
}
}
//根据左右进行显示和隐藏,实际要判断每个来的时间和频度
if (directionLight == 1) { //左转向
if (!isLeftLight) {
@@ -73,6 +86,8 @@ class TurnLightViewStatus @JvmOverloads constructor(
}
} else { //消失
CallerVisualAngleManager.changeVisualAngle(Default())
isVisualAngleChanged = false
if (!isDisappare) {
GlobalScope.launch(Dispatchers.Main) {
animationDisappear()

View File

@@ -6,6 +6,7 @@ import android.content.IntentFilter
import android.os.Handler
import android.os.Looper
import android.provider.Settings.System
import android.util.Log
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.mogo.cloud.passport.IMoGoTokenCallback
import com.mogo.cloud.passport.MoGoAiCloudClient
@@ -22,6 +23,9 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.TooClose
import com.mogo.eagle.core.function.v2x.events.alarm.V2XAlarmServer
import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi
import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi.context
@@ -487,6 +491,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
scope.launch {
val message = event.data
val trafficData = buildTrafficData(message)
var changeVisualAngle = false
when (message.status) {
1 -> {
var tts = ""
@@ -507,12 +512,14 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
}
1003 -> {
// 交叉路口碰撞预警
changeVisualAngle = true
appId = EventTypeEnum.TYPE_USECASE_ID_ICW.poiType.toInt()
tts = EventTypeEnum.TYPE_USECASE_ID_ICW.tts
content = EventTypeEnum.TYPE_USECASE_ID_ICW.content
}
1004 -> {
// 交叉路口碰撞预警
changeVisualAngle = true
appId = EventTypeEnum.TYPE_USECASE_ID_BSW.poiType.toInt()
tts = String.format(EventTypeEnum.TYPE_USECASE_ID_BSW.tts, getWarningDirection())
content = EventTypeEnum.TYPE_USECASE_ID_BSW.content
@@ -544,8 +551,16 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
}
// 显示弹框,语音提示
CallerHmiManager.showWarningV2X(appId, content, tts, "$appId", object : IMoGoWarningStatusListener {
override fun onShow() {}
val change = changeVisualAngle
override fun onShow() {
if (change) {
CallerVisualAngleManager.changeVisualAngle(TooClose)
}
}
override fun onDismiss() {
if (change) {
CallerVisualAngleManager.changeVisualAngle(Default())
}
}
}, true, 5000L)
TrafficMarkerDrawer.updateITrafficInfo(trafficData)

View File

@@ -5,6 +5,7 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X
import com.mogo.eagle.core.data.enums.WarningDirectionEnum;
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi;
import com.mogo.eagle.core.function.v2x.events.consts.V2XConst;
@@ -117,6 +118,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
@Override
public void onShow() {
CallerVisualAngleManager.INSTANCE.changeVisualAngle(CallerVisualAngleManager.Scene.RoadEvent.INSTANCE);
CallerHmiManager.INSTANCE.showWarning(WarningDirectionEnum.ALERT_WARNING_TOP, TimeUnit.HOURS.toMillis(1));
V2XMessageEntity<V2XRoadEventEntity> entity = getV2XMessageEntity();
if (entity != null && entity.isNeedAddLine()) {
@@ -127,6 +129,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario<V2XRoadEventEntity> imp
@Override
public void onDismiss() {
CallerHmiManager.INSTANCE.dismissWarning(WarningDirectionEnum.ALERT_WARNING_TOP);
CallerVisualAngleManager.INSTANCE.changeVisualAngle(new CallerVisualAngleManager.Scene.Default(3, TimeUnit.SECONDS));
clearPOI();
release();
}