diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2db9aab721..47f1a4e1d4 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
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 13f5e84d6f..c38b718165 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
@@ -9,14 +9,19 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
+import com.mogo.module.common.MogoApisHandler;
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.entrance.IMogoEntranceButtonController;
/**
* vr模式下,adas左侧提示框帮助类
*
* @author tongchenfei
*/
-public class AdasNoticeHelper {
+public class AdasNoticeHelper implements IMogoAdasWarnMessageCallback {
private Context context;
private AdasNoticeReceiver adasReceiver = new AdasNoticeReceiver();
@@ -27,11 +32,20 @@ public class AdasNoticeHelper {
public void enterVrMode(){
IntentFilter filter = new IntentFilter("com.mogo.launcher.adas.app.biz");
context.registerReceiver(adasReceiver, filter);
- // todo 注册adas事件回调
+ MogoApisHandler.getInstance().getApis().getAdasControllerApi().addAdasWarnMessageCallback(this);
}
public void exitVrMode(){
context.unregisterReceiver(adasReceiver);
+ MogoApisHandler.getInstance().getApis().getAdasControllerApi().removeAdasWarnMessageCallback(this);
+ }
+
+ @Override
+ public void onReceiveData(ADASWarnMessage msg) {
+ // 处理adas识别的时间,主要是行人碰撞预警
+ if (msg.type == MogoADASWarnType.ADAS_WARNING_PERSON) {
+ MogoApisHandler.getInstance().getApis().getEntranceButtonController().showLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_PEOPLE_WARN, R.drawable.module_ext_people_warn, "前方注意行人");
+ }
}
/**
@@ -43,6 +57,19 @@ public class AdasNoticeHelper {
@Override
public void onReceive(Context context, Intent intent) {
// todo 处理发给adas的事件, 主要处理逆向超车和obu行人碰撞
+ String id = intent.getStringExtra("v2x_warning_type");
+ if (id != null) {
+ switch (id) {
+ case "100003":
+ MogoApisHandler.getInstance().getApis().getEntranceButtonController().showLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_PEOPLE_WARN, R.drawable.module_ext_people_warn, "前方注意行人");
+ break;
+ case "":
+
+ break;
+ default:
+ break;
+ }
+ }
}
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java
index 064bf60460..07f63a0c3e 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/EntranceViewHolder.java
@@ -192,6 +192,7 @@ public class EntranceViewHolder {
}
private void realShowLeftNoticeView(View view){
+ leftNoticeContainer.setVisibility(View.VISIBLE);
leftNoticeContainer.removeAllViews();
leftNoticeContainer.addView(view);
preAddLeftNoticeView = null;
@@ -199,6 +200,7 @@ public class EntranceViewHolder {
private void realHideLeftNoticeView(View view) {
leftNoticeContainer.removeView(view);
+ leftNoticeContainer.setVisibility(View.GONE);
}
public void release(){
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 30d7774864..35021ce021 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
@@ -137,7 +137,13 @@
android:textColor="#fff"
android:gravity="center" />
-
+
+ app:layout_constraintLeft_toRightOf="@+id/module_ext_vr_mode_left_notice_container">
-
-
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
index ffce83b1a0..f8469eb617 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java
@@ -7,6 +7,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import com.mogo.module.common.entity.V2XMessageEntity;
+import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
@@ -15,6 +16,7 @@ import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
import com.mogo.module.v2x.voice.V2XVoiceConstants;
import com.mogo.module.v2x.voice.V2XVoiceManager;
import com.mogo.service.entrance.ButtonIndex;
+import com.mogo.service.entrance.IMogoEntranceButtonController;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
@@ -109,6 +111,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM
if (getV2XButton() != null) {
getV2XButton().setOnActionListener(this::showDialog);
getV2XButton().show();
+ V2XServiceManager.getMogoEntranceButtonController().showLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_SEEK_HELP, R.drawable.module_v2x_left_notice_seek_help, "正在发起求助...");
}
});
}
@@ -117,6 +120,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM
public void closeButton() {
if (V2XServiceManager.getMoGoStatusManager().isSeekHelping()) {
Logger.d(TAG, "关闭自车求助按钮!");
+ V2XServiceManager.getMogoEntranceButtonController().hideLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_SEEK_HELP);
V2XServiceManager.getMoGoStatusManager().setSeekHelping(TAG, false);
if (getV2XButton() != null) {
getV2XButton().close();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
index 10da5513fe..be9df8a6fe 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/seek/V2XSeekHelpScenario.java
@@ -15,6 +15,7 @@ import com.mogo.module.v2x.entity.net.V2XSpecialCarRes.V2XMarkerEntity;
import com.mogo.module.v2x.scenario.impl.AbsV2XScenario;
import com.mogo.module.v2x.utils.ADASUtils;
import com.mogo.module.v2x.utils.V2XUtils;
+import com.mogo.service.entrance.IMogoEntranceButtonController;
import com.mogo.service.windowview.IMogoTopViewStatusListener;
import com.mogo.utils.logger.Logger;
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_left_notice_seek_help.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_left_notice_seek_help.png
new file mode 100644
index 0000000000..00c0cab6db
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_left_notice_seek_help.png differ