From c18eafb4634bb70839b45626094b58f56c56a8d3 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 27 Oct 2020 14:20:10 +0800 Subject: [PATCH] opt --- .../common/entity/AITrafficLightEntity.java | 75 +++++++++++++++++++ .../extensions/utils/AdasNoticeHelper.java | 31 +++++--- .../module_ext_vr_mode_speed_red_bg.xml | 5 -- .../module_ext_vr_mode_speed_white_bg.xml | 6 -- ...ule_ext_vr_mode_traffic_light_green_bg.xml | 6 +- .../res/layout/module_ext_layout_entrance.xml | 8 +- .../src/main/res/values/dimens.xml | 2 +- 7 files changed, 106 insertions(+), 27 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/AITrafficLightEntity.java diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/AITrafficLightEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/AITrafficLightEntity.java new file mode 100644 index 0000000000..fbd6bf98ee --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/AITrafficLightEntity.java @@ -0,0 +1,75 @@ +package com.mogo.module.common.entity; + +/** + * 通过AI云下发的红绿灯状态 + * + * @author tongchenfei + */ +public class AITrafficLightEntity { + private int type; + + private double lat; + private double lon; + private long systemTime; + /**红绿灯状态 1红 2绿 3黄*/ + private Integer lightStatus;// + /**红绿灯剩余时间 读秒*/ + private Integer lightLeftTime; + private double distance ;//距离 + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public double getLat() { + return lat; + } + + public void setLat(double lat) { + this.lat = lat; + } + + public double getLon() { + return lon; + } + + public void setLon(double lon) { + this.lon = lon; + } + + public long getSystemTime() { + return systemTime; + } + + public void setSystemTime(long systemTime) { + this.systemTime = systemTime; + } + + public Integer getLightStatus() { + return lightStatus; + } + + public void setLightStatus(Integer lightStatus) { + this.lightStatus = lightStatus; + } + + public Integer getLightLeftTime() { + return lightLeftTime; + } + + public void setLightLeftTime(Integer lightLeftTime) { + this.lightLeftTime = lightLeftTime; + } + + public double getDistance() { + return distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } +} diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java index cf4b1471aa..cc59e48718 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/AdasNoticeHelper.java @@ -6,18 +6,19 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.Handler; import android.os.Message; -import android.view.LayoutInflater; import android.view.View; -import android.widget.ImageView; import android.widget.TextView; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.location.MogoLocation; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.entity.AITrafficLightEntity; import com.mogo.module.extensions.R; import com.mogo.service.adas.IMogoAdasWarnMessageCallback; import com.mogo.service.adas.MogoADASWarnType; import com.mogo.service.adas.entity.ADASWarnMessage; +import com.mogo.service.connection.IMogoOnWebSocketMessageListener; +import com.mogo.service.connection.WebSocketMsgType; import com.mogo.service.entrance.IMogoEntranceButtonController; import com.mogo.utils.logger.Logger; @@ -29,7 +30,7 @@ import org.json.JSONObject; * @author tongchenfei */ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLocationListener, - Handler.Callback { + Handler.Callback , IMogoOnWebSocketMessageListener { private static final String TAG = "AdasNoticeHelper"; private static final int MSG_HIDE_TRAFFIC_LIGHT_BY_OBU = 1001; @@ -66,6 +67,7 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca context.registerReceiver(adasReceiver, filter); MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasWarnMessageCallback(this); MogoApisHandler.getInstance().getApis().getRegisterCenterApi().registerMogoLocationListener(TAG, this); + MogoApisHandler.getInstance().getApis().getWebSocketManagerApi(context).registerOnWebSocketMessageListener(this); // debug code tvSelfSpeed.setVisibility(View.VISIBLE); @@ -74,14 +76,16 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca } public void exitVrMode() { - isVrMode = false; - tvSelfSpeed.setVisibility(View.GONE); - tvTrafficLight.setVisibility(View.GONE); - tvLimitSpeed.setVisibility(View.GONE); + if(isVrMode) { + isVrMode = false; + tvSelfSpeed.setVisibility(View.GONE); + tvTrafficLight.setVisibility(View.GONE); + tvLimitSpeed.setVisibility(View.GONE); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().removeAdasWarnMessageCallback(this); + MogoApisHandler.getInstance().getApis().getRegisterCenterApi().unregisterMogoLocationListener(TAG); - context.unregisterReceiver(adasReceiver); - MogoApisHandler.getInstance().getApis().getAdasControllerApi().removeAdasWarnMessageCallback(this); - MogoApisHandler.getInstance().getApis().getRegisterCenterApi().unregisterMogoLocationListener(TAG); + context.unregisterReceiver(adasReceiver); + } } @Override @@ -200,7 +204,7 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca } } - private void handleCloudTrafficLight(){ + private void handleCloudTrafficLight(AITrafficLightEntity trafficLightEntity){ if (tvTrafficLight != null && !handler.hasMessages(MSG_HIDE_TRAFFIC_LIGHT_BY_OBU)) { handler.removeMessages(MSG_HIDE_TRAFFIC_LIGHT_BY_CLOUD); // todo drawTrafficLight @@ -230,4 +234,9 @@ public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback, IMogoLoca Logger.d(TAG, "展示红绿灯信息: " + lightStatus + " time: " + surplusTime); }); } + + @Override + public WebSocketMsgType getDownLinkType() { + return WebSocketMsgType.MSG_TYPE_DOWNLINK_CAR_DATA; + } } diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_red_bg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_red_bg.xml index 9b599f0e63..6293d9a7fb 100644 --- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_red_bg.xml +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_red_bg.xml @@ -5,11 +5,6 @@ android:width="65px" android:height="65px" /> - diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_white_bg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_white_bg.xml index 84230c5a05..95184c01ec 100644 --- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_white_bg.xml +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_vr_mode_speed_white_bg.xml @@ -5,12 +5,6 @@ android:width="65px" android:height="65px" /> - - + + + android:right="30px"/> diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index 1667f2a694..1e2c7d7fae 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -232,12 +232,13 @@ android:id="@+id/tvSelfSpeed" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginEnd="@dimen/module_ext_vr_mode_self_speed_margin_end" android:background="@drawable/module_ext_vr_mode_speed_red_bg" android:text="72" android:textColor="@color/module_ext_vr_mode_left_traffic_light_red" android:textSize="@dimen/module_ext_vr_mode_traffic_light_text_size" android:visibility="gone" + android:gravity="center" + tools:visibility="visible" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -247,9 +248,12 @@ android:layout_height="wrap_content" android:background="@drawable/module_ext_vr_mode_traffic_light_green_bg" android:text="26S" + android:gravity="center" + android:layout_marginStart="@dimen/module_ext_vr_mode_self_speed_margin_end" android:textColor="@color/module_ext_vr_mode_left_traffic_light_green" android:textSize="@dimen/module_ext_vr_mode_traffic_light_text_size" android:visibility="gone" + tools:visibility="visible" app:layout_constraintLeft_toRightOf="@+id/tvSelfSpeed" app:layout_constraintTop_toTopOf="@+id/tvSelfSpeed" /> @@ -260,6 +264,8 @@ android:layout_marginStart="@dimen/module_ext_vr_mode_self_speed_margin_end" android:background="@drawable/module_ext_vr_mode_speed_white_bg" android:text="160" + tools:visibility="visible" + android:gravity="center" android:textColor="@color/module_ext_vr_mode_left_traffic_light_white" android:textSize="@dimen/module_ext_vr_mode_traffic_light_text_size" android:visibility="gone" diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index c73c813857..9aff12df9e 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -177,7 +177,7 @@ 40px 50px - 36px + 32px 15px \ No newline at end of file