diff --git a/.idea/misc.xml b/.idea/misc.xml
index 21e99e2dc0..cd77a1f062 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 90a79fcceb..e070196a50 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -65,7 +65,7 @@ MOGO_BASE_SERVICES_SDK_VERSION = 1.2.1.22
# 探路
MOGO_MODULE_TANLU_VERSION=1.3.1.24
# 车聊聊
-CARCHATTING_VERSION=1.4.8
+CARCHATTING_VERSION=1.4.9
# 车聊聊接口
CARCHATTINGPROVIDER_VERSION=1.3.4
# 视频引导
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java
index 87093e57b9..53f5250437 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java
@@ -1,5 +1,6 @@
package com.mogo.module.common.entity;
+import com.mogo.map.location.MogoLocation;
import com.mogo.utils.sqlite.annotation.DbDatabase;
import com.mogo.utils.sqlite.annotation.DbField;
import com.mogo.utils.sqlite.annotation.DbTable;
@@ -68,4 +69,14 @@ public class V2XHistoryScenarioData {
public void setDispose(Boolean dispose) {
isDispose = dispose;
}
+
+ @Override
+ public V2XHistoryScenarioData clone() throws CloneNotSupportedException {
+ try {
+ return (V2XHistoryScenarioData) super.clone();
+ } catch (CloneNotSupportedException e) {
+ e.printStackTrace();
+ }
+ return this;
+ }
}
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 4ae6aa6541..bb79de34e4 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
@@ -59,7 +59,7 @@ public class V2XConst {
*/
public static final String V2X_ROAD_SHOW = "v2x_road_show";
public static final String V2X_ROAD_EVET = "v2x_road_event";
- public static final String V2X_ROAD_EVET_HISTORY_BUTTON = "V2X_button";
+ public static final String V2X_ROAD_EVET_HISTORY_BUTTON = "V2X_button_click";
/**
* V2X 道路事件操作类型
*/
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
index ce10423148..9aac886249 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
@@ -31,6 +31,7 @@ import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.share.IMogoShareManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
+import com.mogo.service.tanlu.IMogoTanluProvider;
import com.mogo.service.windowview.IMogoTopViewManager;
import com.mogo.service.windowview.IMogoWindowManager;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
@@ -54,7 +55,6 @@ public class V2XServiceManager {
private static IMogoLocationClient mMogoLocationClient;
private static IMogoGeoSearch mIMogoGeoSearch;
private static IMogoSearchManager mIMogoSearchManager;
-
private static IMogoTopViewManager mMogoTopViewManager;
private static IMogoStatusManager mMogoStatusManager;
private static IMogoWindowManager mIMogoWindowManager;
@@ -66,6 +66,7 @@ public class V2XServiceManager {
private static IMogoRefreshStrategyController mIMogoRefreshStrategyController;
private static IMogoMarkerService mIMogoMarkerService;
private static IMogoShareManager mIMogoShareManager;
+ private static IMogoTanluProvider mIMogoTanluProvider;
private static IMogoActionManager mMogoActionManager;
private static ICarsChattingProvider mCarsChattingProvider;
@@ -105,6 +106,7 @@ public class V2XServiceManager {
mIMogoSearchManager = mMogoServiceApis.getSearchManagerApi();
mIMogoMarkerService = mMogoServiceApis.getMarkerService();
mIMogoShareManager = mMogoServiceApis.getShareManager();
+ mIMogoTanluProvider = mMogoServiceApis.getTanluApi();
mMarkerManager = mMapService.getMarkerManager(context);
mNavi = mMapService.getNavi(context);
@@ -250,4 +252,11 @@ public class V2XServiceManager {
public static IMogoShareManager getMogoShareManager() {
return mIMogoShareManager;
}
+
+ public static IMogoTanluProvider getTanluManager() {
+ return mIMogoTanluProvider;
+ }
+
+
+
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java
index 22ee1d2379..806981ef15 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java
@@ -7,17 +7,21 @@ import android.widget.TextView;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.V2XEventShowEntity;
+import com.mogo.module.common.entity.V2XHistoryScenarioData;
+import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.scenario.scene.park.V2XIllegalParkScenario;
import com.mogo.module.v2x.utils.RoadConditionUtils;
+import com.mogo.module.v2x.utils.V2XSQLiteUtils;
import com.mogo.module.v2x.view.HeartLikeView;
import com.mogo.module.v2x.view.HeartUnLikeView;
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
import com.mogo.module.v2x.voice.V2XVoiceConstants;
import com.mogo.module.v2x.voice.V2XVoiceManager;
import com.mogo.utils.logger.Logger;
+import com.mogo.utils.network.utils.GsonUtil;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
@@ -101,6 +105,10 @@ public class V2XIllegalParkVH extends V2XBaseViewHolder {
*/
@Override
public void delayedCloseWindow() {
+ V2XHistoryScenarioData v2XHistoryScenarioData =new V2XHistoryScenarioData();
+ v2XHistoryScenarioData.setScenarioType(V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING);
+ v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(mExploreWay));
+ V2XSQLiteUtils.updateScenarioHistoryDataIsDispose(v2XHistoryScenarioData);
itemView.postDelayed(() -> V2XIllegalParkScenario.getInstance().close(), 1000);
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryOtherSeekHelpVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryOtherSeekHelpVH.java
index 1f42c55f26..e729e747b3 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryOtherSeekHelpVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XScenarioHistoryOtherSeekHelpVH.java
@@ -73,12 +73,6 @@ public class V2XScenarioHistoryOtherSeekHelpVH extends V2XBaseViewHolder implements SurroundingEventView,
+public class V2XSurroundingFragment extends MvpFragment implements SurroundingEventView,
View.OnClickListener, SurroundingItemClickListener {
private static final String TAG = "SurroundingFragment";
private RecyclerView mRecyclerView;
@@ -193,9 +196,6 @@ public class SurroundingEventFragment extends MvpFragment exploreWayList) {
+ Logger.e(TAG, "showBonndsRoadtion exploreWayList.size() = " + exploreWayList.size());
+ Rect rect = new Rect(
+ (int) getContext().getResources().getDimension(R.dimen.tanlu_module_map_left),
+ (int) getContext().getResources().getDimension(R.dimen.tanlu_module_map_top),
+ (int) getContext().getResources().getDimension(R.dimen.tanlu_module_map_right),
+ (int) getContext().getResources().getDimension(R.dimen.tanlu_module_map_bottom));
+
+ moveNotFresh();
+ //第一个参数:调用者,第二个参数:当前自车的位置,第三个参数:需要显示在范围内的点(不包含自车的位置)
+ //第四个参数:显示范围的UI边界,第五个参数:是否锁定自车位置(看业务需要)
+ V2XServiceManager.getMapUIController().showBounds(ServiceConst.CARD_TYPE_ROAD_CONDITION, null, getMogoList(exploreWayList), rect, false);
+ }
+
+ private void moveNotFresh() {
+ V2XServiceManager.getMoGoStatusManager().setUserInteractionStatus(TAG, true, false);
+ }
+
+ /**
+ * 构造经纬度列表
+ *
+ * @return
+ */
+ private List getMogoList(List markerExploreWayList) {
+ List list = new ArrayList<>();
+ if (markerExploreWayList != null && markerExploreWayList.size() > 0) {
+ if (markerExploreWayList.size() < 6) {
+ for (int i = 0; i < markerExploreWayList.size(); i++) {
+ MarkerLocation location = markerExploreWayList.get(i).getLocation();
+ if (location != null) {
+ MogoLatLng mogoLatLng = new MogoLatLng(location.getLat(), location.getLon());
+ list.add(mogoLatLng);
+ } else {
+ Logger.e(TAG, "getMogoList() < 6 location == null");
+ }
+ }
+ } else {
+ for (int i = 0; i < 6; i++) {
+ MarkerLocation location = markerExploreWayList.get(i).getLocation();
+ if (location != null) {
+ MogoLatLng mogoLatLng = new MogoLatLng(location.getLat(), location.getLon());
+ list.add(mogoLatLng);
+ } else {
+ Logger.e(TAG, "getMogoList() location == null");
+ }
+ }
+ }
+ } else {
+ Logger.e(TAG, "getMogoList() markerExploreWay == null");
+ }
+ return list;
+ }
+
+
@Override
public void onDestroy() {
super.onDestroy();
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 888fd9088c..029ffe5284 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
@@ -5,7 +5,10 @@ import android.content.Intent;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.mogo.module.common.entity.V2XMessageEntity;
+import com.mogo.module.common.entity.V2XRoadEventEntity;
+import com.mogo.module.service.carinfo.CarStateInfo;
import com.mogo.module.v2x.V2XConst;
+import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.scenario.IV2XScenarioManager;
import com.mogo.module.v2x.scenario.scene.animation.V2XAnimationScenario;
import com.mogo.module.v2x.scenario.scene.fatigue.V2XFatigueDrivingScenario;
@@ -66,7 +69,6 @@ public class V2XScenarioManager implements IV2XScenarioManager {
LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent);
mV2XScenario = mV2XScenarioSet.get(v2XMessageEntity.getType());
-
// 如果没有拿到之前的,根据类型分发
if (mV2XScenario == null) {
switch (v2XMessageEntity.getType()) {
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventScenario.java
index 754dc46370..ec404c9b60 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventScenario.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventScenario.java
@@ -5,6 +5,7 @@ import android.view.ViewGroup;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XRoadEventEntity;
+import com.mogo.module.service.ServiceConst;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
@@ -57,6 +58,10 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp
V2XRoadEventEntity v2XRoadEventEntity = v2XMessageEntity.getContent();
if (v2XRoadEventEntity != null) {
+ //上报路况
+ V2XServiceManager.getMoGoStatusManager().setUploadingStatus(ServiceConst.CARD_TYPE_ROAD_CONDITION, true);
+ V2XServiceManager.getTanluManager().uploadRoadCondition(v2XRoadEventEntity.getPoiType());
+
if (v2XMessageEntity.isShowState()) {
if (!isSameScenario(v2XMessageEntity)) {
// 更新要提醒的数据
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java
index 1ace54ff86..1be148ea12 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/V2XSQLiteUtils.java
@@ -76,6 +76,13 @@ public class V2XSQLiteUtils {
return getScenarioHistoryDao().query(new V2XHistoryScenarioData(), "triggerTime", true);
}
+ /**
+ * 查询当天的指定的V2X数据
+ */
+ public static List getTargetScenarioHistoryData(V2XHistoryScenarioData scenarioData) {
+ return getScenarioHistoryDao().query(scenarioData, "triggerTime", true);
+ }
+
/**
* 查询当天的未评价V2X数据
*/
@@ -99,7 +106,26 @@ public class V2XSQLiteUtils {
}
/**
- * 存储本地数据
+ * 修改指定的数据为已经操作的数据
+ */
+ public static void updateScenarioHistoryDataIsDispose(V2XHistoryScenarioData oldScenarioData) {
+ try {
+ V2XHistoryScenarioData newScenarioData = new V2XHistoryScenarioData();
+ newScenarioData.setDispose(true);
+ newScenarioData.setTriggerTime(TimeUtils.getNowMills());
+ newScenarioData.setEventJsonData(oldScenarioData.getEventJsonData());
+ newScenarioData.setScenarioType(oldScenarioData.getScenarioType());
+
+ int result = getScenarioHistoryDao().update(oldScenarioData, newScenarioData);
+ Logger.d(V2XConst.MODULE_NAME, "修改数据成功:" + result);
+ V2XEventPanelFragment.Companion.getInstance().changeEventCount();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 存储本地数据,每个数据只能存在一次,所以存储之前先查询数据库如果已经存在则修改触碰时间
*
* @param markerExploreWay 要存储的场景
*/
@@ -108,10 +134,20 @@ public class V2XSQLiteUtils {
// 进行数据库存储
V2XHistoryScenarioData v2XHistoryScenarioData = new V2XHistoryScenarioData();
v2XHistoryScenarioData.setScenarioType(scenarioType);
- v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills());
v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(markerExploreWay));
+
+ List historyScenarioData = getTargetScenarioHistoryData(v2XHistoryScenarioData);
+
+ v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills());
v2XHistoryScenarioData.setDispose(false);
- V2XSQLiteUtils.getScenarioHistoryDao().insert(v2XHistoryScenarioData);
+
+ if (historyScenarioData != null && historyScenarioData.size() > 0) {
+ // 更新数据
+ V2XSQLiteUtils.getScenarioHistoryDao().update(historyScenarioData.get(0), v2XHistoryScenarioData);
+ } else {
+ // 存储新数据
+ V2XSQLiteUtils.getScenarioHistoryDao().insert(v2XHistoryScenarioData);
+ }
V2XEventPanelFragment.Companion.getInstance().changeEventCount();
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_surrounding_item.xml b/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_surrounding_item.xml
new file mode 100644
index 0000000000..b92c805da1
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_surrounding_item.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_scennario_history_other_help.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_scennario_history_other_help.xml
index 16f6583eaa..742913252d 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_scennario_history_other_help.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_scennario_history_other_help.xml
@@ -40,9 +40,11 @@
android:text="待援助"
android:textColor="#ffffff"
android:textSize="@dimen/dp_28"
+ android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tagEventType"
app:layout_constraintStart_toEndOf="@+id/tagEventType"
- app:layout_constraintTop_toTopOf="@+id/tagEventType" />
+ app:layout_constraintTop_toTopOf="@+id/tagEventType"
+ tools:visibility="visible" />
+ android:background="@drawable/bg_v2x_event_surrounding_item">
80px
6px
+ 550px
+ 200px
+ 200px
+ 100px
+
diff --git a/modules/mogo-module-v2x/src/main/res/values/dimens.xml b/modules/mogo-module-v2x/src/main/res/values/dimens.xml
index bd225eb0a4..12bbc42e11 100644
--- a/modules/mogo-module-v2x/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-v2x/src/main/res/values/dimens.xml
@@ -26,5 +26,9 @@
40px
6px
16px
+ 550px
+ 200px
+ 200px
+ 100px