diff --git a/app/build.gradle b/app/build.gradle index ed531a91d2..f7e1fb318a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -385,6 +385,9 @@ dependencies { debugImplementation rootProject.ext.dependencies.debugleakcanary releaseImplementation rootProject.ext.dependencies.releaseleakcanary + implementation rootProject.ext.dependencies.callchatprovider + implementation rootProject.ext.dependencies.callchat + implementation rootProject.ext.dependencies.mogologlib compileOnly rootProject.ext.dependencies.adasapi compileOnly rootProject.ext.dependencies.adasconfigapi @@ -430,7 +433,6 @@ dependencies { apply from: "./functions/tts.gradle" apply from: "./functions/backwidget.gradle" apply from: "./functions/mediaui.gradle" - apply from: "./functions/bizcallchat.gradle" apply from: "./functions/bizguide.gradle" // implementation group: "com.tencent.matrix", name: "matrix-android-lib", version: '0.6.6', changing: true diff --git a/app/functions/bizcallchat.gradle b/app/functions/bizcallchat.gradle deleted file mode 100644 index 5dbdac4336..0000000000 --- a/app/functions/bizcallchat.gradle +++ /dev/null @@ -1,20 +0,0 @@ -// 引导模块:部分机型暂不需要引导模块 - -project.dependencies { - bydautoImplementation rootProject.ext.dependencies.callchat - bydautoImplementation rootProject.ext.dependencies.callchatprovider - d8xxImplementation rootProject.ext.dependencies.callchat - d8xxImplementation rootProject.ext.dependencies.callchatprovider - d80xImplementation rootProject.ext.dependencies.callchat - d80xImplementation rootProject.ext.dependencies.callchatprovider - em4Implementation rootProject.ext.dependencies.callchat - em4Implementation rootProject.ext.dependencies.callchatprovider - e8xxImplementation rootProject.ext.dependencies.callchat - e8xxImplementation rootProject.ext.dependencies.callchatprovider - f8xxImplementation rootProject.ext.dependencies.callchat - f8xxImplementation rootProject.ext.dependencies.callchatprovider - f80xImplementation rootProject.ext.dependencies.callchat - f80xImplementation rootProject.ext.dependencies.callchatprovider - em3Implementation rootProject.ext.dependencies.callchat - em3Implementation rootProject.ext.dependencies.callchatprovider -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 52a9cbb446..3122fa68b7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -129,7 +129,7 @@ TTS_NOOP_VERSION=2.0.7 ######## 外部依赖引用 # 车聊聊 -CARCHATTING_VERSION=1.6.5-SNAPSHOT +CARCHATTING_VERSION=1.6.7-SNAPSHOT # 车聊聊接口 CARCHATTINGPROVIDER_VERSION=1.1.7 # loglib diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml index 1e3dc1ca7d..0f5abc133c 100644 --- a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml @@ -28,8 +28,8 @@ 20px 20px - 18px - 18px - 18px - 18px + 15px + 15px + 15px + 15px \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml index 3da2076696..89a3dc55f4 100644 --- a/modules/mogo-module-main/src/main/res/values/dimens.xml +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -31,8 +31,8 @@ 1920px 0px - 0px - 0px - 0px - 0px + 2px + 2px + 6px + 6px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java index de632983fd..86beee061c 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelAdapter.java @@ -129,7 +129,7 @@ class OnlineCarPanelAdapter extends RecyclerView.Adapter= 1000) { - return String.format("%.1f千米", distance / 1000); + return String.format("%.1f公里", distance / 1000); } else { return String.format("%.1f米", distance); } diff --git a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml index 08e5f85a0a..e694f85e35 100644 --- a/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml +++ b/modules/mogo-module-service/src/main/res/drawable/module_services_panel_item_bkg.xml @@ -2,8 +2,8 @@ - - + + \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml index 2b4ceea7d2..1a5729e252 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_services_fragment_online_car_panel.xml @@ -16,7 +16,7 @@ android:id="@+id/module_services_id_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="@dimen/module_services_online_car_panel_close_margin_top" + android:layout_marginTop="@dimen/module_services_online_car_panel_title_margin_top" android:textStyle="bold" android:text="@string/module_services_online_car_panel_title" android:textColor="@color/module_services_online_car_panel_title_textColor" diff --git a/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml index 6bc69fe366..e11c589602 100644 --- a/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml +++ b/modules/mogo-module-service/src/main/res/layout/module_services_online_car_panel_item.xml @@ -6,13 +6,14 @@ android:layout_height="wrap_content" android:layout_marginBottom="@dimen/module_services_panel_item_marginBottom" android:background="@drawable/module_services_panel_item_bkg" - android:padding="@dimen/module_services_panel_item_padding"> + android:paddingTop="@dimen/module_services_panel_item_padding" + android:paddingStart="@dimen/module_services_panel_item_start" + android:paddingBottom="@dimen/module_services_panel_item_padding"> diff --git a/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml index 8fb8c16e93..4103d9c547 100644 --- a/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-ldpi/dimens.xml @@ -48,7 +48,7 @@ 5px 20px 13px - 42px + 10px 8.89px 13px 16px @@ -62,4 +62,5 @@ 12.5px 3px 3px + 20px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml index a5a63b9493..6feb909906 100644 --- a/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-mdpi/dimens.xml @@ -45,9 +45,9 @@ 16px 18px 5px - 20px + 28px 13px - 42px + 10px 8.89px 13px 16px @@ -61,4 +61,5 @@ 12.5px 3px 3px + 20px \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml index 9f26351058..fb1ea406df 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi-1920x1000/dimens.xml @@ -34,7 +34,7 @@ 50px 28px - 36px + 55px 50px 36px 151px @@ -46,7 +46,7 @@ 9px 40px 20px - 70px + 20px 16px 21px 28px diff --git a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml index 1881b587f6..316b89ce91 100644 --- a/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values-xhdpi/dimens.xml @@ -23,19 +23,18 @@ 120px 20px - 20px - 20px - 20px - 50px + 13px + 13px + 13px + 43px 28px - 98px 46px 40px - 36px - 50px + 40px + 55px 36px 151px 33px @@ -46,7 +45,7 @@ 9px 40px 20px - 70px + 20px 16px 21px 28px @@ -60,4 +59,5 @@ 22.5px 6px 6px - \ No newline at end of file + 40px + diff --git a/modules/mogo-module-service/src/main/res/values/dimens.xml b/modules/mogo-module-service/src/main/res/values/dimens.xml index df03037594..d5bbe4d08b 100644 --- a/modules/mogo-module-service/src/main/res/values/dimens.xml +++ b/modules/mogo-module-service/src/main/res/values/dimens.xml @@ -46,7 +46,7 @@ 5px 20px 13px - 42px + 10px 8.89px 13px 16px @@ -60,4 +60,6 @@ 12.5px 3px 3px + 24px +¬ \ No newline at end of file diff --git a/modules/mogo-module-service/src/main/res/values/strings.xml b/modules/mogo-module-service/src/main/res/values/strings.xml index 46bb81ce90..8d73bcbd45 100644 --- a/modules/mogo-module-service/src/main/res/values/strings.xml +++ b/modules/mogo-module-service/src/main/res/values/strings.xml @@ -6,7 +6,7 @@ 亲,建议您使用蘑菇出行 扩大到20公里半径 扩大到40公里半径 - 距离导航目的地 + 距离目的地 查看车友信息 电话 很抱歉,目的地%d公里内未找到车友 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 69f7e979a8..f0a32200d3 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 @@ -76,78 +76,94 @@ public class V2XAlarmServer { // 检测道路事件是否需UGC问答 V2XEarlyWarningServer.roadEventUgcCheck(currentLocation); } -// Logger.w(MODULE_NAME, "V2X预警--车辆状态:" + currentLocation); -// Logger.w(MODULE_NAME, "V2X预警--车辆速度:" + currentLocation.getSpeed()); -// Logger.w(MODULE_NAME, "V2X预警--v2XRoadEventEntityList:" + GsonUtil.jsonFromObject(v2XRoadEventEntityList)); // 60(km/h) if (currentLocation != null && v2XRoadEventEntityList != null) { // 因为集合是按照距离排序后的所以这里检索出来第一个就发出警告 for (V2XRoadEventEntity v2XRoadEventEntity : v2XRoadEventEntityList) { - // 先计算当前车辆的车头朝向是否与事件方向相同,这里采用的是区间值,只要在20度上下即可使用 - // 道路事件必须有朝向,角度>=0; - //Logger.w(MODULE_NAME, - // "V2X预警--车辆与事件信息:" + - // "\n事件名称:" + markerNoveltyInfo.getNoveltyInfo().getContentData().getTitle() + - // "\n事件角度:" + markerNoveltyInfo.getLocation().getAngle() + - // "\n车头角度:" + currentLocation.getAngle() + - // "\n角度差值:" + Math.abs(currentLocation.getAngle() - markerNoveltyInfo.getLocation().getAngle())); + // 0、道路事件必须有朝向,角度>=0; if (v2XRoadEventEntity.getLocation().getAngle() >= 0) { // 计算车辆距离指定气泡的距离 MarkerLocation eventLocation = v2XRoadEventEntity.getLocation(); - - // 判断是否到达了触发距离,20 ~ 500, + // 1、判断是否到达了触发距离,20 ~ 500, if (v2XRoadEventEntity.getDistance() <= 500) { - double eventAngle = DrivingDirectionUtils.getDegreeOfCar2Poi( - currentLocation.getLongitude(), - currentLocation.getLatitude(), - eventLocation.getLon(), - eventLocation.getLat(), - (int) currentLocation.getBearing() - ); - if (0 <= eventAngle && eventAngle <= 20) { - // 判断是否已经提示过道路事件 - boolean isAlreadyAlert = false; - String lastTime = mAlertRoadEventList.get(v2XRoadEventEntity); - if (!TextUtils.isEmpty(lastTime)) { - long timeSpan = TimeUtils.getTimeSpanByNow(lastTime, TimeConstants.MIN); + // 2、道路事件方向与当前行驶方向角度偏差《20度以内 + double carBearing = currentLocation.getBearing(); + double eventBearing = eventLocation.getAngle(); + double diffAngle = DrivingDirectionUtils.getAngleDiff(carBearing, eventBearing); + if (diffAngle < 20) { + // 3、计算当前车辆行驶方向与事件位置之间夹角《20度,保证道路事件在车辆前方 + double eventAngle = DrivingDirectionUtils.getDegreeOfCar2Poi( + currentLocation.getLongitude(), + currentLocation.getLatitude(), + eventLocation.getLon(), + eventLocation.getLat(), + (int) currentLocation.getBearing() + ); + if (0 <= eventAngle && eventAngle <= 20) { + // 判断是否已经提示过道路事件 + boolean isAlreadyAlert = false; + String lastTime = mAlertRoadEventList.get(v2XRoadEventEntity); + if (!TextUtils.isEmpty(lastTime)) { + long timeSpan = TimeUtils.getTimeSpanByNow(lastTime, TimeConstants.MIN); // Logger.w(MODULE_NAME, // "V2X预警--事件ID:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + // "\n上一次预警时间:" + lastTime + // "\n距离当前时间:" + timeSpan); - // 5分钟内不重复提醒 - if (timeSpan < 5) { - isAlreadyAlert = true; + // 5分钟内不重复提醒 + if (timeSpan < 5) { + isAlreadyAlert = true; + } } + // 进行提醒 + if (!isAlreadyAlert) { + Logger.w(MODULE_NAME, "V2X预警--车辆与事件信息:" + + "\n事件详情ID:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + + "\n事件详情:" + GsonUtil.jsonFromObject(v2XRoadEventEntity.getNoveltyInfo()) + + "\n距离:" + v2XRoadEventEntity.getDistance() + "米" + + "\n是否已经提醒:" + isAlreadyAlert + + "\n当前车辆-经度:" + currentLocation.getLongitude() + + "\n当前车辆-经度:" + currentLocation.getLatitude() + + "\n当前车辆-角度:" + currentLocation.getBearing() + + "\n道路事件-经度:" + eventLocation.getLon() + + "\n道路事件-经度:" + eventLocation.getLat() + + "\n道路事件-角度:" + eventLocation.getAngle() + + "\n夹角角度:" + eventAngle + " 度" + ); + mAlertRoadEventList.put(v2XRoadEventEntity, TimeUtils.getNowString()); + return v2XRoadEventEntity; + } + return null; + } else { +// Logger.w(MODULE_NAME, "V2X预警--事件与车头角度夹角过大:" + +// "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + +// "\n当前车辆-经度:" + currentLocation.getLongitude() + +// "\n当前车辆-经度:" + currentLocation.getLatitude() + +// "\n当前车辆-角度:" + currentLocation.getBearing() + +// "\n道路事件-经度:" + eventLocation.getLon() + +// "\n道路事件-经度:" + eventLocation.getLat() + +// "\n道路事件-角度:" + eventLocation.getAngle() + +// "\n夹角角度:" + eventAngle + " 度" +// ); } - Logger.w(MODULE_NAME, "V2X预警--车辆与事件信息:" + - "\n距离:" + v2XRoadEventEntity.getDistance() + "米" + - "\n是否已经提醒:" + isAlreadyAlert + - "\n事件ID:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + - "\n事件详情:" + GsonUtil.jsonFromObject(v2XRoadEventEntity.getNoveltyInfo()) - ); - // 进行提醒 - if (!isAlreadyAlert) { - mAlertRoadEventList.put(v2XRoadEventEntity, TimeUtils.getNowString()); - return v2XRoadEventEntity; - } - return null; } else { - Logger.w(MODULE_NAME, "V2X预警--事件与车头角度夹角过大:" + - "\n角度:" + eventAngle + " 度" + - "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + Logger.w(MODULE_NAME, + "V2X预警--车头方向与事件方向角度不一致:" + + "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + + "\n车头方向: " + carBearing + + "\n事件方向:" + eventBearing + + "\n角度差值:" + diffAngle ); } } else { - Logger.w(MODULE_NAME, "V2X预警--车辆距离事件距离大于500米了:" + - "\n距离:" + v2XRoadEventEntity.getDistance() + "米" + - "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() - ); +// Logger.w(MODULE_NAME, "V2X预警--车辆距离事件距离大于500米了:" + +// "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + +// "\n距离:" + v2XRoadEventEntity.getDistance() + "米" +// ); } } else { - Logger.w(MODULE_NAME, - "V2X预警--车头方向与事件方向角度不一致:" + - "\n车头方向: " + currentLocation.getBearing() + - "\n事件方向:" + v2XRoadEventEntity.getLocation().getAngle() + Logger.e(MODULE_NAME, + "V2X预警--道路事件没有角度信息" + + "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() ); } } @@ -189,11 +205,11 @@ public class V2XAlarmServer { switch (levelListBean.getLevel()) { //正常 case "NORMAL": - Logger.d(MODULE_NAME, "驾驶疲劳程度: 正常"); + //Logger.d(MODULE_NAME, "驾驶疲劳程度: 正常"); break; //轻度 case "SLIGHT": - Logger.w(MODULE_NAME, "驾驶疲劳程度: 轻度"); + //Logger.w(MODULE_NAME, "驾驶疲劳程度: 轻度"); if (!mV2XFatigueDrivingEventLevel.contains("SLIGHT")) { mV2XFatigueDrivingEventLevel.add("SLIGHT"); drivingShowEntity.setShowWindow(false); @@ -208,15 +224,15 @@ public class V2XAlarmServer { break; //中度 case "MODERATE": - Logger.e(MODULE_NAME, "驾驶疲劳程度: 中度"); + //Logger.e(MODULE_NAME, "驾驶疲劳程度: 中度"); warningParkPoi(location, onFatigueDrivingListener, drivingShowEntity, levelListBean); break; //重度 case "SEVERE": - Logger.e(MODULE_NAME, "驾驶疲劳程度: 重度"); + //Logger.e(MODULE_NAME, "驾驶疲劳程度: 重度"); break; default: - Logger.e(MODULE_NAME, "驾驶疲劳程度: 超出定义范围"); + //Logger.e(MODULE_NAME, "驾驶疲劳程度: 超出定义范围"); break; } } @@ -238,7 +254,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; // 如果当前位置是高速则推荐服务区 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XEarlyWarningServer.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XEarlyWarningServer.java index 80c91f14f8..db5b7cabcf 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XEarlyWarningServer.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/alarm/V2XEarlyWarningServer.java @@ -4,22 +4,18 @@ import android.content.Intent; import androidx.localbroadcastmanager.content.LocalBroadcastManager; -import com.mogo.map.MogoLatLng; import com.mogo.map.location.MogoLocation; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.v2x.V2XConst; -import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.utils.DrivingDirectionUtils; import com.mogo.module.v2x.utils.EventTypeUtils; import com.mogo.module.v2x.utils.V2XUtils; -import com.mogo.service.share.IMogoTanluProvider; -import com.mogo.service.share.TanluUploadParams; import com.mogo.utils.logger.Logger; +import com.mogo.utils.network.utils.GsonUtil; import java.util.ArrayList; -import java.util.List; import java.util.Set; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @@ -30,7 +26,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; public class V2XEarlyWarningServer { private static final String TAG = "V2XEarlyWarningServer"; - private static List alertMessageId = new ArrayList<>(); + private static ArrayList alertMessageId = new ArrayList<>(); /** * 对提醒过的道路事件进行UGC检测 @@ -54,37 +50,49 @@ public class V2XEarlyWarningServer { (int) currentLocation.getBearing() ); - // 判断车辆行驶角度是否与事件相反,相反的话表示已经行驶过去了 - if (90 <= eventAngle && !alertMessageId.contains(v2XRoadEventEntity.getNoveltyInfo().getInfoId())) { - // 封路、施工、拥堵、拥堵 才会有UGC提示 - if (EventTypeUtils.isNeedRoadEventUgc(v2XRoadEventEntity.getPoiType())) { + double carBearing = currentLocation.getBearing(); + String roadInfoId = v2XRoadEventEntity.getNoveltyInfo().getInfoId(); - Logger.w(MODULE_NAME + "_" + TAG, "V2X预警UGC--事件与车头角度夹角过大:" + - "\n角度:" + eventAngle + " 度" + - "\n事件详情:" + v2XRoadEventEntity.getNoveltyInfo().getInfoId() + - "\n库存事件:" + V2XAlarmServer.mAlertRoadEventList.size() - ); + // 封路、施工、拥堵、拥堵 才会有UGC提示 + if (EventTypeUtils.isNeedRoadEventUgc(v2XRoadEventEntity.getPoiType())) { + Logger.w(MODULE_NAME, + "V2X预警--UGC检测:" + + "\n事件详情:" + roadInfoId + + "\n事件详情:" + EventTypeUtils.getPoiTypeStr(v2XRoadEventEntity.getPoiType()) + + "\n车头方向: " + carBearing + + "\n车与事件夹角:" + eventAngle + + "\n已经UGC的事件:" + GsonUtil.jsonFromObject(alertMessageId) + ); + // 判断是否预警过了 + if (!alertMessageId.contains(roadInfoId)) { + // 判断车辆行驶角度是否与事件相反,相反的话表示已经行驶过去了 + if (80 <= eventAngle) { + Logger.w(MODULE_NAME + "_" + TAG, "V2X预警UGC--事件与车头角度夹角过大:" + + "\n角度:" + eventAngle + " 度" + + "\n事件详情:" + roadInfoId + + "\n库存事件:" + V2XAlarmServer.mAlertRoadEventList.size() + ); - // 记录已经 UGC 提醒过的数据 - alertMessageId.add(v2XRoadEventEntity.getNoveltyInfo().getInfoId()); + // 记录已经 UGC 提醒过的数据 + alertMessageId.add(roadInfoId); + // 加载数据源 + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + // 控制类型 + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_EVENT_UGC_WARNING); + // 设置数据 + v2xMessageEntity.setContent(v2XRoadEventEntity); + // 控制展示状态 + v2xMessageEntity.setShowState(true); + // 弹出UGC + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); + LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); - // 加载数据源 - V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); - // 控制类型 - v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_EVENT_UGC_WARNING); - // 设置数据 - v2xMessageEntity.setContent(v2XRoadEventEntity); - // 控制展示状态 - v2xMessageEntity.setShowState(true); - // 弹出UGC - Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); - intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); - LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); - + } + // 移出已经预警的事件列表 + //V2XAlarmServer.mAlertRoadEventList.remove(v2XRoadEventEntity); } - // 移出已经预警的事件列表 - //V2XAlarmServer.mAlertRoadEventList.remove(v2XRoadEventEntity); } } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java index 584671293c..b5104f1925 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java @@ -154,11 +154,11 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList V2XServiceManager.getV2XStatusManager().getLocation()); // 距离是否大于10米 && 消息是否不为空 if (v2XRoadEventEntity != null && v2XRoadEventEntity.getDistance() >= 5) { - Logger.w(MODULE_NAME, - //"\nV2X预警--当前导航状态:" + V2XServiceManager.getNavi().isNaviing() + - //"\nV2X预警--roadEventIsNullCount:" + roadEventIsNullCount + - "\nV2X预警--当前预警事件:" + v2XRoadEventEntity - ); +// Logger.w(MODULE_NAME, +// //"\nV2X预警--当前导航状态:" + V2XServiceManager.getNavi().isNaviing() + +// //"\nV2X预警--roadEventIsNullCount:" + roadEventIsNullCount + +// "\nV2X预警--当前预警事件:" + v2XRoadEventEntity +// ); // Logger.w(MODULE_NAME, "V2X预警--前方数据距离:" + v2XRoadEventEntity.getDistance()); // 触发展示操作 TrackUtils.trackV2xRoadProduceEvent(1); @@ -229,7 +229,7 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList 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()); location.setAddress(regeocodeResult.getRegeocodeAddress().getFormatAddress()); // 如果有 "高速"、"环线"、"快速路"等字眼的,视为封闭式道路,流程结束; if (regeocodeResult.getRegeocodeAddress().getFormatAddress().contains("高速") @@ -257,7 +257,7 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList .queryIllegalPark(new V2XRefreshCallback() { @Override public void onSuccess(MarkerResponse result) { - Logger.i(MODULE_NAME, "搜索附近的违章停车点 成功:" + GsonUtil.jsonFromObject(result)); + //Logger.i(MODULE_NAME, "搜索附近的违章停车点 成功:" + GsonUtil.jsonFromObject(result)); if (result != null) { if (result.getResult().getExploreWay().size() > 0) { V2XMessageEntity> entity = new V2XMessageEntity<>(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java index de02286a2b..c7a66a11af 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java @@ -60,7 +60,7 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager { @Override public void drawableLastAllPOI() { - Logger.w(MODULE_NAME, "V2X---绘制上一次的POI,回调给Launcher底层逻辑让其进行绘制"); + //Logger.w(MODULE_NAME, "V2X---绘制上一次的POI,回调给Launcher底层逻辑让其进行绘制"); // 清除连接线 V2XServiceManager.getMoGoV2XPolylineManager().clearLine(); clearAlarmPOI(); @@ -521,7 +521,7 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager { try { V2XServiceManager.getMapUIController().changeMapMode(EnumMapUI.NorthUP_2D); V2XServiceManager.getMoGoV2XStatusManager().setRoadEventPOIShow(TAG, true); - Logger.i(MODULE_NAME, "绘制道路事件====drawableAlarmPOI:"); + //Logger.i(MODULE_NAME, "绘制道路事件====drawableAlarmPOI:"); // 清除原来的大而全的新鲜事儿 clearALLPOI(); if (roadEventEntity.getLocation() != null) { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java index 40ec88c69b..dd3773819e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java @@ -23,7 +23,7 @@ public class SceneBroadcastReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { try { V2XMessageEntity v2XMessageEntity = (V2XMessageEntity) intent.getSerializableExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY); - Logger.d(TAG, "v2XMessageEntity:" + GsonUtil.jsonFromObject(v2XMessageEntity)); + //Logger.d(TAG, "v2XMessageEntity:" + GsonUtil.jsonFromObject(v2XMessageEntity)); V2XScenarioManager.getInstance().handlerMessage(v2XMessageEntity); } catch (Exception e) { e.printStackTrace(); 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 86f303b9a6..a81d3afe76 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 @@ -55,7 +55,7 @@ public class V2XScenarioManager implements IV2XScenarioManager { @Override public void handlerMessage(V2XMessageEntity v2XMessageEntity) { - Logger.d(MODULE_NAME, "处理V2X场景:" + GsonUtil.jsonFromObject(v2XMessageEntity)); + //Logger.d(MODULE_NAME, "处理V2X场景:" + GsonUtil.jsonFromObject(v2XMessageEntity)); synchronized (V2XScenarioManager.class) { // 展示 V2XUtils.runOnUiThread(() -> { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/DrivingDirectionUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/DrivingDirectionUtils.java index f045b6d0c1..bd48e3f2ff 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/DrivingDirectionUtils.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/DrivingDirectionUtils.java @@ -1,5 +1,7 @@ package com.mogo.module.v2x.utils; +import static java.lang.Math.PI; + /** * author : donghongyu * e-mail : 1358506549@qq.com @@ -22,8 +24,8 @@ public class DrivingDirectionUtils { public static int getDegreeOfCar2Poi(double carLon, double carLat, double poiLon, double poiLat, int carAngle) { int poiAngle = 0; // 以子午线作为y轴 计算两点的余切 再将余切值转化为角度 - double _angle = Math.atan2(Math.abs(carLon - poiLon), Math.abs(carLat - poiLat)) * (180 / Math.PI); - + double _angle = Math.atan2(Math.abs(carLon - poiLon), Math.abs(carLat - poiLat)) * (180 / PI); + //Log.w(MODULE_NAME, "getDegreeOfCar2Poi_计算车辆行驶方向 与 poi点到车辆的连线 间的夹角_angle===" + _angle); if (poiLon > carLon) { // poi 在 车辆位置的第1象限 if (poiLat > carLat) { @@ -46,9 +48,27 @@ public class DrivingDirectionUtils { return calculationAngle(poiAngle, carAngle); } + /** + * 计算两个行驶方向间的夹角 计算结果小于180度 + * + * @param angle0 + * @param angle1 + * @return + */ + public static int calculationAngle(int angle0, int angle1) { + // 获取两方向间夹角 + int angle = Math.abs(angle0 - angle1); + if (angle > 180) { + int minAngle = Math.min(angle0, angle1); + int maxAngle = Math.max(angle0, angle1); + return 180 - Math.abs(minAngle + 180 - maxAngle); + } else { + return angle; + } + } /** - * 计算车辆行驶方向 与 poi点到车辆的连线 间的夹角 + * 计算车辆行驶方向角度,起点&终点经纬度 * * @param carLat 车辆位置 lat * @param carLon 车辆位置 lon @@ -58,7 +78,7 @@ public class DrivingDirectionUtils { public static int getCarAngle(double carLat, double carLon, double poiLat, double poiLon) { int poiAngle = 0; // 以子午线作为y轴 计算两点的余切 再将余切值转化为角度 - double _angle = Math.atan2(Math.abs(carLon - poiLon), Math.abs(carLat - poiLat)) * (180 / Math.PI); + double _angle = Math.atan2(Math.abs(carLon - poiLon), Math.abs(carLat - poiLat)) * (180 / PI); if (poiLon > carLon) { // poi 在 车辆位置的第1象限 @@ -87,23 +107,15 @@ public class DrivingDirectionUtils { } /** - * 计算两个行驶方向间的夹角 计算结果小于180度 + * 计算连两个角度差值 * - * @param angle0 - * @param angle1 - * @return + * @param angle1 角度1 + * @param angle2 角度2 + * @return 差值 */ - public static int calculationAngle(int angle0, int angle1) { - // 获取两方向间夹角 - int angle = Math.abs(angle0 - angle1); - if (angle > 180) { - int minAngle = Math.min(angle0, angle1); - int maxAngle = Math.max(angle0, angle1); - return 180 - Math.abs(minAngle + 180 - maxAngle); - } else { - return angle; - } + public static double getAngleDiff(double angle1, double angle2) { + // 两个角度差值较小 + return 180 - Math.abs(Math.abs(angle1 - angle2) - 180); } - } diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-ldpi/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-ldpi/module_services_online_car_panel_background_light.9.png new file mode 100644 index 0000000000..68f94c1278 Binary files /dev/null and b/skin/mogo-skin-light/src/main/module-services-res/drawable-ldpi/module_services_online_car_panel_background_light.9.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png index 507fa0fc36..68f94c1278 100644 Binary files a/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png and b/skin/mogo-skin-light/src/main/module-services-res/drawable-mdpi/module_services_online_car_panel_background_light.9.png differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png b/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png deleted file mode 100644 index 7ccbeaa582..0000000000 Binary files a/skin/mogo-skin-light/src/main/module-services-res/drawable-xhdpi/module_services_online_car_panel_background_light.9.png and /dev/null differ diff --git a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml index d126dfc22a..c9cb66b911 100644 --- a/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml +++ b/skin/mogo-skin-light/src/main/module-services-res/drawable/module_services_panel_item_bkg_light.xml @@ -2,7 +2,7 @@ - +