diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 59454de005..b3a159f443 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -90,6 +90,7 @@ diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java index 74ef9948d2..18c600c02c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java @@ -45,9 +45,7 @@ public class V2XConst { /** * V2X 测试控制面板广播Action */ - public static final String BROADCAST_TEST_PANEL_CONTROL_ACTION = "com.v2x.com.v2x.test_panel_control"; - public static final String BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY = "TextPanelOpenStatus"; - public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "TextPanelOpenType"; + public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "sceneType"; public static final String BROADCAST_SCENE_ACTION = "com.v2x.scene_local_broadcast"; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java index bb19973358..45b98a4983 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java @@ -4,10 +4,26 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import com.mogo.module.common.entity.MarkerExploreWay; +import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.entity.V2XPushMessageEntity; +import com.mogo.module.common.entity.V2XRoadEventEntity; +import com.mogo.module.common.entity.V2XWarningEntity; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.scenario.scene.test.V2XTestConsoleWindow; +import com.mogo.module.v2x.entity.net.V2XOptimalRouteDataRes; +import com.mogo.module.v2x.entity.net.V2XSpecialCarRes; +import com.mogo.module.v2x.scenario.scene.livecar.V2XVoiceCallLiveBiz; +import com.mogo.module.v2x.utils.TestOnLineCarUtils; +import com.mogo.module.v2x.utils.V2XSQLiteUtils; import com.mogo.utils.logger.Logger; +import com.zhidao.carchattingprovider.MogoDriverInfo; + +import java.util.List; + +import static android.text.style.TtsSpan.GENDER_MALE; /** * V2X 测试面板广播接收,目的是可以通过广播调用起来面板 @@ -17,22 +33,147 @@ import com.mogo.utils.logger.Logger; public class TestPanelBroadcastReceiver extends BroadcastReceiver { private static final String TAG = V2XConst.MODULE_NAME + "_TestPanelBroadcastReceiver"; + private Context mContext; + @Override public void onReceive(Context context, Intent intent) { try { - boolean textPanelOpenStatus = intent.getBooleanExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY, false); - int textPanelOpenType = intent.getIntExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0); - Logger.d(TAG, "textPanelOpenStatus:" + textPanelOpenStatus); - Logger.d(TAG, "textPanelOpenType:" + textPanelOpenType); - if (textPanelOpenStatus) { - V2XServiceManager - .getIMogoWindowManager() - .addView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType), 0, 0, false); - } else { - V2XServiceManager - .getIMogoWindowManager() - .removeView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType)); + this.mContext = context; + int sceneType = intent.getIntExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0); + Logger.d(TAG, "textPanelOpenType:" + sceneType); + + // 分发场景 + dispatchSceneTest(sceneType); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 分发处理场景 + * + * @param sceneType 场景类型 + */ + private void dispatchSceneTest(int sceneType) { + Logger.d(TAG, "sceneType=" + sceneType); + if (sceneType == 0) {//打开用户信息 + MogoDriverInfo mogoDriverInfo = new MogoDriverInfo(); + mogoDriverInfo.setAge(24); + mogoDriverInfo.setGender(GENDER_MALE); + mogoDriverInfo.setSn("12345678"); + mogoDriverInfo.setUserName("测试"); + mogoDriverInfo.setUserHead("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1600872867592&di=994e371880ca6ae2814f553e0d0e4139&imgtype=0&src=http%3A%2F%2Fp3.ssl.cdn.btime.com%2Ft014c5d8a1e5cef12ba.jpg%3Fsize%3D506x543"); + if (V2XServiceManager.getCarsChattingProvider() != null) { + V2XServiceManager.getCarsChattingProvider().showUserWindow("CAR_CALL_USER_TO_" + V2XConst.MODULE_NAME, mogoDriverInfo, mContext); } + } else if (sceneType == 1) {// 触发道路事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioRoadEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + + + // 存储本地,出行动态作展示 + saveLocalStory(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING, + v2XMessageEntity.getContent().getNoveltyInfo()); + } else if (sceneType == 2) {//车路云—场景预警-V1.0 碰撞预警 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 3) {//触发H5推送事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 4) {//触发H5推送直播事件 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushLiveEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 5) {//H5推送触发V2X动画 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioAnimationEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 6) {//查看前车直播 + V2XVoiceCallLiveBiz.getInstance().getFrontCarLive(); + } else if (sceneType == 7) {//查看前车直播 + V2XVoiceCallLiveBiz.getInstance().getOpenRoadCameraLive(); + } else if (sceneType == 8) {//触发疲劳驾驶 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioFatigueDrivingData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 9) {//触发他人发起道路求助事件 + V2XMessageEntity> v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioSeekHelpData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 10) {//触发事件UGC + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioRoadEventUGCData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 11) {//触发违章停车事件 + V2XMessageEntity> v2XMessageEntity = + TestOnLineCarUtils.getV2XIllegalParkData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } else if (sceneType == 12) {//车路云场景预警-右侧 + Intent intent = new Intent(V2XConst.BROADCAST_ADAS_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_ADAS_EXTRA_KEY, "right"); + mContext.sendBroadcast(intent); + } else if (sceneType == 13) {//车路云场景预警-左侧 + Intent intent = new Intent(V2XConst.BROADCAST_ADAS_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_ADAS_EXTRA_KEY, "left"); + mContext.sendBroadcast(intent); + } else if (sceneType == 14) {//行人预警,行人路线预测 车路云预警-前方行人 + Intent intent = new Intent(V2XConst.BROADCAST_ADAS_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_ADAS_EXTRA_KEY, "pedestrians"); + mContext.sendBroadcast(intent); + } else if (sceneType == 15) {// 交通状况查询 + V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus(); + } else if (sceneType == 16) {//触发基于目的地预测的线路推荐 + V2XServiceManager.getV2XRefreshModel().queryRoadData("F803EB2046PZD00149"); + } else if (sceneType == 17) {//最优路线推荐 + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XOptimalRoute(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); + } + } + + + /** + * 存储本地数据 + * + * @param v2XRoadEventEntity 要存储的场景 + */ + public void saveLocalStory(int scenarioType, MarkerExploreWay v2XRoadEventEntity) { + try { + V2XSQLiteUtils.saveLocalStory(scenarioType, v2XRoadEventEntity, v2XRoadEventEntity.hashCode()); } catch (Exception e) { e.printStackTrace(); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java index 6cd528ca95..940e4aabf8 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java @@ -43,6 +43,7 @@ import static android.text.style.TtsSpan.GENDER_MALE; * desc : 用来测试的控制台 Window * version: 1.0 */ +@Deprecated public class V2XTestConsoleWindow extends ConstraintLayout { private static V2XTestConsoleWindow mV2XTestConsoleWindow;