From e721fe426e5fefa24dc44aa5d8129619ea2e7c13 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 30 Dec 2020 16:25:26 +0800 Subject: [PATCH 01/22] =?UTF-8?q?1.=20=E4=BF=AE=E5=A4=8D=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=9C=BA=E5=9E=8B=E4=B8=8A=E5=9B=A0vr=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=95=8C=E9=9D=A2=E5=BC=82=E5=B8=B8=202.=20?= =?UTF-8?q?=E5=B0=86http=20dns=E6=9B=BF=E6=8D=A2=E6=88=90noop=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 1 + app/build.gradle | 4 +++- .../java/com/mogo/base/websocket/WebSocketConstant.java | 8 ++++---- .../mogo/module/main/launcher/MainLauncherActivity.java | 2 +- .../src/main/res/values-ldpi/dimens.xml | 5 +++++ .../src/main/res/values-mdpi/dimens.xml | 5 +++++ .../src/main/res/values-xhdpi/dimens.xml | 5 +++++ 7 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 main-extensions/mogo-module-main-launcher/src/main/res/values-ldpi/dimens.xml create mode 100644 main-extensions/mogo-module-main-launcher/src/main/res/values-mdpi/dimens.xml create mode 100644 main-extensions/mogo-module-main-launcher/src/main/res/values-xhdpi/dimens.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 5974cf305a..9d8d20d50d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -84,6 +84,7 @@ diff --git a/app/build.gradle b/app/build.gradle index 3309333674..9579c302f8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -484,6 +484,7 @@ dependencies { implementation rootProject.ext.dependencies.moduleextensions implementation rootProject.ext.dependencies.modulemap implementation rootProject.ext.dependencies.moduleSmallMap + implementation rootProject.ext.dependencies.httpdnsnoop } else { implementation project(':foudations:mogo-commons') implementation project(':foudations:mogo-base-websocket-sdk') @@ -501,6 +502,7 @@ dependencies { implementation project(':modules:mogo-module-extensions') implementation project(':modules:mogo-module-map') implementation project(':modules:mogo-module-smp') + implementation project(':foudations:httpdns-noop') } apply from: "./functions/basedmap.gradle" @@ -513,7 +515,7 @@ dependencies { apply from: "./functions/crashreport.gradle" apply from: "./functions/widgets.gradle" apply from: "./functions/tts.gradle" - apply from: "./functions/httpdns.gradle" +// apply from: "./functions/httpdns.gradle" apply from: "./functions/backwidget.gradle" apply from: "./functions/mediaui.gradle" apply from: "./functions/bizguide.gradle" diff --git a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java index f0e5ec13b7..df1706b0c5 100644 --- a/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java +++ b/foudations/mogo-base-websocket-sdk/src/main/java/com/mogo/base/websocket/WebSocketConstant.java @@ -8,11 +8,11 @@ import com.mogo.commons.debug.DebugConfig; @Keep public class WebSocketConstant { - private static final String HOST_DEV = "ws://62.234.196.121"; - private static final String HOST_QA = "ws://62.234.196.121"; - private static final String HOST_DEMO = "ws://62.234.196.121"; + private static final String HOST_DEV = "ws://119.45.249.167"; + private static final String HOST_QA = "ws://119.45.249.167"; + private static final String HOST_DEMO = "ws://119.45.249.167"; @Keep - private static final String HOST_RELEASE = "ws://62.234.196.121"; + private static final String HOST_RELEASE = "ws://119.45.249.167"; // private static final String PORT = ":14001/ws"; @Keep public static final String PATH = "/ws"; diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index 5582493834..1c73531d6c 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -131,7 +131,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis mLeftShadowFrame.setVisibility(View.GONE); mApps.setVisibility(View.GONE); }else{ - entranceParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft_out_vr_mode ); + entranceParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_id_entrance_fragment_container_marginLeft ); mLeftShadowFrame.setVisibility(View.VISIBLE); mApps.setVisibility(View.VISIBLE); } diff --git a/main-extensions/mogo-module-main-launcher/src/main/res/values-ldpi/dimens.xml b/main-extensions/mogo-module-main-launcher/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..4b84e40d04 --- /dev/null +++ b/main-extensions/mogo-module-main-launcher/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,5 @@ + + + 0px + 444px + \ No newline at end of file diff --git a/main-extensions/mogo-module-main-launcher/src/main/res/values-mdpi/dimens.xml b/main-extensions/mogo-module-main-launcher/src/main/res/values-mdpi/dimens.xml new file mode 100644 index 0000000000..4b84e40d04 --- /dev/null +++ b/main-extensions/mogo-module-main-launcher/src/main/res/values-mdpi/dimens.xml @@ -0,0 +1,5 @@ + + + 0px + 444px + \ No newline at end of file diff --git a/main-extensions/mogo-module-main-launcher/src/main/res/values-xhdpi/dimens.xml b/main-extensions/mogo-module-main-launcher/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..25247f638b --- /dev/null +++ b/main-extensions/mogo-module-main-launcher/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,5 @@ + + + 0px + 800px + \ No newline at end of file From 386b90337850d047f1b392a1eb758721d5e52598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Wed, 30 Dec 2020 16:38:37 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=87=86=E5=A4=87=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E7=BC=96=E5=86=99=20=E5=9F=BA=E4=BA=8E=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E8=BF=9D=E7=AB=A0=E9=AB=98=E5=8F=91=E6=83=85=E5=86=B5?= =?UTF-8?q?=E7=9A=84=E5=81=9C=E8=BD=A6=E6=8E=A8=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/module/v2x/alarm/V2XAlarmServer.java | 2 +- .../java/com/mogo/module/v2x/network/V2XRefreshModel.java | 2 +- .../scene/destination/V2XRecommendParkingLotScenario.java | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendParkingLotScenario.java diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XAlarmServer.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XAlarmServer.java index d42c409a80..10b0be5657 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XAlarmServer.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XAlarmServer.java @@ -249,7 +249,7 @@ public class V2XAlarmServer { LocationUtils.geoCodeSearch(location, new IMogoGeoSearchListener() { @Override public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) { - //Logger.i(MODULE_NAME, "根据经纬度查询结果为:" + regeocodeResult.getRegeocodeAddress().getFormatAddress()); + Logger.i(MODULE_NAME, "根据经纬度查询结果为:" + regeocodeResult.getRegeocodeAddress().getFormatAddress()); String keyword = "停车场"; boolean isHighWay = false; if (regeocodeResult == null || regeocodeResult.getRegeocodeAddress() == null || diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index e1ea631bc9..80ae877241 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -701,7 +701,7 @@ public class V2XRefreshModel { @Override public void onError(Throwable e) { super.onError(e); - Logger.d("queryRoadData:onError", e.toString()); + Logger.d("queryRoadDataOfVehiclesRecommend:onError", e.toString()); } }); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendParkingLotScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendParkingLotScenario.java new file mode 100644 index 0000000000..b3b5cd8daa --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendParkingLotScenario.java @@ -0,0 +1,8 @@ +package com.mogo.module.v2x.scenario.scene.destination; + +/** + * 基于目的地违章高发情况的停车推荐 + * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48958095 + */ +public class V2XRecommendParkingLotScenario { +} From 11fb2d54e50188b78aca51882f1f661ed40bf380 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Wed, 30 Dec 2020 17:10:09 +0800 Subject: [PATCH 03/22] =?UTF-8?q?http=20dns=20noop=20=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E4=BC=A0=E5=85=A5=E7=9A=84host?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java b/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java index fdf50007aa..5cd0e7df49 100644 --- a/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java +++ b/foudations/httpdns-noop/src/main/java/com/mogo/httpdns/noop/HttpDnsNoop.java @@ -26,13 +26,13 @@ class HttpDnsNoop implements IMogoHttpDns { @Override public String getCachedHttpDnsIps( String host,int type ) { - return null; + return host; } @Override public void getHttpDnsIp( String host,int type, boolean useCache, IHttpDnsCallback callback ) { if ( callback != null ) { - callback.onParsed( null ); + callback.onParsed( host ); } } From 2e8a0ec17fe13caf13851dd42d61b677a07842a0 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Wed, 30 Dec 2020 17:20:50 +0800 Subject: [PATCH 04/22] opt --- .../src/main/java/com/mogo/module/v2x/V2XConst.java | 7 +++++++ 1 file changed, 7 insertions(+) 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 621795f269..32f5a48e60 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 @@ -133,4 +133,11 @@ public class V2XConst { * 绿波车速marker */ public static final String V2X_OPTIMAL_SPEED_MARKER = "V2X_OPTIMAL_SPEED_MARKER"; + + //免唤醒词 + public static final String[] UNWAKE_NAVI_CONFIRM = {"开始导航", "开启导航", "好的", "开始", "导航", "确定", "确认", "好"}; + public static final String[] UNWAKE_NAVI_CANCLE = {"取消", "关闭", "不要", "不导航"}; + public static final String V2X_CONFIRM_ACTION = "V2X_CONFIRM_ACTION"; + public static final String V2X_CANCLE_ACTION = "V2X_CANCLE_ACTION"; + } From 3d223d1fd896f3d8143a0c3d0cec3781b92f57d2 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Wed, 30 Dec 2020 17:40:02 +0800 Subject: [PATCH 05/22] add voice control --- .../java/com/mogo/module/v2x/V2XConst.java | 6 --- .../adapter/holder/V2XRecommendRouteVH.java | 46 ++++++++++++++++++- .../module/v2x/voice/V2XVoiceConstants.java | 10 ++++ 3 files changed, 55 insertions(+), 7 deletions(-) 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 32f5a48e60..216a7b9b08 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 @@ -134,10 +134,4 @@ public class V2XConst { */ public static final String V2X_OPTIMAL_SPEED_MARKER = "V2X_OPTIMAL_SPEED_MARKER"; - //免唤醒词 - public static final String[] UNWAKE_NAVI_CONFIRM = {"开始导航", "开启导航", "好的", "开始", "导航", "确定", "确认", "好"}; - public static final String[] UNWAKE_NAVI_CANCLE = {"取消", "关闭", "不要", "不导航"}; - public static final String V2X_CONFIRM_ACTION = "V2X_CONFIRM_ACTION"; - public static final String V2X_CANCLE_ACTION = "V2X_CANCLE_ACTION"; - } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java index a9150a6c42..e5699c96fa 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java @@ -1,5 +1,6 @@ package com.mogo.module.v2x.adapter.holder; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -8,10 +9,14 @@ import android.widget.TextView; import androidx.annotation.NonNull; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.common.entity.V2XRecommendRouteEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.scenario.view.IV2XWindow; +import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; +import com.mogo.module.v2x.voice.V2XVoiceConstants; +import com.mogo.module.v2x.voice.V2XVoiceManager; /** * created by wujifei on 2020/12/29 20:39 @@ -31,6 +36,45 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { + try { + //开启导航 TODO + MarkerExploreWay exploreWay = new MarkerExploreWay(); + triggerStartNavi(exploreWay); + Log.d("V2XRecommendRouteVH", "mStartNavi ------"); + } catch (Exception e) { + e.printStackTrace(); + } + }; + + private V2XVoiceCallbackListener mCancleNavi = (command, intent) -> { + try { + //取消导航 + unRegisterUnwakeNavi(); + Log.d("V2XRecommendRouteVH", "cancleNavi ------"); + } catch (Exception e) { + e.printStackTrace(); + } + }; + + private void registerUnwakeNavi() { + V2XVoiceManager.INSTANCE + .registerWakeCmd(V2XVoiceConstants.V2X_CONFIRM_ACTION, + mStartNavi) + .registerWakeCmd(V2XVoiceConstants.V2X_CANCLE_ACTION, + mCancleNavi); + } + + private void unRegisterUnwakeNavi() { + V2XVoiceManager.INSTANCE + .unRegisterWakeCmd(V2XVoiceConstants.V2X_CONFIRM_ACTION) + .unRegisterWakeCmd(V2XVoiceConstants.V2X_CANCLE_ACTION); + } + + + + } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java index 6f22e219a8..42e1448fd5 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/voice/V2XVoiceConstants.java @@ -283,6 +283,13 @@ public class V2XVoiceConstants { public static final String COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP"; public static final String[] COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS = {"没注意", "没看到", "没有施工","无施工", "很正常", "取消", "关闭"}; + //免唤醒词 + public static final String V2X_CONFIRM_ACTION = "V2X_CONFIRM_ACTION"; + public static final String[] UNWAKE_NAVI_CONFIRM = {"开始导航", "开启导航", "好的", "开始", "导航", "确定", "确认", "好"}; + + public static final String V2X_CANCLE_ACTION = "V2X_CANCLE_ACTION"; + public static final String[] UNWAKE_NAVI_CANCLE = {"取消", "关闭", "不要", "不导航"}; + static { // 免唤醒 默认 @@ -321,6 +328,9 @@ public class V2XVoiceConstants { sVoiceCmds.put(COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_YES_UN_WAKEUP, COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_YES_UN_WAKEUP_WORDS); sVoiceCmds.put(COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP, COMMAND_ZHIDAO_V2X_FEEDBACK_SHI_GONG_NO_UN_WAKEUP_WORDS); + sVoiceCmds.put(V2X_CONFIRM_ACTION, UNWAKE_NAVI_CONFIRM); + sVoiceCmds.put(V2X_CANCLE_ACTION, UNWAKE_NAVI_CANCLE); + //2020-6-24 顺义演示需求添加,现合并至launcher 更新时间:2020-08-25 sVoiceCmds.put(COMMAND_ZHIDAO_V2X_CALL_FRONT_CAR_DEMO_UN_WAKEUP, COMMAND_ZHIDAO_V2X_CALL_FRONT_CAR_DEMO_UN_WAKEUP_WORDS); From f80af8c3cf26985d3f97f8150eafcdeb4023a5f5 Mon Sep 17 00:00:00 2001 From: wujifei Date: Wed, 30 Dec 2020 17:47:33 +0800 Subject: [PATCH 06/22] =?UTF-8?q?new#=E5=9F=BA=E4=BA=8E=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E9=A2=84=E5=88=A4=E7=9A=84=E9=81=93=E8=B7=AF=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E6=8F=90=E9=86=92=E3=80=81=E8=B7=AF=E7=BA=BF=E6=8E=A8?= =?UTF-8?q?=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/V2XRecommendRouteEntity.java | 10 ++++ modules/mogo-module-v2x/build.gradle | 3 ++ .../v2x/adapter/V2XRoadEventAdapter.java | 3 ++ .../adapter/holder/V2XRecommendRouteVH.java | 46 ++++++++++++++++-- .../module/v2x/network/V2XRefreshModel.java | 10 +--- .../destination/V2XRecommendRouteScenario.kt | 18 +++++-- .../main/res/drawable-ldpi/v2x_icon_route.png | Bin 0 -> 18544 bytes .../res/drawable-ldpi/v2x_to_nav_nomal.png | Bin 0 -> 11698 bytes .../res/drawable-ldpi/v2x_to_nav_pressed.png | Bin 0 -> 11025 bytes .../v2x_icon_route.png | Bin 0 -> 18544 bytes .../v2x_to_nav_nomal.png | Bin 0 -> 11698 bytes .../v2x_to_nav_pressed.png | Bin 0 -> 11025 bytes .../res/drawable-xhdpi/v2x_icon_route.png | Bin 0 -> 18544 bytes .../res/drawable-xhdpi/v2x_to_nav_nomal.png | Bin 0 -> 11698 bytes .../res/drawable-xhdpi/v2x_to_nav_pressed.png | Bin 0 -> 11025 bytes .../src/main/res/drawable/v2x_to_nav.xml | 6 +++ .../res/layout/item_v2x_fatigue_driving.xml | 2 +- .../res/layout/item_v2x_recommend_route.xml | 35 ++++--------- .../main/res/layout/window_test_console.xml | 2 +- .../src/main/res/values/strings.xml | 3 +- 20 files changed, 92 insertions(+), 46 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-ldpi/v2x_icon_route.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-ldpi/v2x_to_nav_nomal.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-ldpi/v2x_to_nav_pressed.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_icon_route.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_to_nav_nomal.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_to_nav_pressed.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_route.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_to_nav_nomal.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_to_nav_pressed.png create mode 100644 modules/mogo-module-v2x/src/main/res/drawable/v2x_to_nav.xml diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java index d95387b5f2..9523dbfd4f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java @@ -1,9 +1,19 @@ package com.mogo.module.common.entity; +import java.util.List; + /** * created by wujifei on 2020/12/24 15:33 * describe:基于目的地预判的道路事件 */ public class V2XRecommendRouteEntity { + private List toPoint; + public List getToPoint() { + return toPoint; + } + + public void setToPoint(List toPoint) { + this.toPoint = toPoint; + } } diff --git a/modules/mogo-module-v2x/build.gradle b/modules/mogo-module-v2x/build.gradle index 47ab18a430..2eaadb3a28 100644 --- a/modules/mogo-module-v2x/build.gradle +++ b/modules/mogo-module-v2x/build.gradle @@ -60,6 +60,9 @@ dependencies { implementation rootProject.ext.dependencies.androidxviewpager2 implementation rootProject.ext.dependencies.localbroadcastmanager + implementation rootProject.ext.dependencies.coroutinescore + implementation rootProject.ext.dependencies.coroutinesandroid + implementation rootProject.ext.dependencies.videoarmv7 implementation rootProject.ext.dependencies.videoarm64 implementation rootProject.ext.dependencies.videojava diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadEventAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadEventAdapter.java index b4a68452b2..26c35201d5 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadEventAdapter.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadEventAdapter.java @@ -102,6 +102,9 @@ public class V2XRoadEventAdapter extends RecyclerView.Adapter { - private TextView mTvAddress, mTvAddressDistance; +public class V2XRecommendRouteVH extends V2XBaseViewHolder { + private TextView mTvAddress; private ImageView mIvToNav, mIvClose; + private MarkerExploreWay mNoveltyInfo; public V2XRecommendRouteVH(ViewGroup viewGroup, IV2XWindow v2XWindow) { - super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_fatigue_driving, viewGroup, false), v2XWindow); + super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_recommend_route, viewGroup, false), v2XWindow); mTvAddress = itemView.findViewById(R.id.tvAddress); - mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance); mIvToNav = itemView.findViewById(R.id.ivToNav); mIvClose = itemView.findViewById(R.id.ivClose); + mIvToNav.setOnClickListener(v -> triggerStartNavi(mNoveltyInfo)); + mIvClose.setOnClickListener(v -> delayedCloseWindow()); } @Override - public void initView(V2XRecommendRouteEntity viewData) { + public void initView(V2XEventShowEntity v2XEventShowEntity) { + MarkerLocation markerLocation = new MarkerLocation(); + markerLocation.setLon(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(0)); + markerLocation.setLat(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); + mNoveltyInfo = new MarkerExploreWay(); + mNoveltyInfo.setLocation(markerLocation); + MogoLocation mogoLocation = new MogoLocation(); + mogoLocation.setLongitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(0)); + mogoLocation.setLatitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); + getLocationInfo(mogoLocation); } + + /** + * 获取定位相关信息 + */ + private void getLocationInfo(MogoLocation location) { + // 定位当前位置是否是高速 + LocationUtils.geoCodeSearch(location, new IMogoGeoSearchListener() { + @Override + public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) { + mTvAddress.setText("前往 " + regeocodeResult.getRegeocodeAddress().getFormatAddress()); + } + + @Override + public void onGeocodeSearched(MogoGeocodeResult geocodeResult) { + } + }); + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index e1ea631bc9..575f4aa97a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -676,12 +676,12 @@ public class V2XRefreshModel { @Override public void onNext(V2XRoadDataRes v2XRoadDataRes) { super.onNext(v2XRoadDataRes); - Logger.d("queryRoadData:onSuccess", v2XRoadDataRes.toString()); if (v2XRoadDataRes == null || v2XRoadDataRes.getResult() == null) { return; } if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) { V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity(); + v2XRecommendRouteEntity.setToPoint(v2XRoadDataRes.getResult().getTopPoint()); V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); // 控制类型 v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE); @@ -694,15 +694,9 @@ public class V2XRefreshModel { intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); } else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { - + // TODO: 2020/12/30 } } - - @Override - public void onError(Throwable e) { - super.onError(e); - Logger.d("queryRoadData:onError", e.toString()); - } }); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt index e14165cb62..23f795f105 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt @@ -9,6 +9,10 @@ import com.mogo.module.v2x.V2XServiceManager import com.mogo.module.v2x.scenario.impl.AbsV2XScenario import com.mogo.module.v2x.utils.V2XUtils import com.mogo.service.windowview.IMogoTopViewStatusListener +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.cancel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch /** * created by wujifei on 2020/12/29 17:57 @@ -48,7 +52,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { v2XWindow?.let { val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, V2XUtils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt()) - V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams) + V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams,mogoTopViewStatusListener) it.show(v2XMessageEntity.content) } @@ -77,20 +81,24 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { } val mogoTopViewStatusListener: IMogoTopViewStatusListener = object : IMogoTopViewStatusListener { + private val mainScope = MainScope() override fun onViewAdded(view: View?) { - TODO("Not yet implemented") + mainScope.launch { + delay(1000 * 20) + closeWindow() + } } override fun onViewRemoved(view: View?) { - TODO("Not yet implemented") + mainScope.cancel() } override fun beforeViewAddAnim(view: View?) { - TODO("Not yet implemented") + } override fun beforeViewRemoveAnim(view: View?) { - TODO("Not yet implemented") + } } diff --git a/modules/mogo-module-v2x/src/main/res/drawable-ldpi/v2x_icon_route.png b/modules/mogo-module-v2x/src/main/res/drawable-ldpi/v2x_icon_route.png new file mode 100644 index 0000000000000000000000000000000000000000..bff6a53df5fe206f616d1b7892518fa79eb736ba GIT binary patch literal 18544 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

5n(q6!9{)KyY3b{J(# zmRCX7R`5LTPKy!SE>O(f`oorN^7+8os&M52SvZlWy`^e)Ptj>Yo9$5?FMfSL%182w zeHGyvGUW9kfCohH5i+05uje(TQf2l3f+7R-=iUhaS%?Qy)?kSVAFFs{(Fosd=Stgr zEcTC8sIHGe@xN$6`COsk*uHrYK~sFF4n`h_PYm+2y_}rU(a~=@+85>;i#&LU;<@xZ ze@C)&3!{ZU$bm>BZykO%5I&}~wLjYqJz$`tfnb&sJV41fapx7=E;>5PO~2|6%ZX|+ zouY$|d!_q^oP7czRr23nHn)@QFA=05-I|hZRw9e;9zuSv{9Zz~Rg=JbyL478#LiX7 z^Oo!WaS7jADr^TekIK9$GJHQ$cr=XwLyx958ovaGVs|mrC3DSa2W9X`5%U@(BM#A&V&c zluo(sK^s_33+awZ*ab1A2Ig5r0BvI-(4ULV zEETE)kGXq=aDO3Z(Zvj$)!#1MUr6n5rTG0Bm*>Y+>WRR9&XX5-kdvq9Uu*%kGezhV z?H#%-B04Uog|rq430xQ`=qpgFbNg}?4VxtaIsi9Opx+j9)?BQ>LHs4*7lrYu93Pf@ ze#DLi>73R%;R&qA@*;9O`mhW?90%aKG`hfYT1dVkxiHYkQx~`4efHsl%S8`bKszeP zuM2tPyE5QP4a!$ZP7|IXJiX*;$4A4|ICt`rxD&*=N;@{`Y#SGn?M<=q;(|whQ%T|Z z9#$tm-gi_*bIwU^UEx=hL5O&AO3qEQDI5*~1SH65_4>pm&IqqSf$ z$G?h!Do0Y9xli-$OPy=E(+ z7fkH$I5}|N7!@t}8)UPukSh_Nr~N@V2@nf6--ije5k68_2ir-(qKo$x&ZVwTS9z1a zIvsI2504jZ%|p#&2md{oF0h;y(#cAk$>$(V3qws(8Ewu`oKd$HP7TUM!(PA5( z_sn*d4{pjkf%;MW)r2e@`^5)5i-$#22i(-ZSookigBJ34$tJgzTVHaJnp`OC3Y=Va zC_BZxQa@Y`yIcXAe5Jl~ZTiPK#pYV!H5>ypG$;E*1s;nz0!$ZL3wqmFcC?u;GX1N$sw7L9%6>^GB;t3wVplJIRp7T+|0gZXvB zb84J%ppQD(dBDMyXB%O9z)6$^u7;lyULCa5B-T8rIPo^XSZ*BBRJWEjyP+N3fsO)o2a?z^IztPc|DAmV-`do=bOSmW&EY0v^F=&fQ8Fq0Vi50>R$_*bFRAI6FLS{`k1ey z*nB{X=wO&}z>df1yJ-8UsCQIw9~H7lVvg`23&*_JA)Eh|><|=Vz$4U$4_8w-NCGB% z9>DhG`l5~KsZO!*>)#o@NSKc_Uc7+T` zb(Wv1__tdy8Sn41x<_&eRFun9+(XsgN9baatNFTuT7Q4p^3dYl!aA^Rs%KJjz!SWA zL2e;4b~@h|Np_0x*FqMb7YGX@w}@o2xIpvFJ?xK!cPbbsL>nIevc>y=Fv@LPN7)*3Z<4~VBzR~loKc$v!d{=P z9P!Ww&(Z>+F3SS6h&XTr#K37ieDWz#LkS{N<|2c`%c}vRX(gECu3&LmuS< zpAzzPil=B1umfU2U3BZvKT^p3&Kqd70Qz1mWQ&o)=OvieLVAnF%H0d)WNDmBqOG}J zSAqUOc!wn5IDbA#T4w4lAJQT^!i`C&2b#pkO7F{=NysnVfL=t7i-YQ{vOyuq*)+$O zrqvmYMaY8Wsh5HNIYfV^kSjq7EU^7k;SAb5{>?2IehKIF8H_h~mzwKsH0Vh}FQVLB zL|GamI(~TNfK)MV8;464R8SU8dQXze3E4Y^TwS6bKDO1Y+LlL~L!>_uqY=QqeOqCC z8t5)e{=vfBRm(Qx&_Aow-a@u=DR95TPZD33DwbMXbN+h8{4ZtPagLlyD$BJ$r&_$i z9i~A&$TWP-#fJ(>%q$)b)-LgL^?AE+BO&0vrlVxmpDKo}-c1M+h`v}vEGFUvc*^BR z!L-?Oaz^w`GO}@i1u`Gni~s-#9!W$&RP-j{Sv8&ce1=8D_)8Wv@0+{1EH2+0A&Pd9x6U%? zJA^+&kpT|cYlJKuwuV~@o8Vqj?k*fO6=RJh(V~S7nrgbvpEEcvJ9IVw# zli~+J@pE*9#Hk9&6S#N}G|hN7k?(_qs|xMcRH90j^0b*4&~UDpy){vnSWrim6N~A-LT~x% zOuNe2!u?7yu!xp4s78OU1im2j+aH2wT zkg<)M7BuC_4f-R>fw1#dFYSZ;reIgH#U$GHG6`R!NjuHTCaOHS%HCbb=OFQ^U{g2i z_?+kh;Tall$v;FODb<53(7S~`xp^*7yT<0-HnrRoIdkzT1ha-1#H_~}>0gB;9&RSN zcj*F?=CO$eJ6Om9j=tC$BR_~V3e@eq&un6{DGmaWAbHK}LP zsfUFMXufw8$NdlQMY>j|7{SN3Wu{RV`Q26PZ(uY}hyl!V+-j`MRcO+f#_7)$gbyrl zD$kGys?94x0RE!Sly^JQxDccKIQe>y#^IjoW(TS*AEX{6+_FqQ*2eWnWp!=rqwbxm z>mhbBZ|XqiJ#I0c3d>cf?gh&>F-;o()hd4WyETf9E#{%ZyOn`3Rvgc~DQ4zPQ(2Us zBjvj^{!cMlj!>SIo~PViBjkf<@{cDOH3w?u`k1DA+6LPkCBbg0qwim>pDT4Ra~+hy zRAdUvO=S}hUt0Jk`#N2k=M^e^s~hw(&bP_&y@jJbcZ%bfPbo3xWIRIucOm};ft;5d zs8&2>dyeo$!u3M}X})P2(^Temo$fFx_FdTvh~R)2?1E&*e^qS8WM3Q~C`>DkQGQx4 zptKB%o15Z&h1^3K;&|qv=2N>=7wyd3h6f#N1&amvM*hTm>;r)ea z{1R1Ar?VVG^HB445Zn8y7MySv6~q8%9$0xWvWUioapUD5MrF5f;{>8S9<6>XD$c;f zFs$`MR>0|#kw%D90iQ#^z&1XZ?jOjWR|B6{9R~~G94)u@a7{u z`pA#d-~K!nH1*juKK+5Xbi4Nav&jEA@R^3G z1C9p@oV_DVW9&K~OyDJ>@&Uqa5#|F?kvC;boFBHuI7CAhV2a@L;O5O{A%f`$GZy zGM~~(`r`|TW4K)?5?zejdfQt^o0vW>e7ojurf(uJ*fb#~F-^afuW}JJeLhs#HZWb{ z5r}LQyTk6-gcI`4dozDuQ=EN z(QZMqAhSHmY;PT}RUIJwyylHDmLxctnFOx`iUrj6@%E&#FbQ+L3bieo>cD*l3+o}m zn5TItm>#SWRrb*qIS^&j>K}ckW5jmk-6tor&Xirk5yC^Ya89SgasVec^;~Ke(X_@( z{qVH~7SWP8qp3DqC|(v84=uQ28Jw3Xa`RC0shl=oy=f{#PK}`EyIlF)2Wl`6jlA_d z?f!fg_GRH$G$-c~@XZBcA*YhF4v5v{sO=-}Nyq24o~b?7o=O3x>_qkC&2YAa zAdjFo6dGdv%tOtmcBwAfnNMx-5p};+`&i*mg#71*m3lv_7#0P%KvM}ulg>6_oy6HR z$B4cz)g-ohJ0Xc@SvFPs^_1A%g&PU^N(MUu?oW-hLGDqm3do6wHc!be6P_VFUA4Vj zw1<`zhzDlNF7;-b%(bOmwcetYrcF$jX`-)f<*hgBD=>!&+-h25Xc2K1?6Qd3ESOw) zm-mY(SC(G3GAl5Zg``Eq=O%TZ6^*-KVqNTmcjc~$ik|N)uox;Z@j}uf;vn}c@{{D` z#Zu>kuRO4q@1d{2qN~8f3rQJq0~7lQ{qOHJ03rSh=Em9xs<0RRpFORwB_VVdCN%VdC3XHvw$_EU5 zXJr($SuAxv_=mgw!-cx)^zubhfw32oGT?D{gh>`mouB@`C|0KD7i|T`T1dJYaV6^V znNci2+Xct#KmC?2R<7q4Z3V_!NXjOCz>rI@?SjemPyNY)M2xRCod1eF>PIRhj1bZ&j8`r2+|iT&PL{2_iO(;z-Y?xG=3W!q_^)==hAI z;v$mR-=(pS651)?bS#_pIV%CGcmC2-c|yJD+in`MtDu#@D8!kP> zGwZ05<_V%JzQ4201HDQWk5G1!taJrWBZq=a$I*U&|?y+m%rj`LtE!on4Z=dTT-JskD(}OC^8RQq_yGD%Kl30P0Ef|BF97;h?jU^*?q0?knjKa zB1-`=yz(>8c-gzKq6_2;UVmgd`;%w7=7;U=h7QL`=pe) zzP4gfS`q5p8jLgIj+oE=^0R3Rl(%So)yg!+l4LcwETS6dLDR$1Z~dmIn(r($`pks=Mpvp^N&?FXdwlO5ws~_g#jirPTUc)kzQ{XDAzkQAxqW*`#YWR*;0TT7&_`vp@foq7o=e0N%`L zjr6&99Fd*B_iwgB$FgSRbjnQ3fh~;2`Wye?6*%0e^Gcwz&Y){+MY~TRU zOxth}Si5;d`#AMm#UV7?Gb`*j*fNW16Zg6}D+!#tvG#Y{&s7HB|L=HgIBkZL>+jj+ z!69-`@QS0Tlhk$GafyugZ`!WV*YIjwnuI}%>m@SGY{{3WaW`N zrtDx~>FN0F9^=Jy#T7C2)YtF*9VSaB|-xL)athmNOVYy;;)$ znXKkIe<*4K7mn$L&QO7&D_$yWWiYU8_4`cV3W|s{(l2VRF?f+>fOBjmGH~+yuXAG+{dU*LjuEh!0JjMK_!$5>b&f?1+n7?b( zNkxE5k2LhVl?s{8kO}D9E*LwmbN_M^O4ZUF z>_XZ3$~C9GoRoMvSJyyHDNa1GG&T85oet3mnkvKx)-^xaKBnfH1L@PI!d)V*g2815 z+EO*gS}8f3M!NY&+mV5-q^EzQ%Lq6zFyhpBX5YYh`7(m?r6@B^$L-k>=#fn$Dicd3 zK-v{G51TkiH3qMJ*$pg9XU$bxIrZo?N5~HSZXC`&`=eds*4(n;)Z%r>>>llsh<+=| zau_4(ta({e%?k{#yNkEIo-xL>i&q^e4tVdW_Ao!S{^gI`j>)ow5mL`U1xUzkek>@K zCd$Gfhx`TvXx4_VT13qp3F}Jm0I@mpxtgTr$|N;b1#WggM)%%dRF4whL-iL2nV@D!C>FdH)0|iI&h%u(96ZFa?PnXtuZk4!JZ*vL>t!uh5gq& zvjQosR7NxgSd`16ZL9e<)Ew{0jBOJ-C{+ip-|{GSsl_T2vf-s7qn|Nr&JmA&pxRRE zcG6RF&}meTb;8;+`W@_cr^MmKvSrfD8V$V~dX*Fd@xgsu@< zm7T`vlL1DMh{&$j3Z7)`$>e0A&;PVnvNqm2c=h5Vpku5l$0L#{*=P-pO5lQ9cSpbVa~WZ~pBTUE~uesbZw{RKE_5(}2D{ySXvoo>~&02GBg zD}%7=(wzmTBr%HRWC2oE>*yfHVTTQEsjp-tx5Lfj%c@}?wsqqskt;7CxF~uBSBxV_ zp@QGO=F6F|Q3WLeiGbRHta)PcyTw!4|t*bg^-JibrLGgke1HCnGniix0C@q2y zntG782Y;YzKBbdhG$Z}@|8Pv|n*m$2P3L=YOEak*fCd9nIbj4 zv8oX^5qty*HCD#7UG6%OgydAfe{ELKZ)e1Bgp3vGnqv)f108$O3OZ`p+J zI_z{-l)z+=HyYKu)?a?qt-72+0uLx*1px~NAe;cHE1s9a7`fTSGFb7)N2WhIu`ky{ zH-@m;qk9e%I2aKZdLA>l0ZtQn7S(i$STWxgqD|0Bp3W6 z`nuAM?|4yq@!V;|ZEL&s`eiL3fY>IBVdQeb*SA`QDd6=Udzr9zYxLpYs#B%@8@Bwi zd*LNNy}F4sV~3@BnKg~ffSs-R?<`voEK3e5yjPMf^~ffGIPlisjob~@!Hy!S$beI2Vs zFMEn?XiC@yA7py_U*av#an?L#rib!GQe})T#|Iy&kKXHG?I^)w@xPvjs$EHPCY5a{dCxfLKPLk8JO#_R=A;LpK+KLfSAOsLv}< zdh+?vH1s??3XeXRjN{O!u&pN+Ulw2OlW{iY^v-!-7%~}M3TGe&ZB+aYrYqsJ

dP>ulD&gOrHN4T%CV{jITO<|Y@{7r zM!uAud|^}xgnirq+1PxkKwf>$f@WVnY{@Z3yi6Y1?aTxTX7UJ>Y2*SwZY zc7~wo$OF$o0q@4UcVH>;{g+ny{OaA%u>!@u7YU8G=C#iW)0U|(`)z~Ede30&^qL#a zqSb=s>u@3jTQgBlr&OczvNVtO0X#sh#(@UHXUe74*e__MEIiIe1se` z*FSh+&jzYRGmRJ({oDVh)s^2QSHKYF;9y3};A2ppsg_0SEI3N z{e|_LKV@7&yZ0DQ-XC}MQz!3hRcoZhz>DC==Z!ZL2fpSfkIHMgKc$J}3$EMr&e3N2 zGUSa|vz@cUYWi~MNZMw}m(?Bpb9&!;7v71S$k$~21Dc7+fGAsV`Td79h8t%!tMpcU zN^v|6qw}#i`jE&*+`??Ex~e;ysqwAB>rcFQe^>`1|E-f)c=7!o#%x^AeUBBlHE&Ce z7kN67A)=Tm<6)mb!wGB6jGnGD*REW$QH+D!98?k~u6$(n?rl5y#`95S(27C(36t={ zqw=8}9(9aC=<{Sa`77PAN zSl?$n3{RQ~Qr^|wea^2|4t#Te@lBcp&)WCjeJ?)P2aFte#Yx9Y9ym4~CB{n-HV=lq zC1?AI?c{~rvL(a*%Z|yC)%XG)L;V1#2^-bMZHtz!n=#tjw#Sg5LPViDO)KXqa1TTk z79ZjcUR0Qpu%&8weI!~@nT~9#>IZmC@%3~$Uh|TT6^*pES^@<0VCg#&$-#gi}=tf?Q=P zm2xF(6{n37$a0uM50Qgt#sQfZ)uHrm#!^|<1W7UWa$1= zS?2&^CIAE;Wemu4$fDe2#@5z#*;&v?Pr9@;9Pi_>?AU~Yg6l+YEZS||yb-sB?X4|| zkk zc$Bm7Z|Y`?ozR8|2Do4Jfx3_|pp~T~(z=P48iCBYmJ(%p`T8c!f9R#?bX@!ygv+4w zh7)?z&zCPqzx>2NdiyDTX#{ume4TjA45?=QB5?X=Od;#P_L<9UfRDmRELi%}cj^lU z3I>c&rVunM${@LAvkKcNR~@3V!Y&mQ_nA2}8|jPhnx9TMdIk%|oivT+$Ik?tZoCVR z^0oOU-veh~%9`mq2z9}zBwCHum!&LyGg9Dglq-y}srb^Oyx~&s2AFvLEX+i8l>#M#Y+)$U#+nfb*qc~e2TSRl zubG$L_s{WpIoPah4xH$0u1>;2GB%&Wik4@jEkHBOMU{+rwf{h15{oTR%H5EjLFX}O zCF=d6qh_S*-Znq=&BTMvXc2hmk5_458`8JLJQ#4k{xd8kHTorC{yPH>eB)bu1E1OQ zYI~kgW*(>mSe95oahUT2E_&mU=}j-g=Q3#f>emEJ2d0z+6vjjDJgl;z8svTQiB&#bfzaBUZ1p?-}O~dJRi)Xuuw2CC^z!a&0 zc+k=9o zH%?l8>GUPNX>N}#D;Z#8AMd&&xQ*26pco<-SS#KB^SBhEL-TJ^-v&>8ArF3|I;I-9 zbPd-GED8{el^FS@ z-(?t3`_j9P@{ni?1{%%TV#aJ#Yy}^ImOg3I9v{HAcSlBykWT1;JT(Rif;+danHYrg zvYZNjIbG`*21Pt_SxIOL4)O68A=`I2A1hR7j$-&(Ht367DM>0Mzy${z*al!YEhj%+BjEI$Abch7RvWv`G zX2p(z;qB4Ka23n!EMplmIgGWWc-RwAEvHP)bzH$&l*vFC)cyWrNWz2Pi&^1IV?HsV zkGxEu6)&-g6NmR4A9aLJRf{oowQkSn2?7LAX=JnoF1dV}u1z(U4g;|zq(FcbZ6h9A z9`Q#!YWtM_HilKb-Ug zXd`|^?>ZdD@?kReYNhY49nL2*vxOpTEK&C#V_}i!1yg+d%)LtMKTy5UnBLoc1s!RP zN!cpO>S~vC0P2vW!>DMMM*@W|HOZ#YrtQr%jC~=N(cbbtLN=!72DFr&b+tbQz(kY` zd&~h^Cx2Woh&??~3s?$<2Gy{%6JwTxZuh5H%GLip_=RY_DJW}!X{dL2>1O?&& zg9Z*`VPE0~FXYgoCp?ytba#gyt*Y+8M*nGSO9@8>3`zhgm;v}^3PK!XJI!FY(;73~ z_r%^bg5YC0-MN0RmVyOpGcO#NNAUD38gW@6iS4xG4_-7|4+YE9(MR^3ZBqnAo)e%R zU`!+e?ObwR5SP~p(3zSCg0E;MKED-**^slM245$vqM5O9P0qM1raHN_$((3LQu^_w zFWC(tKD(}+M-clv4@82BTlS9Oi5O;;euJ|)&k?u(0w2p!g$bgM^N?_8Pd*e>F!XiM z1r43v?%qX_M0iXmU9(~Cjvd3>Gy{}E(Etc+>SG+bo=Itgib|I@{&JmM(QGr3Jdz_2 zb!1>O7N1|>J+uwWW*<%oTg+p6_+!UDhYIK|%$N~#Of_?;1k2zka+wk+$Dnm>M13?a z9V2S2j7K^2wDu(?T`%bZh&>-?l04ZDAf!L}+PdclUrfGC&y;m;mt#ZTaJd zZ5+AS=bGt2$YR55G{g;F%~w3|l+^zv04J`Asv~U^6C(M^_FE;i1`8;aCZk z!8>h<76FEiJG7gmYx+**(nb^+cEAF{9}@!$@(i7u4pv6ZX+#g z5e3a)it|8-bI;sxNnn9mRfXdfj$oq@v4mh{%gOQcJ_Wl|kDleX(%DNUSgHwI|CK|3 z3)FKg5k>}8I1nLA3zPwya2z>AS`rYMZS=5p44a91`Q}-2n`w(?&3ydL%x7lB*A4kvzlVzu06z}7o;=q+Z{Z-BtTqpqt5m(J49KXk^^Id-p| z?D5C_S3UJ(IDAc1U4fPR2GOFT7PTrZH1IhCmY)U9;A1IL-Gym-_q0>iT`>JY*-c?{ zKuHkqq-&m^yS=shagg)ODY=001T1zxUMO(JM!C7NM0|`+!ONZrb*&s)+H)ll52P9L zfmpciX`gBJ{CfD=Z(`?slUP<_1yu&k;4Lu=ysS87*k_vft$}y1U)FQ$L4;wh57w}> zJO0zZIec$(?<(*&iKY%D+dnhQA7*i;IZFf8GNp23<+-?|G!s4#wD*FmxKVuC^EQe?Ht5+z64y=wl!)gun&piOw};hD zeSI@;;+>Z4e}|jj*+lRm5xiq|GxF2vJqpDSBv1|&g?XtEBvecm$YjB<3k4PY(?=aF zC^66|H`2zkcfJ+4wzDFee#mI<08RoKP?|dul%mJ@$J3@yJAd8Efhk``7~s^l=4ooW z`_&rw&;!S&ef$0z*VlMT$4VK6N&QTCHVKNO$sW0?d8rQjG;PFEJrjMDZb@ zPWWff=0&9n{+qoNO)NP{>C=Y+xYX=nwmQw|`nQA27i`Fa-;$uK-?}YWdheAe?iFKK zJ)ynus$5;ToILn(2+BnhVTFRZR%c9r5NRW1Zk+DGp&n&cY}?alW6jf+JZjw@N5p3n z2TSPYmT7+VHLc=JaF!h;QJ^0f0-w`twzhp0-^@CP!CJFkMFP)yO2*@ZhnX{-xM;Vc zlvu)c_*k({;S@TsxvhI%|G5)= zZ$DHg>OIAY#AEq<()Xu#-}f~<7!qTS4A0L9ggS@~c^IAcqz@MX~o-vO*^RJWaa!m)2Je?`m$ zlWz@qa-A&YA*k7EUctn2%QSdmbCb^kxwuLU^|4~pnyZvWaUP8wi+nblFljkm@||`Z zGgkn@4XJuT`vjAbV{WG-ukbHD4>IC3Jo6)(j@h6iyt6kvJv% z_{9ywqk9K!5}*g)JV=NLGcS&@Q7DXc{Z6eiSSh%v^YsR1wg;~GoCI6Jfg@LxNiN_3 z63>cX%j-qJx8Z{CJuoD9ywD{!|0zuOLzy+_o3M_9Lh97BPX_+;{srF^ZH*2MT=nD) zhB5Iryo}Mnl}xqZqI-V?2mhbk2cS|#QLXs7da9j@03H7G%LuDW*s)qPp$=ZM<_S%5 zv(dzHEIl)qyjA@ed&WP5TxKrG-MACMJK-HW_pF1~VZxImKkh34t}&RBMj$yT7(^f? z-x4#Qp({uw3>%0P9hjL92I=rGx#Kf;xp#Xvk^}kAcup8-mKzr17YmyT@A=~G%O$hY z>+qo2p|iTuZ9m(QzVirvg_cc$z>0lIo78x1G=V)x^4&l7{;hKwy~jQLu|vn)spn7v zXYpl^_6_fOVF>TL;5}lY0Md#L#2Vhg>7=db8q+!dYon{6m;fPC$5a%g=nfp}5!)uQ zeX<3f<;7%`ivqT$V(~>W$m36Hp7n~^>1}wve$nC6r8nN@fBs@;y7)Hym`h&ut|e^C zE!!!6hD^Vn9mzJnB->^m+I{RJ7qtJOh);xtLPgqP7yMil%8#RGI|H%km z^kG_$t4;mK9MxZb&$;a*$PL@J+zvE8FPWPTLJS0vMnKUsYOQ)|GeLIJwK19EsUOE) zcCM3s@Z@S%6cbl3p4B}reH2R-Hrk=X=hW#B7tBg${Xt)PEex$t~iY^v?n z`*&y(44;l+3twu)78J4%o{RYKi_QWura{ilnN>P!!>^x3t&@J{gCLE6;>#Qxw9une&1JD_d+}3Z zZ#ZE#4ljM_6)&FY9!%A|l^Dj4ZTNHKY+L)}Pcx0Cx7_mU?B4RCg`CG?iOGh8lwgUqt8jKI7OYtt1ItCb3cK8A#|AWFrURC>EGk;2dQ8dxI2Tk#-0ZwR#BZzt(>dTW+(wCYJHJH6Ezoiy`AQb2@&-_Fo^JPFpz3 z9EU!7JAoRGX%~iIbcPbES$lxH!@@GRj!U#aF`60#10RCGB&%%vEjG&;ifw0Hj=gC5 zWY5t9DAx&Sr16SHP0ff-G-cwsF1yk6$KCkp(X*O(##XBpOaloeKrjGUhP)Fj__o^3 z1-A+u#{9SZ%%gQu<)OtIK-*gIJz2%?aoTMy z@Q|Yqc}VTT{U;I$w6lJ_(bTTcVC@)*ZrM;OP7Kv+y~^Iv;=AsOoF7fczJMT5U8YxQulbK~uEQBdGwaTsHGk;0Dcr zWRC>7df0Ttb{~QD9R8Hi^G^<^HF&w2`7!5GBRLaajXrkXH2gT|^z=r&H+1Ce@>`W$ zq09p@*H_}e2}F6ed=yEQzWs|`Y5jA!N@A>$7f5%jm>Fv1Ccfuo>M;RCh(m`Jx?J_S zw)7i*oW|QpeK<7X7rUyepD=3PX-ry)wa;J<2J&%fLxR5u61^!x5`H*^X3xM%x~>$s z6gUnCdr-5r&+fx(MBgbq>6q#1L#Nlj65xn|jGm1k9StmACH>Wd_=>9v)2@>X=l*G} z6c`H#$=#%$04NE|eUUb0*^+BDaeIt~*+?7lM^#lI39@0(_os0k=K9vYYJOZ&tXQ)Q&y&$pL6O>)nrLi?85i(-N$&Wl?%bx^h;IV|w z9gptTmy+VktNfN#{uUy?I)*PS#Y;LEfBP4^(-Y6*(FbD7z58-HcjxX@gQx!-8$)BmCVcBo{?W?Y>A;v~Up0+IpBD+@5P1M?s`br^&U*poz~ zu3@q>e&%WHHs;9fs8_s*LAkC#V)705NBF|wPW))D6+gcIIkt~)RX&4Xi~rUm{3aRw z8io;0gCFr}v3Xp|S+c?oW5U>?1i?YP0+j0D$v)T5^@!ay?OXU`v-lOqMzuChMzHW8 z2u>$x|Rwu=WjdElUS!u7_ zXenRRhP!%^GTsYQubQK5xn6F$4Oo? zGO57MvQVYHf(Ik8iufqIXFa}#3unA(=j=}g7|R@Gcph}bbEmW zcs>UZAqVfkDwOdse*(8^@11vEn#Y8UG3gtfMrG8jziM}_z*|miDu#P zvfmBhANWa@y;lco@1DPWBp;Wx2$JVS?Ah z_bZ|zY5L5@nfME4d_3KY;XN1%(2s3&pxKRrMK5*tNFJN|a1NfZZDmO&HD^Ls1qxd# z2Q8HdRYs0Q9r}^8^urDNbV%X^@X!?J1Rk13P{FVM48MEeG0`aeMX_vB4NEyw*JH5B zb7#Si-U7g$Lw(O%rlw!lkJ!-~%^8jA%sdK$KaPtVi+4K`*byjWK{16!Ho>j8;A)yG zIZ^2;8re`r%xo_j#f@a>qrk2cvSehQ?Q7hO3EQXf>-JARKVpX@OoknzZ11@9@nQY) zy>d|~fx!@Luab`ZU5&1HuU*=ke~>tqnPOOf z?UGyZgDIC=oaWqiqbOhm?|=XYK)Ppcpci)NTW*u7`85F16$ZHJ%IMcUi2w%sB3ln_XvG+>4EgQ|pZ37=)hd*J` z{GvyfbpkXym!yD!Q~dWsne&6ezN7<{ylA31w$h31^14ti1K;j`%|6QuzG+$^h!yc0 zq!$S0)MHMRv$+RPzr)@f6{)n#Ijc5dMubm15BvVXi+cZD4mvjGwSyVM<5muyJTfwR zf2-B3|6m%09xMYdmXeuKmRGs!mg8*iwq_+vQ)5V829m(5`7R+}jzf;i2kL1U`mQ5; zlamuVqz$69t8q-uJ%#dizIX~>n;c)(^NErRi)*y%n)a%pNxrnKl;m`R4S&dY+tcgs z!50tlEg-b8fP>sJUGhR|tBkR!Q8x$b2Qb-#PjkpjTo=eK$MOqZ!!}#eRzUQ`7JeKo zYh3zai@ktWp%rfsiEWB`5Sas+D#X_ix#213=sk5R;#~o6K&5CNC+w6hYrXwFRkX@DmPqf^F zc0u4uS-Fuy{vHqBo&5qPVA7w=mu<1}j0(;a$VE4`W{hmx@Li~$p4D?enUjm>r7%J0 zMbPAybeOvybGIVL~5qnY_uM?92;J(MRCdGT3@6amgYqe*WYOuR3z( z`3L%SEr(S1TTMg>#6L4I(rW!T6lyM$iNwuIj6F%Kh(ul=O-xDG*su+A5YoXod~i&f zER&I{X~S$UuDP%ET(6tLhR|#y&RV#GuuMvhuKiap-817yP=Af~bok$a-R^rvjC}zzLrw_o5n;?u$J_ z0K(@)ac>BPmF@eR zek__=XVEpb8c3&*Q{U{vmYkT3dQz#Q23!8ihnirM2MEgezdi)np)^kd^s(}{R?YO$ z^~+}c1tugzJJjD>=NbLI;Y|vJpX~1&ZjF2}HLFWefTLK|&ca5fRzMU2#nj4FIa#-& z@a|1IqOIuE;(s=inT?HWpDMWP6me|AhXbFPF{}6HwePLsLv5P=PTN1|M2wdS|DM9$ z)O;s?pyu3G)jAo4#PyK%Sl8*RCod1eR-HP``-gAEEch0%@zAfTKWI1V3hF5;;!`*Lr@6-Kn`}o$aPu}y-MMxS8 z1`honjkHusut^fsiPV6g9=q!c0UH{Fhkdn?r051PjZ@&2B!%JV?Pm)fbV))FG@ys< z1-~&S;2r_)$_n{s~csG5`9Q1MSIly^)MTVb7b9#2KX!S8qo(u38ad?p@N&~>P(bWPtYsd=qYk}#WCSp{ zSq+HG8BxH(VRetpL8Uv`4lTRralC%l3YIaf`bzuYmdX^vU`P$F5F40MXYWlTYtKBH z1Y$7s(F<>HRHs&WD6Hc}>hiJM&Q4{$3E0?TW*Pe85Dy;qS0Txm`TV1nY6^(q%YU~K zZ5_di$4TZx4_K7^$zI(F_KC1CFSvKJ=E9ud4XX?kl3<$rG#rH}%o2|{U0gDd#f$0sEW2h&)Fb>Qer zkT{w$QZ&kkq5U)|_v}6_!|FLmZKIJRu&~x&eb@-7l4R`m&!uTw=Tq?C6tfOWnvC6e zszf6j8hIHy?Yn2zC&#a17^SYhTSu-tc9rW`HyOmrrOPh4s5ZU*3k{}6DDy5}AtUE0Z$ zoO{;>r6Y-DNcOR{pVhsuIztDL%n|ut9yu%#X_g#57Vbk>;gdYTGdRXfC#*DBE{YU$ z@I<3Avwy3|&pmX=$Vg~~1j6F|G`aZxEh-D-=13f-*riHoccTWc$b$dm=xan5-?u?0 zoM1q>X)mYAsqbE79+G7BKW~Lkl4|6d4SljtA{-e;?mqV|X;}pg4i^-D`og}c&be2a z(KNjh!06#r*~nlyYSgN&JkZg}ZEF{ay zz{<<9aPr`c95@oOL}RY{%*KyD3KTYPHrE5kT!}@;AtM3x8Iho)$jjZk4f9CY%(4R~ zvBA*t%dSakQ_CAkqq|h;_~rI`_p0%`&lrm_t=bY>D+Of(hkg|&3PSKgtveqVhsvan zcC|FHWYe9e;xeqcv~+;0$r?yY;n-!vAqPu$2utZhCr4oPNAJuoP2E+KgF(6S}m+Kg@7+?L$`65*TYE`olh`_L#|vQV8k*!vIsm70VD%EEt$y} zB~I-QV!VaKhXA#ZAhP0^^H9UEeZR@{l+zKe+iv|YY%#AS8D4(rd6K7-GiO0&r>mlCIklbF(yE=5`Pj8Hv)$bBz+w?z(wWi2e%~8Z^Xir@t~9Ns#i!( zN==nkK!K3|ocy5OyOI@eU!;B5PS>cxE(Z(??+4@{$c~VQ3`!Ux^Cn<*q_QO3wvc8@ zNR?0qPMQ*ez}<#fN|AZQ9OzEsPO>pS2WPsODx-`GdS>X-TOQelrbX;JA5sL3i$_9r zIDE|M^x~h4LhPxg$wv<8P4*e&MF5@9M$4-_5s_HPS-S=eIKmKtq%h_je;UN={6|l2 zPa027Bxn2?PosfFi9;Y%(KZXL;ya1j*yI8v0YT{N+ys~lMu_PJ;I1bol#C)Z$dOZ4 zk}+mL1mM5U2`Lx_hmLXq08~ou{q-bPk*=iICTxbHF{dvfGQLu&v+p93sv}KJNr`h} ztD$~zb4`}%6c&IIk&p!#Iuc^ml;Hw;dc(`-uZeOI%` z5*)BIR^GKckmbgdhLIxd>9K9|kZ0Uf2p_6XB66cA}NDNNSc*2mdO(afAc9c42T!>E zg+{Hqdwy7;=-+d%MMo0MPwQ z!r(;0`JI@xhK4cXPh zmnNekIo$l<7@X>wi&^CrVdO#Xqoy@+bm(%Q^Vqqz1#k8=@j$thB=Hca>7*hz8!T*C zCz6fb_FqF!U>VB0I8ESQB<1;8ht7E14gsL4Dw7$`10&O1Yo2lWtc7I*ncAzhFu1Hm zGHtyB?|)^@aXU7Zi!N14!8!HYglP9qQF5(mG>l1g&s`<5hKZR+du zclezq`s7e&%nOAZY2bZ^-fxZEbn<6i$~uuZR#lIlH9#UkQer`gPPi1KdR@aoM?!EE z*Zh0-?oO7!t@VCN`YjXnx<4Xl7I&)wZ(tF%5mee9zH#iLk@^NP3{Hg8$;-Lm?<1(CJzo zGMlk1)ZjOadDp6jiT;j_5e67V=f!1>@kky5FxC$k?$LF)Z#+u(*s&+xm~;?IIQO549W`MWzQ4J@V+AKn$3DJs;8z z7;+OYBWf~nph59n558%^o8>8deCqAB|ANnx#7+o=D+JGA$ss)Cj9#KbKgu~7IP$`J zn##FY?FfQ#@i-rpAS9>Ggn-qF*=YrU7c`H>vXYo|llte;X(GBGc%XByd38vdf^+XPAS8azQ~tI{ zlHB_Y-dI?`nwK2tLXy+OTw(0A(ZVra|PvQD0=JUWYiPq zLUz4vHLF+_)Lj2v4~$;-=N}+Tu{f+K&-DjZ>O(F~fx30K`XudL*Rw@rBZJle^ul@AB^Jm>L@?V|A z(&d-^O?7J9xqimyAz4q7I6R}HmnlUV5BezOwr5H`{fDjp&S}r8;Pq`^R}zblzI1W> z)b`&s>W#%3G@Tn&v}F7cElB|(pA)bSSlVfVX?yR*Be$M)u1XfRU1$<1?gBR_^?D!I zwb)TvTB{p+ntgER0a8eYtz5Pp<#YDc2J>SD8BroV5qrOZw3^N8f^zCWF$3 z@(YvAh|5vS$OCI?*&kd@d)Eg5y_lT1w9<3O$l6bT?DZw_rD>?Y`R;o#vHJekyI-s;3m zLZicjcr*;1W984ry&}gT1kX` zQE9`23W-4JILd-PlG9#Grgs@VnFFoamss2gb)!+jvO3R5q|(pF(ZnN|SJtNRNQNaq zt&E^%BJ@6@bR@w7*%mSc@eaCuYa=oNk*eo#sO^Eoewo>w`_by3x>({q5@oq%IS6uE{ z$J+@DoC;}rAGJ53!Y8<2KqVK9l0sFA34ZmebCp zNF#|xHT_b?Z+o2Z?!`$P-&;bd(TK$=G4{R@J@`95a;iBvzYX}SCE0fQJdL^u~r(@iNBCQXka+MA0Qx`2@kDl8FKSn^gZ-j9 zb*${z(i2MG;&x~}AaT|1Hruwz-J-!THaAw>^0fFDJG>j4wqcr(P9$J|_F(FAakjiw1*DBK2YfK_rLL{OeCPf%s#x)5< zMrV%ogi%l8Gr31zm`omd5nn#zKVZ&yZ+|!tc?#rY$sGVxlx-d4H660;K{>Kiny7@J zM6ZtB8I4@8G7|YL!NBxBg7GCf@qFpdPw!UPRI=nzx!6Nr4swq1ns{$VwKrW?Ds8}- z+JZu@dP8|-dL3C8(g6$l(0eoI)WlD%pOKRuPkekLg69#b(f;}KxY!dMH}(omG}zV+ zD(lBG>Pqdu*DmT z2$nBjMr=RIuK~v=GMHNcZ0L&|EK*rpJBo#V{F-HBrFuu#*~H0CDUKPK1}Djxj2NZK z64T@<#Y>ddCYVLKX|fp)k34J)V!q)M6@vSmtd3dWW^W;A`ZX zkAI2AmPF-0F?daW#_JQzVoztPt zT`Grfib)cqKltp{v{W819x`=w%vvgELhVg&urD%KSZ%TioXt54zj(>c4Gh+FnveBk z83EESWCB?=S@agM!zNtCmih+vsgIAYcLlA(q1K3a4AYr$Qq*DOBAGi6x-_}hzhfaV zkIad^A91*?s2oQLm5cor2@u30YIDSnH+dci z9YLb&%0genrpsX{^A~OKm5eo~@LBRua%Y;++y673mw*9D@M1Ne^MKe0C7q#|{lCR| zKncmIylH3ejcCb&a9u753M)N}4{*eM&jU&ZFXG6lt#%m`i;MSTu_O;rkfGr+2=OHB z*3oNLof6Zq-ITte5o^EPX5OT#;^Kuur1Q=&Qc z+;eS#yU=Kv1TiDuKjQ=V(FIK;c0@lR0_o^{dV)dM0!LjAXZEbD88t$4Y^R>?_&c{` zj!Q6&g>if66W3o=pWJq)I2W{=Sj|cTi~1zU1#5jb4G}}&vROF%%VDIPtvJPOdXX^wLYd3ermcVQ{jXecWcYprrE?Xto(q!K4WD@XP`x_(3?9wK zks>meSiEnw2P@r3$ENFq9s>L?b@hL1Wc5n0(y{e_;p5qN ziMlB$qYfU>aE!>f5m~+5wfLO%t5;m!!p*!yLN_nu9H4>I?%K6f8^63hz3t-yYYG-p z%FJ6@YI`y5>^UEg#f2|j&OyIJ)xSv+JM=P7z`*h=cEvG&Ii4i{P<>|VKctP?9(wh~ z0l*6#KXs7O+W}*v#6F9eSQ{tqQu&2ax$_}hK;Bnx>-ZsW2u1n-!RG(TMC`h3b$2bD z{8YU<{Rw>9^G=K?o`TMgh7Ya|wq5-IB7+MdYiuJUYop3dgkU3k*a)YYOFK>L34Q_u zlXOdYvT^Opcc0;J%|`rhY%|W}4f8a-;;Ny>^u%8_Y7-|Wjd~w%GQvG%JRlN*4HQP2 zABs7S1IFU3Jb%YStW6Fl!uZvmH`~El?M+WUYMhgO@)9rix$Rvy2N6l_0A;ABd}D*XP~x^mBwGhg}kiSxdUh*@{kw&Biqb4#{4?SnOke-HTTVd47Ko<#=UU6oW;3 zy1VYf4aEByn-XA){|q)H1)an$DkiOOUx`g_5RIJn!j}zDU=KROMD{sM@UKk5EdDJP zca!c&6W3+5(_1*DTn301$gq=^`U1 zAO=b(K0eYOx(=9A}uY!UE2f*2YqRx6E@vanEqAxbvVpqVvPlPO(H ze9*B;1zxCe5z?D(+wkPj2{+tG)LbP;R{*AiM_lm4znA-fY>!};9B@vAPag-)vX`do zBB7dv9YgIYBnNSPq0Nb~X5d7lRB2x~^4(AWu^FJs7n(E`-U-(yUVDb$+!8l3%d(S; zA9qcUCe2c^K=j1zVG^gs6A(&>oJ;f&YCwt)`JfT(f$>3gy=HFwMy!011670HV}UgZ ztW@xT%-itD_x?-Ulb()J^6+zfR?D7*b4P;Db=2CEVXq}dgwUnq<&LHMtiSnVO+U|S z2#W?)|3|;Iq`kKBIsN*aGRt5`393;b=Pn2zHh2(c1Em-pY##u|lT83SnO+WRVbGbB z4qV2cMXIsUgV>WNio*xl?QMj_ysxvIymQZv0vzUtN}(a zdX?ZZSr!OnkwGq5nw7_^T^)OFT9f~!S(=B!H{+_+v6t$#`r>$C9gqze_{4$k+~GJ1 zHe$3WwXAXT!U+m-ao_?n3&UkTkWAQZoSC%_uu9@seGxczm;ScoU4PJ-9E_)Txza6c zsfh_Ond4Z0C4LS5_pkA%iLzKjFj>e91|=3m{U$L4c!;CDZ`a-8?>Xm|!%S`S{dkCH zafp(EiVFsktyWK*xZnqk49h@RGy!5n=NQ;o-Wi5E2$frz$dEaZo{DJi1jfZj@Ae() zNZyG--yhGhmLX?h<%7-VlY(QnC#XgHAAdV3lb|_}3n1f^Ps-iKW#nNIhpeTin>Ywc z>h;Al+ehz5>kxKX0(|MROE0X=YztoU8ZC1ma zkB0AAZcjTeGC`*3z)y)CxLarP&ON%4J$9b;<7_uA)EZ+!nCtSVnf~U!@VtvA5+edd zXh6#ZVvvd?ISxdVk{{>wUO2MmM0rL_O!Cl zmJHiG34%7PPPE!l9_$gp;_g!Nb`1Ezc=e;*x(Hiq)$5R6`?D>{i~OZz8NdQTPG){v zxo?Fdl_y9&emx-RTDtq#4M)8!ho(|8b9r69VyQ@(1OWZyR|rMPY=$$e#chss1@k1E z|2!ZUh!ewxJbNr@$Dr$>r4!%%ViA6;`J7tFL$t2fbCrqatcvyurc}$%aJBT}COR@% zrUD@9xSj!eahddq_2>;C=GgE%JJQCl$k(>;GvZb0(vN&&u-4du%PFo}Jr6Jlr;r*( z+E)y*vWm@>lB%=#@DlbY!!b_oO%;3}ao^$2+l{u*8uoiv9eP)#} zKYxBId6_@{C<9Gm!$<&GSFA+kdLBY!eB1?wut+WTftx*ifw?-hywa#w_wvJu`&66` zJO@%@qYVfh;}f7%8k9~3B`6jrV_5r(&A6oOOx}viO8$hQAO8a`4m55Pz&?xD%^i`< zzOg_YAOiz3j}J}$U7i2^Z1gQxQAT!AGaHPYP}yB1wRfPB0rUh+9tIUxPmS7M6|DZ9 zg#~&-bAySV%1q}NkT@+Z1VbGfIzetFghKzsE0YOdEP`vevguF>U( z5Kcl|JSK??9oAYh99xtNhIds`yw+Z@Hv(P~1Xl*#hCgNW`wcVlG8iyWigDKD-&Pvv zDJR32DEacCPnPlMVt`p7K@9%QVh9N{N-B~^@HWQCHXM>##1z2L<{k}apGABcV`!^N zw<5G=+%917gI)N;75K$2{4A`ohDxCBBbo%?W8AMMg&zKA33?cuJYK@04oa~UJX;jA z6WY<>n+j^>A&x&}%47MI6e0e3hx>qFX$|Vo6f?8)qeP%GIe~`7qdH^w(}!(8BZfk$(U5_m$Uoc>3(A3U zLbgd1>`3A<*kKF?0w<2eYvWU)bE;AflRhA3uZGYEIVHra&9CrnTi)!+3jy+yIK1S$ zZ>Dn$>PN6Q@eh<5MaC^bDQ{2)S0?v3Jb@?{v2nfAP%rHu2-G4kmme&ZIy%1})J~8i zwtNASL6sS{0d5LJCou$L#4^Fw)&W#58Cd!>ozi)SwY^+KfW;`BVvr`k9<9o6G3(%G zUw8Aby%pv9Ovuj6W)?>y^^Ut`xva88mKnR80*9jc>tz*1&%R|i}{7vyFl zcs0TUYWy`SXTo0{I{LET;OT7q9Uk2Sf(m$=#1o+>SDK@^6XgZAU@wsTL^kytb(-C@yzJop0F=z{8A%HyB8gnmhpJH7-AzeA-<|zz(J+nUjR@gl{JEZeVqgu zFYVf-##prZUql7D61$Q;Erh8-5d0e7>*iOY@rB~>)o5*F?|_2`pR+Hkn}vkw98G)# ziBQpT0xo7<#5j**)VdHW&C+_QbMaxW4imv2$1Sz@pW_PFe)tJ{fICrTG!8`SfXm+& zU~q*5bpglG877Eqf+YY7QOMyuDzUyBSuHsJu3KGx;a;zvqAMjhUx!}|2)}$Ea|;DG zULtPy?KL3*>Npd|m_P-L$lWNjDR(V7XZ=-2KI_o%19=o|TX*+Eiw^u)U%fW{9v@h} zgpCM|OZD2(Lk$SvloHuUgCc8$4AdrciH|!TxZ4?AIh~6pXnQx*_!F?WTpjK!%U*|_ zL+UN~+X=sXi9euWzF0dyMWH|uafz5$i9tpQJN62(3Q{*7SKyEEM4*eGf4F$$nw4LT ztb&VJmMlHysw=CL_$zfr#wy%D2$BQN6|C!A*y)c2b*77irW2EZp^zNJ@rAZ0;$lcu z=d~%ETJ(fuf}Zv?*?Xr-(t)?%>Ah$k2O3f3;uBi4ja+CmGNLaZV~WGzyOD7?#%rj{UHBF5)homAb-D%X$U`jF z_AV#f{J!e8vHKg1I?g2#G)}xJm>^J+LN^maL7kU?3k}u8iO1MrT*Lzul83IKHqxjf z0A*I3DdLiuhDt~Mk#Vx#^O&IC3 zy@>Wugn<%cu56A4Wd~vqzx)G%slN}{K?VPE3T({N5#!|gbVtiW3IlvUY%SK1RepHNLGBuUvOan z%_?{e4JeGjAZmxLBt=||HIRt7*}()59>4uk9yVGuEEl4|HNN~&(JNXS|yf~nN17R+`z??K&($rE4v&PfZU!0+h7wK zDvZ0HR4!HuBM_U^2YwuYEA5YtE~@-la_Pdqz7;XM_XX7a8rRa@*4AexvOPqCi(<}s zh&rC6?Z)EOW!k|uRyrp+=GX&F9VXIU1}Ybz4p?!h8;K!+-Dw60=H9@4K_~ub#MA4J zS?JfbGSb`>$Kr*z`DX@dlbbKY81*(M=s`!ByU1NNO@b>>2dp(h-!YLO<_Tgp;=v_n zP%24)un{_$PFuFc>QBpClg`DT8(qD8UgvYy zpw%9r1cr`q5f6U~0$)tL05@V^2auXKq*xYj2zL`{|M9mh>1eC{1^!~n>3lT336P7% zI#O}tW8iYDNfMfl3j*k(b`zEY7Q?W@cNa?S-Pcc*yUyQy)sY)T{U&S*QN9Tt3oiKg z6dJYdXW@qN=tgb&4>2Y!Vu}Vz>?25MdV_Vmq|ptc7=w@8EA78c+dJ+|OI=sR?}QdY zd{ep}*_+~Qp-z^bx^}QpDIbL2O?w;OX4wxvl)q0}ujB7jH@b1v*aca4if4jk*h}dI zeurs0=5Yd_;%%>|rIEB;c?Pd1(^BWZq?OWRuU>J)=t5(7v+(~HiuF6WFZZMQ00000 LNkvXXu0mjfi**?n literal 0 HcmV?d00001 diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_icon_route.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi-1920x1000/v2x_icon_route.png new file mode 100644 index 0000000000000000000000000000000000000000..bff6a53df5fe206f616d1b7892518fa79eb736ba GIT binary patch literal 18544 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

5n(q6!9{)KyY3b{J(# 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

dP>ulD&gOrHN4T%CV{jITO<|Y@{7r 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 LNkvXXu0mjfi**?n literal 0 HcmV?d00001 diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_route.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_route.png new file mode 100644 index 0000000000000000000000000000000000000000..bff6a53df5fe206f616d1b7892518fa79eb736ba GIT binary patch literal 18544 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

5n(q6!9{)KyY3b{J(# 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

dP>ulD&gOrHN4T%CV{jITO<|Y@{7r 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 LNkvXXu0mjfi**?n literal 0 HcmV?d00001 diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_to_nav.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_to_nav.xml new file mode 100644 index 0000000000..bc3c6b0bc9 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/drawable/v2x_to_nav.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml index e6ffe54e9d..2eecb6d0f8 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml @@ -30,7 +30,7 @@ android:layout_marginTop="@dimen/dp_20" android:background="@drawable/bg_fatigue_driving" android:gravity="center" - android:text="@string/recommended_route" + android:text="@string/recommended_Parking" android:textColor="@color/v2x_item_white" android:textSize="@dimen/v2x_recommond_route_size" app:layout_constraintBottom_toTopOf="@+id/tvAddress" diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml index e6ffe54e9d..047100fa04 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml @@ -6,18 +6,15 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/v2x_alert_window_bg" - android:paddingStart="@dimen/dp_62" - android:paddingTop="@dimen/dp_42" - android:paddingEnd="@dimen/dp_62" - android:paddingBottom="@dimen/dp_42" + app:roundLayoutRadius="@dimen/dp_40" tools:layout_height="wrap_content"> @@ -27,7 +24,7 @@ android:layout_width="@dimen/v2x_driving_width" android:layout_height="@dimen/v2x_driving_heigt" android:layout_marginStart="@dimen/dp_30" - android:layout_marginTop="@dimen/dp_20" + android:layout_marginTop="@dimen/dp_56" android:background="@drawable/bg_fatigue_driving" android:gravity="center" android:text="@string/recommended_route" @@ -43,36 +40,23 @@ android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_15" android:layout_marginEnd="@dimen/dp_30" - android:layout_marginBottom="@dimen/dp_20" + android:layout_marginBottom="@dimen/dp_56" android:textColor="@color/v2x_FFF_333" android:textSize="@dimen/module_v2x_event_parking_text_size" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/tvAddressDistance" + app:layout_constraintEnd_toStartOf="@+id/ivToNav" app:layout_constraintStart_toStartOf="@+id/tagEventType" app:layout_constraintTop_toBottomOf="@+id/tagEventType" - tools:text="停车场|服务区地址" /> + tools:text="前往 xxx" /> - @@ -81,6 +65,7 @@ android:id="@+id/ivClose" android:layout_width="@dimen/module_v2x_event_button_size" android:layout_height="@dimen/module_v2x_event_button_size" + android:layout_marginEnd="@dimen/dp_62" android:src="@drawable/v2x_selector_icon_report_err" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index 34662993f3..6936631ec6 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -218,7 +218,7 @@ android:layout_marginBottom="@dimen/dp_10" android:background="#3100E2" android:padding="@dimen/dp_10" - android:text="触发基于目的地预测的道路事件" + android:text="触发基于目的地预测的线路推荐" android:textColor="#FFFFFF" android:textSize="@dimen/dp_22" app:layout_constraintBottom_toBottomOf="parent" diff --git a/modules/mogo-module-v2x/src/main/res/values/strings.xml b/modules/mogo-module-v2x/src/main/res/values/strings.xml index 4a6f565066..386b36333a 100644 --- a/modules/mogo-module-v2x/src/main/res/values/strings.xml +++ b/modules/mogo-module-v2x/src/main/res/values/strings.xml @@ -13,7 +13,8 @@ 诶呀呀,没有查到前方车辆直播视屏,过一会再试试吧 已为您打开路口直播实况 诶呀呀,周围没有可用路口实况直播 - 停车场推荐 + 停车场推荐 + 线路推荐 26px From 842aaf41d08119ef3bc89a741333c843620d07c6 Mon Sep 17 00:00:00 2001 From: wujifei Date: Wed, 30 Dec 2020 17:58:00 +0800 Subject: [PATCH 07/22] =?UTF-8?q?new#=E5=9F=BA=E4=BA=8E=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E9=A2=84=E5=88=A4=E7=9A=84=E9=81=93=E8=B7=AF=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E6=8F=90=E9=86=92=E3=80=81=E8=B7=AF=E7=BA=BF=E6=8E=A8?= =?UTF-8?q?=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/holder/V2XRecommendRouteVH.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java index 1a9e694a18..7ffe211347 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java @@ -8,17 +8,13 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.NonNull; - import com.mogo.map.location.MogoLocation; import com.mogo.map.search.geo.IMogoGeoSearchListener; import com.mogo.map.search.geo.MogoGeocodeResult; import com.mogo.map.search.geo.MogoRegeocodeResult; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; -import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XEventShowEntity; -import com.mogo.module.common.entity.V2XRecommendRouteEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.utils.LocationUtils; @@ -26,6 +22,7 @@ import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; import com.mogo.module.v2x.voice.V2XVoiceConstants; import com.mogo.module.v2x.voice.V2XVoiceManager; + /** * created by wujifei on 2020/12/29 20:39 * describe:线路推荐 @@ -55,6 +52,7 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { mogoLocation.setLongitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(0)); mogoLocation.setLatitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); getLocationInfo(mogoLocation); + registerUnwakeNavi(); } @@ -73,6 +71,28 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { public void onGeocodeSearched(MogoGeocodeResult geocodeResult) { } }); + } + + + private V2XVoiceCallbackListener mStartNavi = (command, intent) -> { + try { + triggerStartNavi(mNoveltyInfo); + Log.d("V2XRecommendRouteVH", "mStartNavi ------"); + } catch (Exception e) { + e.printStackTrace(); + } + }; + + private V2XVoiceCallbackListener mCancleNavi = (command, intent) -> { + try { + //取消导航 + unRegisterUnwakeNavi(); + Log.d("V2XRecommendRouteVH", "cancleNavi ------"); + } catch (Exception e) { + e.printStackTrace(); + } + }; + private void registerUnwakeNavi() { V2XVoiceManager.INSTANCE .registerWakeCmd(V2XVoiceConstants.V2X_CONFIRM_ACTION, @@ -88,6 +108,4 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { } - - } From 402002bc7fb3ffd90fb10265dc333b18bcae3906 Mon Sep 17 00:00:00 2001 From: wujifei Date: Wed, 30 Dec 2020 19:19:04 +0800 Subject: [PATCH 08/22] =?UTF-8?q?new#=E5=9F=BA=E4=BA=8E=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E9=A2=84=E5=88=A4=E7=9A=84=E9=81=93=E8=B7=AF=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E6=8F=90=E9=86=92=E3=80=81=E8=B7=AF=E7=BA=BF=E6=8E=A8?= =?UTF-8?q?=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/V2XRecommendRouteEntity.java | 9 +++ .../adapter/holder/V2XRecommendRouteVH.java | 31 +--------- .../module/v2x/entity/net/V2XRoadDataRes.java | 16 +++-- .../module/v2x/network/V2XRefreshModel.java | 61 +++++++++++++------ 4 files changed, 61 insertions(+), 56 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java index 9523dbfd4f..548346340f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java @@ -8,6 +8,7 @@ import java.util.List; */ public class V2XRecommendRouteEntity { private List toPoint; + private String formatAddress; public List getToPoint() { return toPoint; @@ -16,4 +17,12 @@ public class V2XRecommendRouteEntity { public void setToPoint(List toPoint) { this.toPoint = toPoint; } + + public String getFormatAddress() { + return formatAddress; + } + + public void setFormatAddress(String formatAddress) { + this.formatAddress = formatAddress; + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java index 7ffe211347..7626025d84 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java @@ -1,23 +1,16 @@ package com.mogo.module.v2x.adapter.holder; -import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; -import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; -import com.mogo.map.location.MogoLocation; -import com.mogo.map.search.geo.IMogoGeoSearchListener; -import com.mogo.map.search.geo.MogoGeocodeResult; -import com.mogo.map.search.geo.MogoRegeocodeResult; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.scenario.view.IV2XWindow; -import com.mogo.module.v2x.utils.LocationUtils; import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; import com.mogo.module.v2x.voice.V2XVoiceConstants; import com.mogo.module.v2x.voice.V2XVoiceManager; @@ -48,32 +41,11 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { markerLocation.setLat(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); mNoveltyInfo = new MarkerExploreWay(); mNoveltyInfo.setLocation(markerLocation); - MogoLocation mogoLocation = new MogoLocation(); - mogoLocation.setLongitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(0)); - mogoLocation.setLatitude(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); - getLocationInfo(mogoLocation); + mTvAddress.setText("前往 " + v2XEventShowEntity.getV2XRecommendRouteEntity().getFormatAddress()); registerUnwakeNavi(); } - /** - * 获取定位相关信息 - */ - private void getLocationInfo(MogoLocation location) { - // 定位当前位置是否是高速 - LocationUtils.geoCodeSearch(location, new IMogoGeoSearchListener() { - @Override - public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) { - mTvAddress.setText("前往 " + regeocodeResult.getRegeocodeAddress().getFormatAddress()); - } - - @Override - public void onGeocodeSearched(MogoGeocodeResult geocodeResult) { - } - }); - } - - private V2XVoiceCallbackListener mStartNavi = (command, intent) -> { try { triggerStartNavi(mNoveltyInfo); @@ -87,6 +59,7 @@ public class V2XRecommendRouteVH extends V2XBaseViewHolder { try { //取消导航 unRegisterUnwakeNavi(); + delayedCloseWindow(); Log.d("V2XRecommendRouteVH", "cancleNavi ------"); } catch (Exception e) { e.printStackTrace(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/net/V2XRoadDataRes.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/net/V2XRoadDataRes.java index be15736bda..348453cb7b 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/net/V2XRoadDataRes.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/net/V2XRoadDataRes.java @@ -30,20 +30,18 @@ public class V2XRoadDataRes extends BaseData { } public static class ResultDTO { - + private String formatAddress; private List fromPoint; private List topPoint; private List poiData; private List illegalParkingData; - @Override - public String toString() { - return "ResultDTO{" + - "fromPoint=" + fromPoint + - ", topPoint=" + topPoint + - ", poiData=" + poiData + - ", illegalParkingData=" + illegalParkingData + - '}'; + public String getFormatAddress() { + return formatAddress; + } + + public void setFormatAddress(String formatAddress) { + this.formatAddress = formatAddress; } public List getFromPoint() { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index 575f4aa97a..1a8d2f1137 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -14,6 +14,9 @@ import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; import com.mogo.map.MogoLatLng; import com.mogo.map.location.MogoLocation; +import com.mogo.map.search.geo.IMogoGeoSearchListener; +import com.mogo.map.search.geo.MogoGeocodeResult; +import com.mogo.map.search.geo.MogoRegeocodeResult; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XRecommendRouteEntity; @@ -30,6 +33,7 @@ import com.mogo.module.v2x.entity.net.V2XRoadDataRes; import com.mogo.module.v2x.entity.net.V2XSeekHelpRes; import com.mogo.module.v2x.entity.net.V2XStrategyPushRes; import com.mogo.module.v2x.entity.net.V2XUserInfoRes; +import com.mogo.module.v2x.utils.LocationUtils; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.service.MogoServicePaths; import com.mogo.service.network.IMogoNetwork; @@ -40,6 +44,8 @@ import com.mogo.utils.network.utils.GsonUtil; import java.util.Map; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.functions.Function; import io.reactivex.schedulers.Schedulers; import okhttp3.RequestBody; @@ -676,28 +682,47 @@ public class V2XRefreshModel { @Override public void onNext(V2XRoadDataRes v2XRoadDataRes) { super.onNext(v2XRoadDataRes); - if (v2XRoadDataRes == null || v2XRoadDataRes.getResult() == null) { + if (v2XRoadDataRes == null + || v2XRoadDataRes.getResult() == null + || v2XRoadDataRes.getResult().getTopPoint() == null + || v2XRoadDataRes.getResult().getTopPoint().isEmpty()) { return; } - if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) { - V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity(); - v2XRecommendRouteEntity.setToPoint(v2XRoadDataRes.getResult().getTopPoint()); - V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); - // 控制类型 - v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE); - // 设置数据 - v2xMessageEntity.setContent(v2XRecommendRouteEntity); - // 控制展示状态 - v2xMessageEntity.setShowState(true); - - Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); - intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); - LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); - } else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { - // TODO: 2020/12/30 - } + MogoLocation mogoLocation = new MogoLocation(); + mogoLocation.setLongitude(v2XRoadDataRes.getResult().getTopPoint().get(0)); + mogoLocation.setLatitude(v2XRoadDataRes.getResult().getTopPoint().get(1)); + LocationUtils.geoCodeSearch(mogoLocation, new IMogoGeoSearchListener() { + @Override + public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) { + String province = regeocodeResult.getRegeocodeAddress().getProvince(); + String city = regeocodeResult.getRegeocodeAddress().getCity(); + v2XRoadDataRes.getResult().setFormatAddress(regeocodeResult.getRegeocodeAddress().getFormatAddress().replaceAll(province, "").replaceAll(city, "")); + sendBroadcast(v2XRoadDataRes); + } + }); } }); } } + + private void sendBroadcast(V2XRoadDataRes v2XRoadDataRes) { + if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) { + V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity(); + v2XRecommendRouteEntity.setToPoint(v2XRoadDataRes.getResult().getTopPoint()); + v2XRecommendRouteEntity.setFormatAddress(v2XRoadDataRes.getResult().getFormatAddress()); + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE); + // 设置数据 + v2xMessageEntity.setContent(v2XRecommendRouteEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); + LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); + } else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { + // TODO: 2020/12/30 + } + } } From b4deae290e2875d2b65e407a26094180d8d9d86b Mon Sep 17 00:00:00 2001 From: wujifei Date: Wed, 30 Dec 2020 19:32:22 +0800 Subject: [PATCH 09/22] =?UTF-8?q?new#=E5=9F=BA=E4=BA=8E=E7=9B=AE=E7=9A=84?= =?UTF-8?q?=E5=9C=B0=E9=A2=84=E5=88=A4=E7=9A=84=E9=81=93=E8=B7=AF=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E6=8F=90=E9=86=92=E3=80=81=E8=B7=AF=E7=BA=BF=E6=8E=A8?= =?UTF-8?q?=E8=8D=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drawable-ldpi/v2x_icon_route_light.png | Bin 0 -> 24008 bytes .../drawable-mdpi/v2x_icon_route_light.png | Bin 0 -> 24008 bytes .../drawable-xhdpi/v2x_icon_route_light.png | Bin 0 -> 24008 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 skin/mogo-skin-light/src/main/module-v2x-res/drawable-ldpi/v2x_icon_route_light.png create mode 100644 skin/mogo-skin-light/src/main/module-v2x-res/drawable-mdpi/v2x_icon_route_light.png create mode 100644 skin/mogo-skin-light/src/main/module-v2x-res/drawable-xhdpi/v2x_icon_route_light.png diff --git a/skin/mogo-skin-light/src/main/module-v2x-res/drawable-ldpi/v2x_icon_route_light.png b/skin/mogo-skin-light/src/main/module-v2x-res/drawable-ldpi/v2x_icon_route_light.png new file mode 100644 index 0000000000000000000000000000000000000000..2325886c8ee50eacaa9f04145a39e0b049ac89a3 GIT binary patch literal 24008 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 Date: Thu, 31 Dec 2020 14:41:38 +0800 Subject: [PATCH 10/22] =?UTF-8?q?new#=E5=A2=9E=E5=8A=A0tts=E6=92=AD?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/V2XRecommendRouteEntity.java | 10 ++++++++-- .../destination/V2XRecommendRouteScenario.kt | 8 +++++--- .../scene/destination/V2XRecommendRouteWindow.kt | 15 +++------------ 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java index 548346340f..b31673bcb2 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java @@ -7,8 +7,9 @@ import java.util.List; * describe:基于目的地预判的道路事件 */ public class V2XRecommendRouteEntity { - private List toPoint; - private String formatAddress; + private List toPoint; //目的地坐标 + private String formatAddress; //目的地地址 + private String tts; //播报内容 public List getToPoint() { return toPoint; @@ -25,4 +26,9 @@ public class V2XRecommendRouteEntity { public void setFormatAddress(String formatAddress) { this.formatAddress = formatAddress; } + + public String getTts() { + tts = "主人,我发现前往" + formatAddress + "沿途有拥堵,推荐你导航最优路线,现在开启导航吗?"; + return tts; + } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt index 23f795f105..35024fa418 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt @@ -2,6 +2,8 @@ package com.mogo.module.v2x.scenario.scene.destination import android.view.View import android.view.ViewGroup +import com.mogo.commons.voice.AIAssist +import com.mogo.commons.voice.VoicePreemptType import com.mogo.module.common.entity.V2XMessageEntity import com.mogo.module.common.entity.V2XRecommendRouteEntity import com.mogo.module.v2x.R @@ -28,11 +30,9 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { v2XMessageEntity?.content?.let { if (v2XMessageEntity!!.isShowState) { if (!isSameScenario(v2XMessageEntity)) { - // 更新要提醒的数据 setV2XMessageEntity(v2XMessageEntity) show() } else { - // 更新要提醒的数据 setV2XMessageEntity(v2XMessageEntity) } } else { @@ -52,7 +52,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { v2XWindow?.let { val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, V2XUtils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt()) - V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams,mogoTopViewStatusListener) + V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams, mogoTopViewStatusListener) it.show(v2XMessageEntity.content) } @@ -83,6 +83,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { val mogoTopViewStatusListener: IMogoTopViewStatusListener = object : IMogoTopViewStatusListener { private val mainScope = MainScope() override fun onViewAdded(view: View?) { + AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(v2XMessageEntity.content.getTts(),VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY,null) mainScope.launch { delay(1000 * 20) closeWindow() @@ -90,6 +91,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { } override fun onViewRemoved(view: View?) { + AIAssist.getInstance(V2XUtils.getApp()).breakOffSpeak() mainScope.cancel() } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt index a921a2c168..717301dbeb 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt @@ -47,17 +47,6 @@ class V2XRecommendRouteWindow @JvmOverloads constructor( // 配置列表朝向 val layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) rvRoadEventList?.setLayoutManager(layoutManager) - rvRoadEventList?.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { - super.onScrollStateChanged(recyclerView, newState) - if (recyclerView.childCount > 0) { - if (newState == RecyclerView.SCROLL_STATE_IDLE) { - // 用户处于交互的时候延后隐藏时间 - // countDownV2XEvent() - } - } - } - }) } @@ -70,7 +59,9 @@ class V2XRecommendRouteWindow @JvmOverloads constructor( return this } - override fun setWindowStatusListener(listener: V2XWindowStatusListener) {} + override fun setWindowStatusListener(listener: V2XWindowStatusListener) { + + } override fun show(entity: V2XRecommendRouteEntity?) { entity.let { From 2224f51f4429132f31c89a005b0a64c959e26c7b Mon Sep 17 00:00:00 2001 From: wujifei Date: Thu, 31 Dec 2020 14:48:20 +0800 Subject: [PATCH 11/22] =?UTF-8?q?new#=E8=A7=A3=E5=86=B3=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/v2x/network/V2XRefreshModel.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index 1a8d2f1137..c782d288a3 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -694,10 +694,18 @@ public class V2XRefreshModel { LocationUtils.geoCodeSearch(mogoLocation, new IMogoGeoSearchListener() { @Override public void onRegeocodeSearched(MogoRegeocodeResult regeocodeResult) { - String province = regeocodeResult.getRegeocodeAddress().getProvince(); - String city = regeocodeResult.getRegeocodeAddress().getCity(); - v2XRoadDataRes.getResult().setFormatAddress(regeocodeResult.getRegeocodeAddress().getFormatAddress().replaceAll(province, "").replaceAll(city, "")); - sendBroadcast(v2XRoadDataRes); + if (regeocodeResult == null || regeocodeResult.getRegeocodeAddress() == null) { + return; + } + try { + String province = regeocodeResult.getRegeocodeAddress().getProvince(); + String city = regeocodeResult.getRegeocodeAddress().getCity(); + v2XRoadDataRes.getResult().setFormatAddress(regeocodeResult.getRegeocodeAddress().getFormatAddress().replaceAll(province, "").replaceAll(city, "")); + sendBroadcast(v2XRoadDataRes); + } catch (Exception e) { + e.printStackTrace(); + } + } }); } From 868705abc29443189f01e8b1888a8ab29411b5e8 Mon Sep 17 00:00:00 2001 From: liujing Date: Thu, 31 Dec 2020 15:01:12 +0800 Subject: [PATCH 12/22] =?UTF-8?q?+=E7=9B=AE=E7=9A=84=E5=9C=B0=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E5=81=9C=E8=BD=A6=E5=9C=BA=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/module/common/entity/V2XMessageEntity.java | 3 +++ .../com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java index f025292325..fce034aab3 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java @@ -143,6 +143,8 @@ public class V2XMessageEntity implements Serializable { int ALERT_VOICE_CALL_FOR_LIVECAR_SHOW = 1_010; // 基于预判目的地道路事件的路线推荐 int ALERT_RECOMMEND_ROUTE = 1_011; + // 基于预判目的地违章高发停车场推荐 + int ALERT_RECOMMEND_PARKING = 1_012; // 推送VR消息展示 int ALERT_PUSH_VR_SHOW = 2_000; // 自车求助 @@ -165,6 +167,7 @@ public class V2XMessageEntity implements Serializable { V2XTypeEnum.ALERT_CAR_FOR_HELP, V2XTypeEnum.ALERT_VOICE_CALL_FOR_LIVECAR_SHOW, V2XTypeEnum.ALERT_RECOMMEND_ROUTE, + V2XTypeEnum.ALERT_RECOMMEND_PARKING, V2XTypeEnum.ALERT_PUSH_VR_SHOW, V2XTypeEnum.ALERT_OBU_EVENT, }) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java index 16f7e8f042..f46bc7a74b 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/impl/V2XScenarioManager.java @@ -25,6 +25,7 @@ import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_PARKING; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; /** @@ -74,7 +75,8 @@ public class V2XScenarioManager implements IV2XScenarioManager { case V2XMessageEntity.V2XTypeEnum.ALERT_SEEK_WARNING: mV2XScenario = new V2XSeekHelpScenario(); break; - case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING: + case V2XMessageEntity.V2XTypeEnum.ALERT_FATIGUE_DRIVING : + case ALERT_RECOMMEND_PARKING : mV2XScenario = new V2XFatigueDrivingScenario(); break; case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_WINDOW_WARNING: From 67eff81529b51599bb60b3f474d1e8a8f674f216 Mon Sep 17 00:00:00 2001 From: wujifei Date: Thu, 31 Dec 2020 17:24:03 +0800 Subject: [PATCH 13/22] =?UTF-8?q?new#=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/holder/V2XRecommendRouteVH.java | 84 ----------------- .../v2x/adapter/holder/V2XRecommendRouteVH.kt | 92 +++++++++++++++++++ .../destination/V2XRecommendRouteScenario.kt | 34 +------ 3 files changed, 93 insertions(+), 117 deletions(-) delete mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java deleted file mode 100644 index 7626025d84..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.mogo.module.v2x.adapter.holder; - -import android.util.Log; -import android.view.LayoutInflater; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.mogo.module.common.entity.MarkerExploreWay; -import com.mogo.module.common.entity.MarkerLocation; -import com.mogo.module.common.entity.V2XEventShowEntity; -import com.mogo.module.v2x.R; -import com.mogo.module.v2x.scenario.view.IV2XWindow; -import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; -import com.mogo.module.v2x.voice.V2XVoiceConstants; -import com.mogo.module.v2x.voice.V2XVoiceManager; - - -/** - * created by wujifei on 2020/12/29 20:39 - * describe:线路推荐 - */ -public class V2XRecommendRouteVH extends V2XBaseViewHolder { - private TextView mTvAddress; - private ImageView mIvToNav, mIvClose; - private MarkerExploreWay mNoveltyInfo; - - public V2XRecommendRouteVH(ViewGroup viewGroup, IV2XWindow v2XWindow) { - super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_recommend_route, viewGroup, false), v2XWindow); - mTvAddress = itemView.findViewById(R.id.tvAddress); - mIvToNav = itemView.findViewById(R.id.ivToNav); - mIvClose = itemView.findViewById(R.id.ivClose); - mIvToNav.setOnClickListener(v -> triggerStartNavi(mNoveltyInfo)); - mIvClose.setOnClickListener(v -> delayedCloseWindow()); - } - - @Override - public void initView(V2XEventShowEntity v2XEventShowEntity) { - MarkerLocation markerLocation = new MarkerLocation(); - markerLocation.setLon(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(0)); - markerLocation.setLat(v2XEventShowEntity.getV2XRecommendRouteEntity().getToPoint().get(1)); - mNoveltyInfo = new MarkerExploreWay(); - mNoveltyInfo.setLocation(markerLocation); - mTvAddress.setText("前往 " + v2XEventShowEntity.getV2XRecommendRouteEntity().getFormatAddress()); - registerUnwakeNavi(); - - } - - private V2XVoiceCallbackListener mStartNavi = (command, intent) -> { - try { - triggerStartNavi(mNoveltyInfo); - Log.d("V2XRecommendRouteVH", "mStartNavi ------"); - } catch (Exception e) { - e.printStackTrace(); - } - }; - - private V2XVoiceCallbackListener mCancleNavi = (command, intent) -> { - try { - //取消导航 - unRegisterUnwakeNavi(); - delayedCloseWindow(); - Log.d("V2XRecommendRouteVH", "cancleNavi ------"); - } catch (Exception e) { - e.printStackTrace(); - } - }; - - private void registerUnwakeNavi() { - V2XVoiceManager.INSTANCE - .registerWakeCmd(V2XVoiceConstants.V2X_CONFIRM_ACTION, - mStartNavi) - .registerWakeCmd(V2XVoiceConstants.V2X_CANCLE_ACTION, - mCancleNavi); - } - - private void unRegisterUnwakeNavi() { - V2XVoiceManager.INSTANCE - .unRegisterWakeCmd(V2XVoiceConstants.V2X_CONFIRM_ACTION) - .unRegisterWakeCmd(V2XVoiceConstants.V2X_CANCLE_ACTION); - } - - -} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt new file mode 100644 index 0000000000..8cac03b737 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt @@ -0,0 +1,92 @@ +package com.mogo.module.v2x.adapter.holder + +import android.content.Intent +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import com.mogo.commons.voice.AIAssist +import com.mogo.commons.voice.VoicePreemptType +import com.mogo.module.common.entity.MarkerExploreWay +import com.mogo.module.common.entity.MarkerLocation +import com.mogo.module.common.entity.V2XEventShowEntity +import com.mogo.module.v2x.R +import com.mogo.module.v2x.scenario.view.IV2XWindow +import com.mogo.module.v2x.utils.V2XUtils +import com.mogo.module.v2x.voice.V2XVoiceCallbackListener +import com.mogo.module.v2x.voice.V2XVoiceConstants +import com.mogo.module.v2x.voice.V2XVoiceManager.registerUnWakeVoice +import com.mogo.module.v2x.voice.V2XVoiceManager.unRegisterUnWakeVoice +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.cancel +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch + +/** + * created by wujifei on 2020/12/31 16:10 + * describe: + */ +class V2XRecommendRouteVH(viewGroup: ViewGroup, v2XWindow: IV2XWindow<*>) : V2XBaseViewHolder( + LayoutInflater.from(viewGroup.context).inflate(R.layout.item_v2x_recommend_route, viewGroup, false), v2XWindow), V2XVoiceCallbackListener { + private var mTvAddress: TextView? = null + private var mIvToNav: ImageView? = null + private var mIvClose: ImageView? = null + private var mNoveltyInfo: MarkerExploreWay? = null + private val mainScope = MainScope() + + init { + mTvAddress = itemView.findViewById(R.id.tvAddress) + mIvToNav = itemView.findViewById(R.id.ivToNav) + mIvClose = itemView.findViewById(R.id.ivClose) + mIvToNav?.setOnClickListener { triggerStartNavi(mNoveltyInfo) } + mIvClose?.setOnClickListener { delayedCloseWindow() } + itemView.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener { + override fun onViewAttachedToWindow(view: View) { + registerUnwakeNavi() + mainScope.launch { + delay(1000 * 20) + delayedCloseWindow() + } + } + + override fun onViewDetachedFromWindow(view: View) { + unRegisterUnwakeNavi() + AIAssist.getInstance(V2XUtils.getApp()).breakOffSpeak() + mainScope.cancel() + } + }) + } + + + override fun initView(viewData: V2XEventShowEntity?) { + viewData?.let { + val markerLocation = MarkerLocation() + markerLocation.lon = it.getV2XRecommendRouteEntity().getToPoint().get(0) + markerLocation.lat = it.getV2XRecommendRouteEntity().getToPoint().get(1) + mNoveltyInfo = MarkerExploreWay() + mNoveltyInfo?.setLocation(markerLocation) + mTvAddress!!.text = "前往 ${it.getV2XRecommendRouteEntity().getFormatAddress()}" + AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().getTts(), VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null) + } + + } + + override fun onCallback(command: String?, intent: Intent?) { + when (command) { + V2XVoiceConstants.V2X_CONFIRM_ACTION -> triggerStartNavi(mNoveltyInfo) + V2XVoiceConstants.V2X_CANCLE_ACTION -> delayedCloseWindow() + } + } + + + private fun registerUnwakeNavi() { + registerUnWakeVoice(V2XVoiceConstants.V2X_CONFIRM_ACTION, this) + registerUnWakeVoice(V2XVoiceConstants.V2X_CANCLE_ACTION, this) + } + + private fun unRegisterUnwakeNavi() { + unRegisterUnWakeVoice(V2XVoiceConstants.V2X_CONFIRM_ACTION) + unRegisterUnWakeVoice(V2XVoiceConstants.V2X_CANCLE_ACTION) + } +} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt index 35024fa418..01b1cb6788 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt @@ -1,20 +1,12 @@ package com.mogo.module.v2x.scenario.scene.destination -import android.view.View import android.view.ViewGroup -import com.mogo.commons.voice.AIAssist -import com.mogo.commons.voice.VoicePreemptType import com.mogo.module.common.entity.V2XMessageEntity import com.mogo.module.common.entity.V2XRecommendRouteEntity import com.mogo.module.v2x.R import com.mogo.module.v2x.V2XServiceManager import com.mogo.module.v2x.scenario.impl.AbsV2XScenario import com.mogo.module.v2x.utils.V2XUtils -import com.mogo.service.windowview.IMogoTopViewStatusListener -import kotlinx.coroutines.MainScope -import kotlinx.coroutines.cancel -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch /** * created by wujifei on 2020/12/29 17:57 @@ -52,7 +44,7 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { v2XWindow?.let { val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, V2XUtils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt()) - V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams, mogoTopViewStatusListener) + V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams) it.show(v2XMessageEntity.content) } @@ -80,29 +72,5 @@ class V2XRecommendRouteScenario : AbsV2XScenario() { TODO("Not yet implemented") } - val mogoTopViewStatusListener: IMogoTopViewStatusListener = object : IMogoTopViewStatusListener { - private val mainScope = MainScope() - override fun onViewAdded(view: View?) { - AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(v2XMessageEntity.content.getTts(),VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY,null) - mainScope.launch { - delay(1000 * 20) - closeWindow() - } - } - - override fun onViewRemoved(view: View?) { - AIAssist.getInstance(V2XUtils.getApp()).breakOffSpeak() - mainScope.cancel() - } - - override fun beforeViewAddAnim(view: View?) { - - } - - override fun beforeViewRemoveAnim(view: View?) { - - } - } - } \ No newline at end of file From 606a8663c2a406edb3bea68c8b0958f26d4695f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Thu, 31 Dec 2020 17:48:46 +0800 Subject: [PATCH 14/22] =?UTF-8?q?=E9=99=8D=E4=BD=8E=E4=BA=86=E5=B0=8F?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E8=A7=86=E8=A7=92=E9=AB=98=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/small/map/SmallMapDirectionView.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java index dec53d8d38..2d945b972f 100644 --- a/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java +++ b/modules/mogo-module-smp/src/main/java/com/mogo/module/small/map/SmallMapDirectionView.java @@ -37,6 +37,7 @@ public class SmallMapDirectionView extends RelativeLayout { private AMapNaviView mAMapNaviView; private DirectionRotateAnimation mRotateAnimation; private int lastAngle = 0; + private int zoomLevel = 17; public SmallMapDirectionView(Context context) { this(context, null); @@ -133,19 +134,19 @@ public class SmallMapDirectionView extends RelativeLayout { options.setNaviArrowVisible(false); // 通过路线是否自动置灰,仅支持驾车导航 options.setAfterRouteAutoGray(false); - options.setZoom(((int) 9)); + //options.setZoom(((int) 9)); //options.setPointToCenter(0.7D, 0.5D); // 2D模式 options.setTilt(0); // 黑夜模式 -// options.setNaviNight(true); + //options.setNaviNight(true); // 自定义地图样式 options.setCustomMapStylePath(styleFilePath); mAMapNaviView.setViewOptions(options); } //设置希望展示的地图缩放级别 - CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(12); + CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); aMap.moveCamera(cameraUpdate); aMap.setOnCameraChangeListener(new AMap.OnCameraChangeListener() { @@ -175,7 +176,7 @@ public class SmallMapDirectionView extends RelativeLayout { } //设置希望展示的地图缩放级别 - CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(12); + CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); aMap.moveCamera(cameraUpdate); } }); @@ -218,7 +219,7 @@ public class SmallMapDirectionView extends RelativeLayout { } //设置希望展示的地图缩放级别 - CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(12); + CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(zoomLevel); aMap.moveCamera(cameraUpdate); } } From 50e87ec0431232d61646c2cd61ce6a08552b8ba8 Mon Sep 17 00:00:00 2001 From: wujifei Date: Thu, 31 Dec 2020 18:07:57 +0800 Subject: [PATCH 15/22] =?UTF-8?q?new#=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/V2XRecommendRouteEntity.java | 34 ------------------- .../common/entity/V2XRecommendRouteEntity.kt | 17 ++++++++++ .../v2x/adapter/holder/V2XRecommendRouteVH.kt | 8 ++--- .../module/v2x/network/V2XRefreshModel.java | 19 ++++++++--- .../scene/test/V2XTestConsoleWindow.java | 6 ++-- .../main/res/layout/window_test_console.xml | 2 +- 6 files changed, 39 insertions(+), 47 deletions(-) delete mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.kt diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java deleted file mode 100644 index b31673bcb2..0000000000 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mogo.module.common.entity; - -import java.util.List; - -/** - * created by wujifei on 2020/12/24 15:33 - * describe:基于目的地预判的道路事件 - */ -public class V2XRecommendRouteEntity { - private List toPoint; //目的地坐标 - private String formatAddress; //目的地地址 - private String tts; //播报内容 - - public List getToPoint() { - return toPoint; - } - - public void setToPoint(List toPoint) { - this.toPoint = toPoint; - } - - public String getFormatAddress() { - return formatAddress; - } - - public void setFormatAddress(String formatAddress) { - this.formatAddress = formatAddress; - } - - public String getTts() { - tts = "主人,我发现前往" + formatAddress + "沿途有拥堵,推荐你导航最优路线,现在开启导航吗?"; - return tts; - } -} diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.kt new file mode 100644 index 0000000000..10c8191fb7 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.kt @@ -0,0 +1,17 @@ +package com.mogo.module.common.entity + +/** + * created by wujifei on 2020/12/24 15:33 + * describe:基于目的地预判的道路事件 + */ +data class V2XRecommendRouteEntity( + var toPoint: List,//目的地坐标 + var formatAddress: String//目的地地址 +) { + var tts: String? = null //播报内容 + get() { + field = "主人,我发现前往" + formatAddress + "沿途有拥堵,推荐你导航最优路线,现在开启导航吗?" + return field + } + private set +} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt index 8cac03b737..924d0b0ea0 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRecommendRouteVH.kt @@ -62,12 +62,12 @@ class V2XRecommendRouteVH(viewGroup: ViewGroup, v2XWindow: IV2XWindow<*>) : V2XB override fun initView(viewData: V2XEventShowEntity?) { viewData?.let { val markerLocation = MarkerLocation() - markerLocation.lon = it.getV2XRecommendRouteEntity().getToPoint().get(0) - markerLocation.lat = it.getV2XRecommendRouteEntity().getToPoint().get(1) + markerLocation.lon = it.getV2XRecommendRouteEntity().toPoint.get(0) + markerLocation.lat = it.getV2XRecommendRouteEntity().toPoint.get(1) mNoveltyInfo = MarkerExploreWay() mNoveltyInfo?.setLocation(markerLocation) - mTvAddress!!.text = "前往 ${it.getV2XRecommendRouteEntity().getFormatAddress()}" - AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().getTts(), VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null) + mTvAddress!!.text = "前往 ${it.getV2XRecommendRouteEntity().formatAddress}" + AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(it.getV2XRecommendRouteEntity().tts, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, null) } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index c782d288a3..ee2d1489e7 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -19,6 +19,7 @@ import com.mogo.map.search.geo.MogoGeocodeResult; import com.mogo.map.search.geo.MogoRegeocodeResult; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.entity.V2XPoiTypeEnum; import com.mogo.module.common.entity.V2XRecommendRouteEntity; import com.mogo.module.service.ServiceConst; import com.mogo.module.service.network.RefreshBody; @@ -714,22 +715,30 @@ public class V2XRefreshModel { } private void sendBroadcast(V2XRoadDataRes v2XRoadDataRes) { + boolean isSendRecommendRoute = false; if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) { - V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity(); - v2XRecommendRouteEntity.setToPoint(v2XRoadDataRes.getResult().getTopPoint()); - v2XRecommendRouteEntity.setFormatAddress(v2XRoadDataRes.getResult().getFormatAddress()); + for (V2XRoadDataRes.ResultDTO.PoiDataDTO poiDataDTO : v2XRoadDataRes.getResult().getPoiData()) { + if (!V2XPoiTypeEnum.FOURS_LIVING.equals(poiDataDTO.getPoiType())) { + isSendRecommendRoute = true; + break; + } + } + } + if (isSendRecommendRoute) { V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); // 控制类型 v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE); // 设置数据 - v2xMessageEntity.setContent(v2XRecommendRouteEntity); + v2xMessageEntity.setContent(new V2XRecommendRouteEntity(v2XRoadDataRes.getResult().getTopPoint(), v2XRoadDataRes.getResult().getFormatAddress())); // 控制展示状态 v2xMessageEntity.setShowState(true); Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); - } else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { + } + + if (!isSendRecommendRoute && v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { // TODO: 2020/12/30 } } 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 f474f567a5..61e5a72ac6 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 @@ -57,7 +57,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { private Button mBtnTriggerCallUserInfo; private Button mBtnTriggerEventUgc; private Button mBtnTriggerTrafficSearch; - private Button mBtnTriggerPrejectedRoadEvent; + private Button mBtnTriggerRecommendRouteEvent; private Button nBtnTriggerVR; private Button btnTriggerRearVIPCarTip, @@ -118,7 +118,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerEventUgc = findViewById(R.id.btnTriggerEventUgc); mBtnTriggerCallUserInfo = findViewById(R.id.btnTriggerCallUserInfo); mBtnTriggerTrafficSearch = findViewById(R.id.btnTriggerTrafficSearch); - mBtnTriggerPrejectedRoadEvent = findViewById(R.id.btnTriggerPrejectedRoadEvent); + mBtnTriggerRecommendRouteEvent = findViewById(R.id.btnTriggerRecommendRouteEvent); nBtnTriggerVR = findViewById(R.id.btnTriggerVR); switch (showType) { @@ -279,7 +279,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerTrafficSearch.setOnClickListener(v -> V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus()); - mBtnTriggerPrejectedRoadEvent.setOnClickListener(view -> { + mBtnTriggerRecommendRouteEvent.setOnClickListener(view -> { V2XServiceManager.getV2XRefreshModel().queryRoadData("ZD802C1938L10797"); }); diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index 6936631ec6..71209e7cca 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -211,7 +211,7 @@ app:layout_constraintStart_toStartOf="parent" />