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