diff --git a/.idea/misc.xml b/.idea/misc.xml
index 47f1a4e1d4..2db9aab721 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index 2cd8909cf7..1e2af9ad7a 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -333,6 +333,14 @@
(java.lang.Throwable);
}
+#-----Netty-----
+-keepattributes Signature,InnerClasses
+-keepclasseswithmembers class io.netty.** {
+ *;
+}
+-dontwarn io.netty.**
+-dontwarn sun.**
+
#-----ZhiDaoService-----
-keep class com.zhidao.auto.platform.**{*;}
-keep class com.zhidao.auto.carcorder.**{*;}
@@ -340,6 +348,7 @@
-keep class com.zhidao.boot.**{*;}
-keep class com.elegant.**{*;}
-keep class com.zhidao.socketsdk.**{*;}
+-keep class com.zhidao.socket.**{*;}
-keep class com.zhidao.ptech.**{*;}
-keep class com.zhidao.autopilotcore.**{*;}
-keep class com.zhidao.autopilot.support.**{*;}
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java
index 4eb76d1be3..b6645fa28c 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java
@@ -30,7 +30,7 @@ public class ParamsUtil {
public static Map< String, Object > getDynamicParams() {
Map< String, Object > params = new ArrayMap();
- final Map location = LocationHelper.getInstance().getLocationProperties();
+ final Map< String, Object > location = LocationHelper.getInstance().getLocationProperties();
if ( location != null ) {
params.putAll( location );
}
@@ -71,7 +71,8 @@ public class ParamsUtil {
public static Map< String, Object > getAnalyticsCustomParams() {
Map< String, Object > map = new ArrayMap<>();
map.put( "debug", DebugConfig.isDebug() ? 1 : 0 );
- map.put( "systemversion", Utils.getFotaVersion() );
+ String fota = Utils.getFotaVersion();
+ map.put( "systemversion", TextUtils.isEmpty( fota ) ? DebugConfig.getProductFlavor() : fota );
map.put( "sn", Utils.getSn() );
return map;
}
diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/sqlite/BaseDao.kt b/foudations/mogo-utils/src/main/java/com/mogo/utils/sqlite/BaseDao.kt
index c755822a6b..b144237096 100644
--- a/foudations/mogo-utils/src/main/java/com/mogo/utils/sqlite/BaseDao.kt
+++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/sqlite/BaseDao.kt
@@ -3,6 +3,7 @@ package com.mogo.utils.sqlite
import android.content.ContentValues
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
+import com.mogo.utils.logger.Logger
import com.mogo.utils.sqlite.annotation.DbField
import com.mogo.utils.sqlite.annotation.DbTable
import java.lang.reflect.Field
@@ -15,13 +16,17 @@ import java.util.*
*/
//T必须指明上界是Any且不为null,下面会用到反射获取对象实例,默认是Any?
open class BaseDao : IBaseDao {
+ private val TAG = "BaseDao"
//数据库操作的引用
private var sqLiteDatabase: SQLiteDatabase? = null
+
//要操作的数据实体的引用
private var entityClass: Class? = null
+
//要操作的数据表名称
private var tableName: String? = null
+
//记录数据表是否存在
private var isInit = false
@@ -44,6 +49,8 @@ open class BaseDao : IBaseDao {
//执行Sql进行自动建表
val createTableSql = getCreateTableSql()
+ Logger.d(TAG, "执行SQL:$createTableSql")
+
sqLiteDatabase.execSQL(createTableSql)
//初始化缓存空间
@@ -101,16 +108,16 @@ open class BaseDao : IBaseDao {
//获取成员变量数据类型
when (val fieldType = field.type) {
- String::class.java -> {
+ java.lang.String::class.java -> {
sqlCreateTable.append("$columnName TEXT,")
}
- Integer::class.java -> {
+ java.lang.Integer::class.java -> {
sqlCreateTable.append("$columnName INTEGER,")
}
- Long::class.java -> {
+ java.lang.Long::class.java -> {
sqlCreateTable.append("$columnName BIGINT,")
}
- Double::class.java -> {
+ java.lang.Double::class.java -> {
sqlCreateTable.append("$columnName DOUBLE,")
}
ByteArray::class.java -> {
@@ -156,11 +163,11 @@ open class BaseDao : IBaseDao {
return if (sqLiteDatabase != null && sqLiteDatabase!!.isOpen) {
//受影响行数
sqLiteDatabase!!
- .delete(
- tableName,
- condition.getWhereCause(),
- condition.getWhereArgs()
- )
+ .delete(
+ tableName,
+ condition.getWhereCause(),
+ condition.getWhereArgs()
+ )
} else {
-1
}
@@ -175,12 +182,12 @@ open class BaseDao : IBaseDao {
return if (sqLiteDatabase != null && sqLiteDatabase!!.isOpen) {
//受影响行数
sqLiteDatabase!!
- .update(
- tableName,
- getContentValuesForInsert(newEntity),
- condition.getWhereCause(),
- condition.getWhereArgs()
- )
+ .update(
+ tableName,
+ getContentValuesForInsert(newEntity),
+ condition.getWhereCause(),
+ condition.getWhereArgs()
+ )
} else {
-1
}
@@ -218,16 +225,16 @@ open class BaseDao : IBaseDao {
try {
//查询数据库
cursor = sqLiteDatabase!!
- .query(
- tableName,
- null,
- condition.getWhereCause(),
- condition.getWhereArgs(),
- null,
- null,
- orderBy,
- limitString
- )
+ .query(
+ tableName,
+ null,
+ condition.getWhereCause(),
+ condition.getWhereArgs(),
+ null,
+ null,
+ orderBy,
+ limitString
+ )
//将查到结果添加到返回集合中
result.addAll(getQueryResult(cursor, where))
} catch (e: Exception) {
@@ -344,16 +351,16 @@ open class BaseDao : IBaseDao {
if (columnIndex != -1) {
when (fieldType) {
- String::class.java -> {
+ java.lang.String::class.java -> {
field.set(item, cursor.getString(columnIndex))
}
- Integer::class.java -> {
+ java.lang.Integer::class.java -> {
field.set(item, cursor.getInt(columnIndex))
}
- Long::class.java -> {
+ java.lang.Long::class.java -> {
field.set(item, cursor.getLong(columnIndex))
}
- Double::class.java -> {
+ java.lang.Double::class.java -> {
field.set(item, cursor.getDouble(columnIndex))
}
ByteArray::class.java -> {
@@ -392,16 +399,16 @@ open class BaseDao : IBaseDao {
//获取成员变量数据类型
val fieldType = it.value.type
when (fieldType) {
- String::class.java -> {
+ java.lang.String::class.java -> {
contentValues.put(columnName, valueObject as String)
}
- Integer::class.java -> {
+ java.lang.Integer::class.java -> {
contentValues.put(columnName, valueObject as Int)
}
- Long::class.java -> {
+ java.lang.Long::class.java -> {
contentValues.put(columnName, valueObject as Long)
}
- Double::class.java -> {
+ java.lang.Double::class.java -> {
contentValues.put(columnName, valueObject as Double)
}
ByteArray::class.java -> {
@@ -417,6 +424,8 @@ open class BaseDao : IBaseDao {
}
}
+ Logger.d(TAG, "contentValues:$contentValues")
+
return contentValues
}
diff --git a/gradle.properties b/gradle.properties
index 498163003e..bd95a0fa2d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -104,5 +104,5 @@ MOGO_MODULE_SPLASH_NOOP_VERSION = 1.0.0-SNAPSHOT
## 产品库必备配置
applicationId=com.mogo.launcer
applicationName=IntelligentPilot
-versionCode=80006
-versionName=8.0.6
\ No newline at end of file
+versionCode=80007
+versionName=8.0.7-qa_1.1
\ No newline at end of file
diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
index b02cbfaee4..aef3a1b430 100644
--- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
+++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java
@@ -321,6 +321,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
@Override
public void onNaviMapMode( int mode ) {
Logger.i( TAG, "mode=" + mode );
+ MogoMapListenerHandler.getInstance().onMapModeChanged( mode == 0 ? EnumMapUI.CarUp_2D : EnumMapUI.NorthUP_2D );
}
@Override
diff --git a/libraries/map-amap/src/main/res/drawable-ldpi/map_api_ic_current_location2.png b/libraries/map-amap/src/main/res/drawable-ldpi/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..5d2d79c7e5
Binary files /dev/null and b/libraries/map-amap/src/main/res/drawable-ldpi/map_api_ic_current_location2.png differ
diff --git a/libraries/map-amap/src/main/res/drawable-mdpi/map_api_ic_current_location2.png b/libraries/map-amap/src/main/res/drawable-mdpi/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..5d2d79c7e5
Binary files /dev/null and b/libraries/map-amap/src/main/res/drawable-mdpi/map_api_ic_current_location2.png differ
diff --git a/libraries/map-amap/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png b/libraries/map-amap/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..06fb9a934e
Binary files /dev/null and b/libraries/map-amap/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png differ
diff --git a/libraries/map-amap/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png b/libraries/map-amap/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..c24c56f3db
Binary files /dev/null and b/libraries/map-amap/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png b/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png
index 72352286de..5d2d79c7e5 100644
Binary files a/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png and b/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-mdpi/map_api_ic_current_location2.png b/libraries/mogo-map-api/src/main/res/drawable-mdpi/map_api_ic_current_location2.png
index 72352286de..5d2d79c7e5 100644
Binary files a/libraries/mogo-map-api/src/main/res/drawable-mdpi/map_api_ic_current_location2.png and b/libraries/mogo-map-api/src/main/res/drawable-mdpi/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..06fb9a934e
Binary files /dev/null and b/libraries/mogo-map-api/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png
new file mode 100644
index 0000000000..c24c56f3db
Binary files /dev/null and b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png differ
diff --git a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.webp b/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.webp
deleted file mode 100644
index 430a645b09..0000000000
Binary files a/libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.webp and /dev/null differ
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
index 98c3b35002..70c0f7f2c5 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerUserInfo.java
@@ -114,6 +114,14 @@ public class MarkerUserInfo implements Serializable {
this.gender = gender;
}
+ public void setGender(int gender) {
+ if (gender == 0) {
+ this.gender = "男";
+ } else {
+ this.gender = "女";
+ }
+ }
+
public String getSn() {
if (TextUtils.isEmpty(sn)) {
return "";
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventShowEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventShowEntity.java
index a099e4db17..e0ee2e5bec 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventShowEntity.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XEventShowEntity.java
@@ -1,7 +1,13 @@
package com.mogo.module.common.entity;
+import androidx.annotation.IntDef;
+
import java.io.Serializable;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
import java.util.List;
import java.util.Objects;
@@ -14,7 +20,8 @@ import java.util.Objects;
*/
public class V2XEventShowEntity implements Serializable {
- // 0---默认展示详情,1--直播,4--道路事件详情
+ // 0---默认展示详情,1--直播,
+ @ViewType
private int viewType;
// 道路事件详情
@@ -23,6 +30,10 @@ public class V2XEventShowEntity implements Serializable {
private V2XLiveCarInfoEntity v2XLiveCarInfoRes;
// 直播车机列表
private List v2XLiveCarList;
+ // 推送信息,疲劳驾驶,他人发起故障求助
+ private V2XPushMessageEntity v2XPushMessageEntity;
+ // 违章停车
+ private MarkerExploreWay v2XIllegalPark;
public int getViewType() {
return viewType;
@@ -56,6 +67,22 @@ public class V2XEventShowEntity implements Serializable {
this.v2XLiveCarList = v2XLiveCarList;
}
+ public V2XPushMessageEntity getV2XPushMessageEntity() {
+ return v2XPushMessageEntity;
+ }
+
+ public void setV2XPushMessageEntity(V2XPushMessageEntity v2XPushMessageEntity) {
+ this.v2XPushMessageEntity = v2XPushMessageEntity;
+ }
+
+ public MarkerExploreWay getV2XIllegalPark() {
+ return v2XIllegalPark;
+ }
+
+ public void setV2XIllegalPark(MarkerExploreWay v2XIllegalPark) {
+ this.v2XIllegalPark = v2XIllegalPark;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -68,21 +95,35 @@ public class V2XEventShowEntity implements Serializable {
return viewType == that.viewType &&
Objects.equals(v2XRoadEventEntity, that.v2XRoadEventEntity) &&
Objects.equals(v2XLiveCarInfoRes, that.v2XLiveCarInfoRes) &&
- Objects.equals(v2XLiveCarList, that.v2XLiveCarList);
+ Objects.equals(v2XLiveCarList, that.v2XLiveCarList) &&
+ Objects.equals(v2XPushMessageEntity, that.v2XPushMessageEntity) &&
+ Objects.equals(v2XIllegalPark, that.v2XIllegalPark);
}
@Override
public int hashCode() {
- return Objects.hash(viewType, v2XRoadEventEntity, v2XLiveCarInfoRes, v2XLiveCarList);
+ return Objects.hash(viewType, v2XRoadEventEntity,
+ v2XLiveCarInfoRes, v2XLiveCarList,
+ v2XPushMessageEntity, v2XIllegalPark);
}
- @Override
- public String toString() {
- return "V2XEventShowEntity{" +
- "viewType=" + viewType +
- ", v2XRoadEventEntity=" + v2XRoadEventEntity +
- ", v2XLiveCarInfoRes=" + v2XLiveCarInfoRes +
- ", v2XLiveCarList=" + v2XLiveCarList +
- '}';
+
+ @IntDef(value = {
+ V2XWindowTypeEnum.DEFAULT_WINDOW,
+ V2XWindowTypeEnum.LIVE_CAR_WINDOW,
+ V2XWindowTypeEnum.ROAD_EVENT_WINDOW,
+ V2XWindowTypeEnum.PUSH_EVENT_WINDOW,
+ V2XWindowTypeEnum.ANIMATION_WINDOW,
+ V2XWindowTypeEnum.FATIGUE_DRIVING_WINDOW,
+ V2XWindowTypeEnum.SEEK_HELP_WINDOW,
+ V2XWindowTypeEnum.ILLEGAL_PARK_WINDOW,
+ })
+ @Target({
+ ElementType.PARAMETER,
+ ElementType.FIELD,
+ ElementType.METHOD,
+ }) //表示注解作用范围,参数注解,成员注解,方法注解
+ @Retention(RetentionPolicy.SOURCE) //表示注解所存活的时间,在运行时,而不会存在 .class 文件中
+ public @interface ViewType { //接口,定义新的注解类型
}
}
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
new file mode 100644
index 0000000000..57e9953db1
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XHistoryScenarioData.java
@@ -0,0 +1,57 @@
+package com.mogo.module.common.entity;
+
+import com.mogo.utils.sqlite.annotation.DbDatabase;
+import com.mogo.utils.sqlite.annotation.DbField;
+import com.mogo.utils.sqlite.annotation.DbTable;
+
+/**
+ * V2X 道路历史事件
+ *
+ * @author donghongyu
+ */
+@DbDatabase(dbName = "MoGoScenario.db")
+@DbTable(tableName = "tb_history_scenario")
+public class V2XHistoryScenarioData {
+
+ /**
+ * 事件类型
+ */
+ @DbField(fieldName = "scenarioType")
+ public Integer scenarioType;
+
+ /**
+ * 事件触发时间
+ */
+ @DbField(fieldName = "triggerTime")
+ public Long triggerTime;
+
+ /**
+ * 事件json
+ */
+ @DbField(fieldName = "eventJsonData")
+ public String eventJsonData;
+
+ public Integer getScenarioType() {
+ return scenarioType;
+ }
+
+ public void setScenarioType(Integer scenarioType) {
+ this.scenarioType = scenarioType;
+ }
+
+ public String getEventJsonData() {
+ return eventJsonData;
+ }
+
+ public void setEventJsonData(String eventJsonData) {
+ this.eventJsonData = eventJsonData;
+ }
+
+ public Long getTriggerTime() {
+ return triggerTime;
+ }
+
+ public void setTriggerTime(Long triggerTime) {
+ this.triggerTime = triggerTime;
+ }
+}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPoiTypeEnum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPoiTypeEnum.java
index 6624758b81..a972ffe0e6 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPoiTypeEnum.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPoiTypeEnum.java
@@ -18,14 +18,14 @@ public interface V2XPoiTypeEnum extends MarkerPoiTypeEnum {
String ALERT_TRAFFIC_LIGHT_WARNING = "99996";
// 故障车辆
int ALERT_CAR_TROUBLE_WARNING = 20007;
+ // 疲劳驾驶
+ String ALERT_FATIGUE_DRIVING = "99993";
+ // 违章停车
+ String ALERT_ILLEGAL_PARK = "99992";
// TODO 这里目前是演示DEMO会用到,想着是打算商用,先这么处理的
// 取快递
String ALERT_TRAFFIC_EXPRESS = "99995";
// 顺风车
String ALERT_TRAFFIC_TAXI = "99994";
- // 疲劳驾驶
- String ALERT_FATIGUE_DRIVING = "99993";
- // 违章停车
- String ALERT_ILLEGAL_PARK = "99992";
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPushMessageEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPushMessageEntity.java
index 4c4d1af587..78e6e6e47d 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPushMessageEntity.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPushMessageEntity.java
@@ -28,6 +28,7 @@ public class V2XPushMessageEntity implements Serializable {
private String videoSn;
private String videoChannel;
private int expireTime;
+ private long createTime;
private double lat;
private double lon;
private String sn;
@@ -37,6 +38,11 @@ public class V2XPushMessageEntity implements Serializable {
private double distance;
private boolean isShowWindow;
+ private int age;
+ private String displayName;
+ private int sex;
+ private long userId;
+
public int getViewType() {
return viewType;
}
@@ -220,10 +226,54 @@ public class V2XPushMessageEntity implements Serializable {
isShowWindow = showWindow;
}
+ public long getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(long createTime) {
+ this.createTime = createTime;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public int getSex() {
+ return sex;
+ }
+
+ public void setSex(int sex) {
+ this.sex = sex;
+ }
+
+ public long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(long userId) {
+ this.userId = userId;
+ }
+
@Override
public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
V2XPushMessageEntity that = (V2XPushMessageEntity) o;
return Objects.equals(sceneId, that.sceneId) &&
Objects.equals(tts, that.tts);
@@ -234,31 +284,5 @@ public class V2XPushMessageEntity implements Serializable {
return Objects.hash(sceneId, tts);
}
- @Override
- public String toString() {
- return "V2XPushMessageEntity{" +
- "viewType=" + viewType +
- ", sceneId='" + sceneId + '\'' +
- ", sceneName='" + sceneName + '\'' +
- ", sceneCategory=" + sceneCategory +
- ", sceneLevel=" + sceneLevel +
- ", sceneDescription='" + sceneDescription + '\'' +
- ", zoom=" + zoom +
- ", zoomScale=" + zoomScale +
- ", alarmContent='" + alarmContent + '\'' +
- ", tts='" + tts + '\'' +
- ", videoUrl='" + videoUrl + '\'' +
- ", videoSn='" + videoSn + '\'' +
- ", videoChannel='" + videoChannel + '\'' +
- ", expireTime=" + expireTime +
- ", lat=" + lat +
- ", lon=" + lon +
- ", sn='" + sn + '\'' +
- ", headImgUrl='" + headImgUrl + '\'' +
- ", msgImgUrl='" + msgImgUrl + '\'' +
- ", address='" + address + '\'' +
- ", distance=" + distance +
- ", isShowWindow=" + isShowWindow +
- '}';
- }
+
}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/EventPagerAdapter.kt b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/EventPagerAdapter.kt
index 97d9514975..d958b6bff1 100644
--- a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/EventPagerAdapter.kt
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/EventPagerAdapter.kt
@@ -3,6 +3,7 @@ package com.zhidao.mogo.module.event.panel.adapter
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.zhidao.mogo.module.event.panel.fragment.MyShareFragment
+import com.zhidao.mogo.module.event.panel.fragment.ShareEventsFragment
import com.zhidao.mogo.module.event.panel.fragment.SurroundingEventFragment
import com.zhidao.mogo.module.event.panel.fragment.TripRecordFragment
@@ -12,7 +13,7 @@ import com.zhidao.mogo.module.event.panel.fragment.TripRecordFragment
* @author tongchenfei
*/
class EventPagerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
- private val fragments:Array = arrayOf(TripRecordFragment(), SurroundingEventFragment(), MyShareFragment())
+ private val fragments:Array = arrayOf(TripRecordFragment(), SurroundingEventFragment(), ShareEventsFragment())
/**
* 目前一共就三个fragment
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/ShareEventAdapter.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/ShareEventAdapter.java
new file mode 100644
index 0000000000..c5a302e305
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/adapter/ShareEventAdapter.java
@@ -0,0 +1,195 @@
+package com.zhidao.mogo.module.event.panel.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.service.IMogoServiceApis;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.utils.DateTimeUtils;
+import com.zhidao.mogo.module.event.panel.R;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventDescription;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventItem;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventItemEnum;
+import com.zhidao.mogo.module.event.panel.fragment.EventPanelFragment;
+
+import java.util.ArrayList;
+
+public class ShareEventAdapter extends RecyclerView.Adapter {
+ private Context context;
+ private ArrayList dataArrayList;
+ private final LayoutInflater shareLayoutInflater;
+ private boolean emptylist;//分享空白页
+ private IMogoServiceApis mApis;
+
+ public void setEmptylist(boolean emptylist) {
+ this.emptylist = emptylist;
+ }
+
+ public ShareEventAdapter(Context context, ArrayList dataArrayList) {
+ this.context = context;
+ this.dataArrayList = dataArrayList;
+ shareLayoutInflater = LayoutInflater.from(context);
+ mApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context);
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ //根据viewType创建自定义布局
+ if (viewType == ShareEventItemEnum.ITEM_TYPE_NUM_DES) {
+ View v = shareLayoutInflater.inflate(R.layout.module_event_panel_share_description, parent,
+ false);
+ shareDescriptionViewHolder holder = new shareDescriptionViewHolder(v);
+ return holder;
+ } else if (viewType == ShareEventItemEnum.ITEM_TYPE_SHARE_LIST) {
+ View v = shareLayoutInflater.inflate(R.layout.module_event_panel_share_item, parent,
+ false);
+ shareItemViewHolder holder = new shareItemViewHolder(v);
+ return holder;
+ } else if (viewType == ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY) {
+ View v = shareLayoutInflater.inflate(R.layout.module_event_panel_share_empty, parent,
+ false);
+ shareEmptyViewHolder holder = new shareEmptyViewHolder(v);
+ return holder;
+ } else {
+ View v = shareLayoutInflater.inflate(R.layout.module_event_panel_share_load_status, parent,
+ false);
+ shareLoadStatusViewHolder holder = new shareLoadStatusViewHolder(v);
+ return holder;
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+
+ if (holder instanceof shareDescriptionViewHolder) {
+ if (dataArrayList.size() > position) {
+ ShareEventDescription.ResultBean.EnthusiasmIndexBean data = (ShareEventDescription.ResultBean.EnthusiasmIndexBean) dataArrayList.get(position);
+ if (data != null) {
+ String shareNum = String.valueOf(data.getShareNum());
+ String likeNum = String.valueOf(data.getLikeNum());
+ if (shareNum != null) {
+ ((shareDescriptionViewHolder) holder).shareNumTextView.setText(shareNum);
+ }
+ if (likeNum != null) {
+ ((shareDescriptionViewHolder) holder).approveNumTextView.setText(likeNum);
+ }
+ }
+ }
+ } else if (holder instanceof shareItemViewHolder) {
+ if (dataArrayList.size() > position) {
+ ShareEventItem.ResultBean.PageBean.ContentBean data = (ShareEventItem.ResultBean.PageBean.ContentBean) dataArrayList.get(position);
+ if (data != null) {
+ String poitype = data.getPoiType();
+ String address = data.getUploadAddress();
+ String time = DateTimeUtils.getTimeText(data.getUploadTimestamp());
+ String likeNum = String.valueOf(data.getLikeNum());
+ String notLikeNum = String.valueOf(data.getNotLikeNum());
+ if (poitype != null) {
+ ((shareItemViewHolder) holder).caseStyleTextView.setText(poitype);
+ }
+ if (address != null) {
+ ((shareItemViewHolder) holder).caseAddressTextView.setText(address);
+ }
+ if (time != null) {
+ ((shareItemViewHolder) holder).caseTimeTextView.setText(time);
+ }
+ if (likeNum != null) {
+ ((shareItemViewHolder) holder).caseUsefulTextView.setText(likeNum);
+ }
+ if (notLikeNum != null) {
+ ((shareItemViewHolder) holder).caseUselessTextView.setText(notLikeNum);
+ }
+ }
+
+ }
+ } else if (holder instanceof shareLoadStatusViewHolder) {
+ ((shareLoadStatusViewHolder) holder).statusButton.setText("加载更多");
+ }
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataArrayList.size() + ((this.emptylist == true) ? 1 : 0);
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if (position == 0) {
+ return ShareEventItemEnum.ITEM_TYPE_NUM_DES;
+ }
+ if (emptylist == true) {
+ return ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY;
+ }
+ return ShareEventItemEnum.ITEM_TYPE_SHARE_LIST;
+ }
+
+ /*
+ * 分享列表
+ * */
+ class shareItemViewHolder extends RecyclerView.ViewHolder {
+ private TextView caseStyleTextView;
+ private TextView caseAddressTextView;
+ private TextView caseTimeTextView;
+ private TextView caseUsefulTextView;
+ private TextView caseUselessTextView;
+
+ public shareItemViewHolder(@NonNull View itemView) {
+ super(itemView);
+ caseStyleTextView = itemView.findViewById(R.id.road_case_style);
+ caseAddressTextView = itemView.findViewById(R.id.road_case_address);
+ caseTimeTextView = itemView.findViewById(R.id.road_case_share_time);
+ caseUsefulTextView = itemView.findViewById(R.id.road_case_useful_num);
+ caseUselessTextView = itemView.findViewById(R.id.road_case_useless_num);
+ }
+ }
+
+ /*
+ * 分享次数,热心指数...
+ * */
+ class shareDescriptionViewHolder extends RecyclerView.ViewHolder {
+ private TextView shareNumTextView;
+ private TextView approveNumTextView;
+
+ public shareDescriptionViewHolder(@NonNull View itemView) {
+ super(itemView);
+ shareNumTextView = itemView.findViewById(R.id.share_num);
+ approveNumTextView = itemView.findViewById(R.id.share_approve);
+ }
+ }
+
+ /*
+ * 去分享
+ * */
+ class shareEmptyViewHolder extends RecyclerView.ViewHolder {
+ public shareEmptyViewHolder(@NonNull View itemView) {
+ super(itemView);
+ Button shareBtn = itemView.findViewById(R.id.share_event_button);
+ shareBtn.setOnClickListener(view -> {
+ EventPanelFragment.Companion.getInstance().hidePanel();
+ mApis.getShareManager().showShareDialog();
+ });
+ }
+ }
+
+ /*
+ * 加载更多/没有更多
+ * */
+ class shareLoadStatusViewHolder extends RecyclerView.ViewHolder {
+ private TextView statusButton;
+
+ public shareLoadStatusViewHolder(@NonNull View itemView) {
+ super(itemView);
+ statusButton = itemView.findViewById(R.id.event_share_load_status);
+ }
+ }
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventDescription.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventDescription.java
new file mode 100644
index 0000000000..4cae136d3f
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventDescription.java
@@ -0,0 +1,159 @@
+package com.zhidao.mogo.module.event.panel.bean;
+
+import com.mogo.commons.data.BaseData;
+
+import java.io.Serializable;
+
+public class ShareEventDescription extends BaseData implements Serializable {
+
+ /**
+ * detailMsg :
+ * result : {"enthusiasmIndex":{"id":68,"sn":"ZD802B1932L00622","score":10,"shareNum":1024,"likeNum":0,"notLikeNum":0,"enthusiasmIndex":1,"createTime":"2020-07-28T06:21:11.523+0000","updateTime":"2020-07-28T06:21:11.523+0000"}}
+ */
+
+ private String detailMsg;
+ private ResultBean result;
+
+ public String getDetailMsg() {
+ return detailMsg;
+ }
+
+ public void setDetailMsg(String detailMsg) {
+ this.detailMsg = detailMsg;
+ }
+
+ public ResultBean getResult() {
+ return result;
+ }
+
+ public void setResult(ResultBean result) {
+ this.result = result;
+ }
+
+ public static class ResultBean {
+ /**
+ * enthusiasmIndex : {"id":68,"sn":"ZD802B1932L00622","score":10,"shareNum":1024,"likeNum":0,"notLikeNum":0,"enthusiasmIndex":1,"createTime":"2020-07-28T06:21:11.523+0000","updateTime":"2020-07-28T06:21:11.523+0000"}
+ */
+
+ private EnthusiasmIndexBean enthusiasmIndex;
+
+ public EnthusiasmIndexBean getEnthusiasmIndex() {
+ return enthusiasmIndex;
+ }
+
+ public void setEnthusiasmIndex(EnthusiasmIndexBean enthusiasmIndex) {
+ this.enthusiasmIndex = enthusiasmIndex;
+ }
+
+ public static class EnthusiasmIndexBean {
+ @Override
+ public String toString() {
+ return "EnthusiasmIndexBean{" +
+ "id=" + id +
+ ", sn='" + sn + '\'' +
+ ", score=" + score +
+ ", shareNum=" + shareNum +
+ ", likeNum=" + likeNum +
+ ", notLikeNum=" + notLikeNum +
+ ", enthusiasmIndex=" + enthusiasmIndex +
+ ", createTime='" + createTime + '\'' +
+ ", updateTime='" + updateTime + '\'' +
+ '}';
+ }
+
+ /**
+ * id : 68
+ * sn : ZD802B1932L00622
+ * score : 10
+ * shareNum : 1024
+ * likeNum : 0
+ * notLikeNum : 0
+ * enthusiasmIndex : 1.0
+ * createTime : 2020-07-28T06:21:11.523+0000
+ * updateTime : 2020-07-28T06:21:11.523+0000
+ */
+
+ private int id;
+ private String sn;
+ private int score;
+ private int shareNum;
+ private int likeNum;
+ private int notLikeNum;
+ private double enthusiasmIndex;
+ private String createTime;
+ private String updateTime;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getSn() {
+ return sn;
+ }
+
+ public void setSn(String sn) {
+ this.sn = sn;
+ }
+
+ public int getScore() {
+ return score;
+ }
+
+ public void setScore(int score) {
+ this.score = score;
+ }
+
+ public int getShareNum() {
+ return shareNum;
+ }
+
+ public void setShareNum(int shareNum) {
+ this.shareNum = shareNum;
+ }
+
+ public int getLikeNum() {
+ return likeNum;
+ }
+
+ public void setLikeNum(int likeNum) {
+ this.likeNum = likeNum;
+ }
+
+ public int getNotLikeNum() {
+ return notLikeNum;
+ }
+
+ public void setNotLikeNum(int notLikeNum) {
+ this.notLikeNum = notLikeNum;
+ }
+
+ public double getEnthusiasmIndex() {
+ return enthusiasmIndex;
+ }
+
+ public void setEnthusiasmIndex(double enthusiasmIndex) {
+ this.enthusiasmIndex = enthusiasmIndex;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItem.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItem.java
new file mode 100644
index 0000000000..9b7fdce6d2
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItem.java
@@ -0,0 +1,486 @@
+package com.zhidao.mogo.module.event.panel.bean;
+
+import com.mogo.commons.data.BaseData;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ShareEventItem extends BaseData implements Serializable {
+
+
+ /**
+ * detailMsg :
+ * result : {"page":{"total":1024,"pageSize":1,"pageNum":4,"content":[{"coordinates":[116.407653,39.966487],"uploadTimestamp":1592901273966,"timeout":1593100800000,"uploadAddress":"安定门外大街","distance":0,"dbId":"725026095564550144","poiType":"10002","sn":"ZD802B1932L00622","userId":0,"userName":"小松鼠艾德蒙","userHead":"http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592476328925.png","likeNum":18,"notLikeNum":0,"uploadType":2,"uploadUser":"123","imgUrl":null,"content":null,"gasStationId":null,"gasStationName":null,"gasImg":null,"gasPrices":null,"endDate":"2020-06-26 00:00:00","fabulous":false,"direction":180,"virtualLikeNum":822,"status":1,"sourceType":"10002","hitId":"0K-mf3MBeovPWpwE9IfR","userType":2,"data":[{"url":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546939076.mp4%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546939%253B1592550539%2526q-key-time%253D1592546939%253B1592550539%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253D74a4058ad7579ea210dafcf78d7a19460cffb899?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D679bff1838c7d497d38f48ef999b50e80c5856c4","thumbnail":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546956790.png%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546956%253B1592550556%2526q-key-time%253D1592546956%253B1592550556%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253Dcc9a35349fc55e433f934af88df576ae792b3987?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D99b5a92a4f97909d8c217dbeec2ec6e9ec1052f4","content":null,"illegalCount":null}]}]}}
+ */
+
+ private String detailMsg;
+ private ResultBean result;
+
+ public String getDetailMsg() {
+ return detailMsg;
+ }
+
+ public void setDetailMsg(String detailMsg) {
+ this.detailMsg = detailMsg;
+ }
+
+ public ResultBean getResult() {
+ return result;
+ }
+
+ public void setResult(ResultBean result) {
+ this.result = result;
+ }
+
+ public static class ResultBean {
+ /**
+ * page : {"total":1024,"pageSize":1,"pageNum":4,"content":[{"coordinates":[116.407653,39.966487],"uploadTimestamp":1592901273966,"timeout":1593100800000,"uploadAddress":"安定门外大街","distance":0,"dbId":"725026095564550144","poiType":"10002","sn":"ZD802B1932L00622","userId":0,"userName":"小松鼠艾德蒙","userHead":"http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592476328925.png","likeNum":18,"notLikeNum":0,"uploadType":2,"uploadUser":"123","imgUrl":null,"content":null,"gasStationId":null,"gasStationName":null,"gasImg":null,"gasPrices":null,"endDate":"2020-06-26 00:00:00","fabulous":false,"direction":180,"virtualLikeNum":822,"status":1,"sourceType":"10002","hitId":"0K-mf3MBeovPWpwE9IfR","userType":2,"data":[{"url":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546939076.mp4%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546939%253B1592550539%2526q-key-time%253D1592546939%253B1592550539%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253D74a4058ad7579ea210dafcf78d7a19460cffb899?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D679bff1838c7d497d38f48ef999b50e80c5856c4","thumbnail":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546956790.png%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546956%253B1592550556%2526q-key-time%253D1592546956%253B1592550556%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253Dcc9a35349fc55e433f934af88df576ae792b3987?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D99b5a92a4f97909d8c217dbeec2ec6e9ec1052f4","content":null,"illegalCount":null}]}]}
+ */
+
+ private PageBean page;
+
+ public PageBean getPage() {
+ return page;
+ }
+
+ public void setPage(PageBean page) {
+ this.page = page;
+ }
+
+ public static class PageBean {
+ /**
+ * total : 1024
+ * pageSize : 1
+ * pageNum : 4
+ * content : [{"coordinates":[116.407653,39.966487],"uploadTimestamp":1592901273966,"timeout":1593100800000,"uploadAddress":"安定门外大街","distance":0,"dbId":"725026095564550144","poiType":"10002","sn":"ZD802B1932L00622","userId":0,"userName":"小松鼠艾德蒙","userHead":"http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592476328925.png","likeNum":18,"notLikeNum":0,"uploadType":2,"uploadUser":"123","imgUrl":null,"content":null,"gasStationId":null,"gasStationName":null,"gasImg":null,"gasPrices":null,"endDate":"2020-06-26 00:00:00","fabulous":false,"direction":180,"virtualLikeNum":822,"status":1,"sourceType":"10002","hitId":"0K-mf3MBeovPWpwE9IfR","userType":2,"data":[{"url":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546939076.mp4%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546939%253B1592550539%2526q-key-time%253D1592546939%253B1592550539%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253D74a4058ad7579ea210dafcf78d7a19460cffb899?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D679bff1838c7d497d38f48ef999b50e80c5856c4","thumbnail":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546956790.png%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546956%253B1592550556%2526q-key-time%253D1592546956%253B1592550556%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253Dcc9a35349fc55e433f934af88df576ae792b3987?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D99b5a92a4f97909d8c217dbeec2ec6e9ec1052f4","content":null,"illegalCount":null}]}]
+ */
+
+ private int total;
+ private int pageSize;
+ private int pageNum;
+ private List content;
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public int getPageNum() {
+ return pageNum;
+ }
+
+ public void setPageNum(int pageNum) {
+ this.pageNum = pageNum;
+ }
+
+ public List getContent() {
+ return content;
+ }
+
+ public void setContent(List content) {
+ this.content = content;
+ }
+
+ public static class ContentBean {
+ @Override
+ public String toString() {
+ return "ContentBean{" +
+ "uploadTimestamp=" + uploadTimestamp +
+ ", timeout=" + timeout +
+ ", uploadAddress='" + uploadAddress + '\'' +
+ ", distance=" + distance +
+ ", dbId='" + dbId + '\'' +
+ ", poiType='" + poiType + '\'' +
+ ", sn='" + sn + '\'' +
+ ", userId=" + userId +
+ ", userName='" + userName + '\'' +
+ ", userHead='" + userHead + '\'' +
+ ", likeNum=" + likeNum +
+ ", notLikeNum=" + notLikeNum +
+ ", uploadType=" + uploadType +
+ ", uploadUser='" + uploadUser + '\'' +
+ ", imgUrl=" + imgUrl +
+ ", content=" + content +
+ ", gasStationId=" + gasStationId +
+ ", gasStationName=" + gasStationName +
+ ", gasImg=" + gasImg +
+ ", gasPrices=" + gasPrices +
+ ", endDate='" + endDate + '\'' +
+ ", fabulous=" + fabulous +
+ ", direction=" + direction +
+ ", virtualLikeNum=" + virtualLikeNum +
+ ", status=" + status +
+ ", sourceType='" + sourceType + '\'' +
+ ", hitId='" + hitId + '\'' +
+ ", userType=" + userType +
+ ", coordinates=" + coordinates +
+ ", data=" + data +
+ '}';
+ }
+
+ /**
+ * coordinates : [116.407653,39.966487]
+ * uploadTimestamp : 1592901273966
+ * timeout : 1593100800000
+ * uploadAddress : 安定门外大街
+ * distance : 0
+ * dbId : 725026095564550144
+ * poiType : 10002
+ * sn : ZD802B1932L00622
+ * userId : 0
+ * userName : 小松鼠艾德蒙
+ * userHead : http://yycp-static-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592476328925.png
+ * likeNum : 18
+ * notLikeNum : 0
+ * uploadType : 2
+ * uploadUser : 123
+ * imgUrl : null
+ * content : null
+ * gasStationId : null
+ * gasStationName : null
+ * gasImg : null
+ * gasPrices : null
+ * endDate : 2020-06-26 00:00:00
+ * fabulous : false
+ * direction : 180
+ * virtualLikeNum : 822
+ * status : 1
+ * sourceType : 10002
+ * hitId : 0K-mf3MBeovPWpwE9IfR
+ * userType : 2
+ * data : [{"url":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546939076.mp4%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546939%253B1592550539%2526q-key-time%253D1592546939%253B1592550539%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253D74a4058ad7579ea210dafcf78d7a19460cffb899?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D679bff1838c7d497d38f48ef999b50e80c5856c4","thumbnail":"http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546956790.png%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546956%253B1592550556%2526q-key-time%253D1592546956%253B1592550556%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253Dcc9a35349fc55e433f934af88df576ae792b3987?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D99b5a92a4f97909d8c217dbeec2ec6e9ec1052f4","content":null,"illegalCount":null}]
+ */
+
+ private long uploadTimestamp;
+ private long timeout;
+ private String uploadAddress;
+ private int distance;
+ private String dbId;
+ private String poiType;
+ private String sn;
+ private int userId;
+ private String userName;
+ private String userHead;
+ private int likeNum;
+ private int notLikeNum;
+ private int uploadType;
+ private String uploadUser;
+ private Object imgUrl;
+ private Object content;
+ private Object gasStationId;
+ private Object gasStationName;
+ private Object gasImg;
+ private Object gasPrices;
+ private String endDate;
+ private boolean fabulous;
+ private int direction;
+ private int virtualLikeNum;
+ private int status;
+ private String sourceType;
+ private String hitId;
+ private int userType;
+ private List coordinates;
+ private List data;
+
+ public long getUploadTimestamp() {
+ return uploadTimestamp;
+ }
+
+ public void setUploadTimestamp(long uploadTimestamp) {
+ this.uploadTimestamp = uploadTimestamp;
+ }
+
+ public long getTimeout() {
+ return timeout;
+ }
+
+ public void setTimeout(long timeout) {
+ this.timeout = timeout;
+ }
+
+ public String getUploadAddress() {
+ return uploadAddress;
+ }
+
+ public void setUploadAddress(String uploadAddress) {
+ this.uploadAddress = uploadAddress;
+ }
+
+ public int getDistance() {
+ return distance;
+ }
+
+ public void setDistance(int distance) {
+ this.distance = distance;
+ }
+
+ public String getDbId() {
+ return dbId;
+ }
+
+ public void setDbId(String dbId) {
+ this.dbId = dbId;
+ }
+
+ public String getPoiType() {
+ return poiType;
+ }
+
+ public void setPoiType(String poiType) {
+ this.poiType = poiType;
+ }
+
+ public String getSn() {
+ return sn;
+ }
+
+ public void setSn(String sn) {
+ this.sn = sn;
+ }
+
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ public String getUserName() {
+ return userName;
+ }
+
+ public void setUserName(String userName) {
+ this.userName = userName;
+ }
+
+ public String getUserHead() {
+ return userHead;
+ }
+
+ public void setUserHead(String userHead) {
+ this.userHead = userHead;
+ }
+
+ public int getLikeNum() {
+ return likeNum;
+ }
+
+ public void setLikeNum(int likeNum) {
+ this.likeNum = likeNum;
+ }
+
+ public int getNotLikeNum() {
+ return notLikeNum;
+ }
+
+ public void setNotLikeNum(int notLikeNum) {
+ this.notLikeNum = notLikeNum;
+ }
+
+ public int getUploadType() {
+ return uploadType;
+ }
+
+ public void setUploadType(int uploadType) {
+ this.uploadType = uploadType;
+ }
+
+ public String getUploadUser() {
+ return uploadUser;
+ }
+
+ public void setUploadUser(String uploadUser) {
+ this.uploadUser = uploadUser;
+ }
+
+ public Object getImgUrl() {
+ return imgUrl;
+ }
+
+ public void setImgUrl(Object imgUrl) {
+ this.imgUrl = imgUrl;
+ }
+
+ public Object getContent() {
+ return content;
+ }
+
+ public void setContent(Object content) {
+ this.content = content;
+ }
+
+ public Object getGasStationId() {
+ return gasStationId;
+ }
+
+ public void setGasStationId(Object gasStationId) {
+ this.gasStationId = gasStationId;
+ }
+
+ public Object getGasStationName() {
+ return gasStationName;
+ }
+
+ public void setGasStationName(Object gasStationName) {
+ this.gasStationName = gasStationName;
+ }
+
+ public Object getGasImg() {
+ return gasImg;
+ }
+
+ public void setGasImg(Object gasImg) {
+ this.gasImg = gasImg;
+ }
+
+ public Object getGasPrices() {
+ return gasPrices;
+ }
+
+ public void setGasPrices(Object gasPrices) {
+ this.gasPrices = gasPrices;
+ }
+
+ public String getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(String endDate) {
+ this.endDate = endDate;
+ }
+
+ public boolean isFabulous() {
+ return fabulous;
+ }
+
+ public void setFabulous(boolean fabulous) {
+ this.fabulous = fabulous;
+ }
+
+ public int getDirection() {
+ return direction;
+ }
+
+ public void setDirection(int direction) {
+ this.direction = direction;
+ }
+
+ public int getVirtualLikeNum() {
+ return virtualLikeNum;
+ }
+
+ public void setVirtualLikeNum(int virtualLikeNum) {
+ this.virtualLikeNum = virtualLikeNum;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public String getSourceType() {
+ return sourceType;
+ }
+
+ public void setSourceType(String sourceType) {
+ this.sourceType = sourceType;
+ }
+
+ public String getHitId() {
+ return hitId;
+ }
+
+ public void setHitId(String hitId) {
+ this.hitId = hitId;
+ }
+
+ public int getUserType() {
+ return userType;
+ }
+
+ public void setUserType(int userType) {
+ this.userType = userType;
+ }
+
+ public List getCoordinates() {
+ return coordinates;
+ }
+
+ public void setCoordinates(List coordinates) {
+ this.coordinates = coordinates;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * url : http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546939076.mp4%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546939%253B1592550539%2526q-key-time%253D1592546939%253B1592550539%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253D74a4058ad7579ea210dafcf78d7a19460cffb899?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D679bff1838c7d497d38f48ef999b50e80c5856c4
+ * thumbnail : http://petchfile-1255510688.cos.ap-beijing.myqcloud.com/sso-server-image/1592546956790.png%3Fsign%3Dq-sign-algorithm%253Dsha1%2526q-ak%253DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%2526q-sign-time%253D1592546956%253B1592550556%2526q-key-time%253D1592546956%253B1592550556%2526q-header-list%253D%2526q-url-param-list%253D%2526q-signature%253Dcc9a35349fc55e433f934af88df576ae792b3987?sign=q-sign-algorithm%3Dsha1%26q-ak%3DAKIDCWfcNwD5PXVWLxwejccR3Tiz5zhIkx0T%26q-sign-time%3D1595574735%3B1595578335%26q-key-time%3D1595574735%3B1595578335%26q-header-list%3D%26q-url-param-list%3D%26q-signature%3D99b5a92a4f97909d8c217dbeec2ec6e9ec1052f4
+ * content : null
+ * illegalCount : null
+ */
+
+ private String url;
+ private String thumbnail;
+ private Object content;
+ private Object illegalCount;
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+ public String getThumbnail() {
+ return thumbnail;
+ }
+
+ public void setThumbnail(String thumbnail) {
+ this.thumbnail = thumbnail;
+ }
+
+ public Object getContent() {
+ return content;
+ }
+
+ public void setContent(Object content) {
+ this.content = content;
+ }
+
+ public Object getIllegalCount() {
+ return illegalCount;
+ }
+
+ public void setIllegalCount(Object illegalCount) {
+ this.illegalCount = illegalCount;
+ }
+ }
+ }
+ }
+ }
+}
+
+
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItemEnum.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItemEnum.java
new file mode 100644
index 0000000000..2881b9aec9
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/bean/ShareEventItemEnum.java
@@ -0,0 +1,10 @@
+package com.zhidao.mogo.module.event.panel.bean;
+
+public interface ShareEventItemEnum {
+
+ int ITEM_TYPE_NUM_DES = 0;
+ int ITEM_TYPE_SHARE_LIST = 1;
+ int ITEM_TYPE_SHARE_EMPTY = 2;
+ int ITEM_TYPE_LOAD_MORE_STATUS = 3;
+
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/MyShareFragment.kt b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/MyShareFragment.kt
index 2d759ded94..06c387766a 100644
--- a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/MyShareFragment.kt
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/MyShareFragment.kt
@@ -10,7 +10,7 @@ class MyShareFragment : MvpFragment() {
*
* @return
*/
- override fun getLayoutId(): Int = R.layout.module_event_panel_fragment_my_share
+ override fun getLayoutId(): Int = R.layout.module_event_panel_share_item
/**
* 初始化控件,必须在初始化完成之后才可以实例化presenter,避免
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/ShareEventsFragment.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/ShareEventsFragment.java
new file mode 100644
index 0000000000..20567d7ca7
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/fragment/ShareEventsFragment.java
@@ -0,0 +1,156 @@
+package com.zhidao.mogo.module.event.panel.fragment;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.mvp.MvpFragment;
+import com.mogo.commons.network.SubscribeImpl;
+import com.mogo.commons.network.Utils;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.network.IMogoNetwork;
+import com.mogo.utils.network.RequestOptions;
+import com.mogo.utils.network.utils.GsonUtil;
+import com.zhidao.mogo.module.event.panel.R;
+import com.zhidao.mogo.module.event.panel.adapter.ShareEventAdapter;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventDescription;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventItem;
+import com.zhidao.mogo.module.event.panel.network.HostConstant;
+import com.zhidao.mogo.module.event.panel.network.ShareEventApiService;
+import com.zhidao.mogo.module.event.panel.network.ShareEventParameter;
+import com.zhidao.mogo.module.event.panel.presenter.ShareEventsPresenter;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+public class ShareEventsFragment extends MvpFragment {
+
+ private static final String TAG = "ShareEventsFragment";
+ private RecyclerView recyclerView;
+ private View view;
+ private ShareEventAdapter adapter;
+ private ArrayList dataArrayList = new ArrayList();
+ private ShareEventApiService shareEventApiService;
+ private int pageNum = 1;
+ private View emptyView;
+ private Button shareBtn;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.module_event_panel_share_recylerview;
+ }
+
+ @Override
+ protected void initViews() {
+ }
+
+ @Nullable
+ @Override
+ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
+ view = inflater.inflate(R.layout.module_event_panel_share_recylerview, container, false);
+ emptyView = inflater.inflate(R.layout.module_event_panel_share_empty,container,false);
+ initRecyclerView();
+ initData();
+ return view;
+ }
+
+ private void initRecyclerView() {
+ recyclerView = view.findViewById(R.id.road_case_share_list);
+ adapter = new ShareEventAdapter(getActivity(), dataArrayList);
+ recyclerView.setAdapter(adapter);
+ LinearLayoutManager linearLayoutManager =
+ new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
+ recyclerView.setLayoutManager(linearLayoutManager);
+ }
+
+ private void initData() {
+ IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(getContext());
+ this.shareEventApiService = network.create(ShareEventApiService.class, HostConstant.getNetHost());
+
+ getShareEventDescription();
+ getShareEventList(pageNum, 10);
+ }
+
+ /*
+ * 热心指数等
+ * */
+ private void getShareEventDescription() {
+ //ZD802B1932L00622 测试数据sn
+ ShareEventParameter parameter = new ShareEventParameter(Utils.getSn());
+ Map parameters = new HashMap<>();
+ parameters.put("data", GsonUtil.jsonFromObject(parameter));
+
+ shareEventApiService.getEnthusiasmIndex(parameters)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) {
+ @Override
+ public void onSuccess(ShareEventDescription resultData) {
+ if (resultData != null && resultData.getResult() != null
+ && resultData.getResult().getEnthusiasmIndex() != null) {
+ dataArrayList.add(resultData.getResult().getEnthusiasmIndex());
+ adapter.notifyDataSetChanged();
+ Log.d(TAG, "热心指数---:" + resultData.getResult().getEnthusiasmIndex());
+ }
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+
+ });
+ }
+
+ /*
+ * 分享列表
+ * */
+ private void getShareEventList(int page, int size) {
+ ShareEventParameter parameter = new ShareEventParameter(Utils.getSn(), pageNum, 10);
+ HashMap parameters = new HashMap<>();
+ parameters.put("data", GsonUtil.jsonFromObject(parameter));
+
+ shareEventApiService.getShareEventList(parameters)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new SubscribeImpl(RequestOptions.create(getContext())) {
+ @Override
+ public void onSuccess(ShareEventItem resultData) {
+ if (resultData != null && resultData.getResult() != null
+ && resultData.getResult().getPage().getContent().size() > 0) {
+ adapter.setEmptylist(false);
+ dataArrayList.addAll(resultData.getResult().getPage().getContent());
+ Log.d(TAG, "分享列表---:" + dataArrayList.get(0));
+ } else {
+ adapter.setEmptylist(true);
+ }
+ adapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+ });
+ }
+
+ @NonNull
+ @Override
+ protected ShareEventsPresenter createPresenter() {
+ return new ShareEventsPresenter(this);
+ }
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/HostConstant.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/HostConstant.java
new file mode 100644
index 0000000000..ba4c4a4695
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/HostConstant.java
@@ -0,0 +1,23 @@
+package com.zhidao.mogo.module.event.panel.network;
+
+import com.mogo.commons.debug.DebugConfig;
+
+public class HostConstant {
+ public static final String HOST_DEV = "http://dzt-test.zhidaohulian.com";
+ public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com";
+ public static final String HOST_DEMO = "http://dzt-show.zhidaohulian.com";
+ public static final String HOST_PRODUCT = "https://dzt.zhidaohulian.com";
+
+ public static String getNetHost() {
+ switch ( DebugConfig.getNetMode() ) {
+ case DebugConfig.NET_MODE_DEV:
+ return HOST_DEV;
+ case DebugConfig.NET_MODE_QA:
+ return HOST_TEST;
+ case DebugConfig.NET_MODE_DEMO:
+ return HOST_DEMO;
+ default:
+ return HOST_PRODUCT;
+ }
+ }
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventApiService.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventApiService.java
new file mode 100644
index 0000000000..e449c87c38
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventApiService.java
@@ -0,0 +1,26 @@
+package com.zhidao.mogo.module.event.panel.network;
+
+import com.zhidao.mogo.module.event.panel.bean.ShareEventDescription;
+import com.zhidao.mogo.module.event.panel.bean.ShareEventItem;
+
+import java.util.Map;
+
+import io.reactivex.Observable;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+import retrofit2.http.QueryMap;
+
+public interface ShareEventApiService {
+
+ //我的分享-热心指数等
+ @FormUrlEncoded
+ @POST("/deva/poiInfoFabulous/car/poi/no/queryEnthusiasmIndex/v1")
+ Observable getEnthusiasmIndex(@FieldMap Map parames);
+
+ //我的分享-列表
+ @FormUrlEncoded
+ @POST("/deva/car/pathAndPoi/no/queryInfo")
+ Observable getShareEventList(@FieldMap Map parames);
+
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventParameter.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventParameter.java
new file mode 100644
index 0000000000..906a55770f
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/network/ShareEventParameter.java
@@ -0,0 +1,18 @@
+package com.zhidao.mogo.module.event.panel.network;
+
+public class ShareEventParameter {
+ private String sn;
+ private int pageNum;
+ private int pageSize;
+
+ public ShareEventParameter(String sn) {
+ this.sn = sn;
+ }
+
+ public ShareEventParameter(String sn, int pageNum, int pageSize) {
+ this.sn = sn;
+ this.pageNum = pageNum;
+ this.pageSize = pageSize;
+ }
+
+}
diff --git a/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/presenter/ShareEventsPresenter.java b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/presenter/ShareEventsPresenter.java
new file mode 100644
index 0000000000..4538dd7a7d
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/java/com/zhidao/mogo/module/event/panel/presenter/ShareEventsPresenter.java
@@ -0,0 +1,11 @@
+package com.zhidao.mogo.module.event.panel.presenter;
+
+import com.mogo.commons.mvp.IView;
+import com.mogo.commons.mvp.Presenter;
+import com.zhidao.mogo.module.event.panel.fragment.ShareEventsFragment;
+
+public class ShareEventsPresenter extends Presenter {
+ public ShareEventsPresenter(IView view) {
+ super((ShareEventsFragment) view);
+ }
+}
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_event_panel.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_event_panel.xml
index 3536c79096..29228279d2 100644
--- a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_event_panel.xml
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_event_panel.xml
@@ -15,7 +15,7 @@
android:id="@+id/btnShowOrHidePanels"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginTop="200dp"
+ android:layout_marginTop="300dp"
android:layout_marginEnd="10dp"
android:text="显示面板"
android:textColor="#000"
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_my_share.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_my_share.xml
deleted file mode 100644
index 3a5d7413a6..0000000000
--- a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_fragment_my_share.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_description.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_description.xml
new file mode 100644
index 0000000000..864ddbe8fb
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_description.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_empty.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_empty.xml
new file mode 100644
index 0000000000..196f44b763
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_empty.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_item.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_item.xml
new file mode 100644
index 0000000000..37c807b444
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_item.xml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_load_status.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_load_status.xml
new file mode 100644
index 0000000000..7a9c631005
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_load_status.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_recylerview.xml b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_recylerview.xml
new file mode 100644
index 0000000000..6d61dcb641
--- /dev/null
+++ b/modules/mogo-module-event-panel/src/main/res/layout/module_event_panel_share_recylerview.xml
@@ -0,0 +1,14 @@
+
+
+
diff --git a/modules/mogo-module-extensions/build.gradle b/modules/mogo-module-extensions/build.gradle
index 56876478a7..e9737fc1a3 100644
--- a/modules/mogo-module-extensions/build.gradle
+++ b/modules/mogo-module-extensions/build.gradle
@@ -43,7 +43,6 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxjava
implementation rootProject.ext.dependencies.rxandroid
- implementation rootProject.ext.dependencies.tanluupload
if (Boolean.valueOf(RELEASE)) {
api rootProject.ext.dependencies.mogomap
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index 203580640d..f977a83e41 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -1,15 +1,12 @@
package com.mogo.module.extensions.entrance;
-import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
-import android.util.Log;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
@@ -18,6 +15,7 @@ import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.map.listener.IMogoMapListener;
@@ -46,7 +44,6 @@ import com.mogo.service.MogoServicePaths;
import com.mogo.service.analytics.IMogoAnalytics;
import com.mogo.service.entrance.ButtonIndex;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
-import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
@@ -58,7 +55,6 @@ import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.glide.GlideApp;
import com.mogo.utils.logger.Logger;
-import com.zhidao.roadcondition.service.DelayService;
import java.util.HashMap;
import java.util.Map;
@@ -168,15 +164,18 @@ public class EntranceFragment extends MvpFragment {
- if (!mStatusManager.isDisplayOverview()) {
- mMApUIController.displayOverview(mDisplayOverviewBounds);
- UiThreadHandler.removeCallbacks(mLockCarRunnable);
- UiThreadHandler.postDelayed(mLockCarRunnable, 20_000);
- } else {
- mMApUIController.recoverLockMode();
- UiThreadHandler.removeCallbacks(mLockCarRunnable);
+ if (getContext() != null) {
+ // 加此判断是解决下面setDisplayOverview后,本Fragment回调中出现not attached to a context问题
+ if (!mStatusManager.isDisplayOverview()) {
+ mMApUIController.displayOverview(mDisplayOverviewBounds);
+ UiThreadHandler.removeCallbacks(mLockCarRunnable);
+ UiThreadHandler.postDelayed(mLockCarRunnable, 20_000);
+ } else {
+ mMApUIController.recoverLockMode();
+ UiThreadHandler.removeCallbacks(mLockCarRunnable);
+ }
+ mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview());
}
- mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview());
});
mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location);
@@ -239,34 +238,25 @@ public class EntranceFragment extends MvpFragment {
+ int key_type = intent.getIntExtra( "KEY_TYPE", 0 );
+ int type = intent.getIntExtra( "EXTRA_TYPE", -1 );
+ int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 );
+ if ( key_type == 10027 ) {
+ if ( opera_type == 0 ) {
+ mCameraMode.setSelected( false );
+ } else if ( opera_type == 1 ) {
+ mCameraMode.setSelected( true );
+ }
+ mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) );
+ } else if( key_type == 10021 ){
+ onStopNavi();
+ }
+ }) );
+ MogoEntranceButtons.save( ButtonIndex.BUTTON1, findViewById( R.id.module_entrance_id_button1 ) );
+ MogoEntranceButtons.save( ButtonIndex.BUTTON2, findViewById( R.id.module_entrance_id_button2 ) );
mDisplayOverviewBounds = new Rect(
ResourcesHelper.getDimensionPixelSize(getContext(),
@@ -311,8 +301,7 @@ public class EntranceFragment extends MvpFragment properties = new HashMap<>();
properties.put("type", 3);
- ServiceApisManager.serviceApis.getAnalyticsApi().track("Launcher_APP_Icon",
- properties);
+ ServiceApisManager.serviceApis.getAnalyticsApi().track("Launcher_APP_Icon", properties);
} catch (Exception e) {
Logger.e(TAG, e, "打开个人中心Exception");
}
@@ -320,8 +309,7 @@ public class EntranceFragment extends MvpFragment {
+ MapCenterPointStrategy.setMapCenterPointBySceneAndDelay(mMApUIController, Scene.NAVI, 500, () -> {
return !mMogoNavi.isNaviing();
});
if (CustomNaviInterrupter.getInstance().interrupt()) {
@@ -463,23 +449,18 @@ public class EntranceFragment extends MvpFragment properties = new HashMap<>();
+ properties.put( "from", "1" );
+ mApis.getAnalyticsApi().track("v2x_share_click", properties);
mApis.getShareManager().showShareDialog();
break;
default:
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index e144f7534d..f05f600046 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -109,10 +109,7 @@ public class MapPresenter extends Presenter< MapView > implements
if ( key_type == 10027 ) {
if ( type == 0 ) {
onChangeTrafficMode( opera_type );
- } else if ( type == 1 ) {
- zoomMap( opera_type == 0 );
} else if ( type == 2 ) {
-// mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
onChangeCameraMode( opera_type );
}
} else if ( key_type == 10048 ) {
@@ -183,6 +180,7 @@ public class MapPresenter extends Presenter< MapView > implements
mMogoMapService.getNavi( getContext() ).reCalculateRoute( config );
}
+ mMogoIntentManager.invoke( AUTONAVI_STANDARD_BROADCAST_RECV, intent );
}
};
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
index 84b2d61b22..ccaf71fc65 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java
@@ -164,8 +164,8 @@ public class VoiceConstants {
static {
// 免唤醒
-// sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS );
-// sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_IN_TRIGGER_WORDS );
+ sVoiceCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP, VoiceConstants.CMD_MAP_ZOOM_OUT_TRIGGER_WORDS );
//sVoiceCmds.put( VoiceConstants.CMD_MAP_2D_UN_WAKEUP, VoiceConstants.CMD_MAP_2D_TRIGGER_WORDS );
//sVoiceCmds.put( VoiceConstants.CMD_MAP_3D_UN_WAKEUP, VoiceConstants.CMD_MAP_3D_TRIGGER_WORDS );
//sVoiceCmds.put( VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP, VoiceConstants.CMD_MAP_DAY_TIME_MODE_TRIGGER_WORDS );
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
index 1b8ab10d33..55eb757511 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
@@ -11,6 +11,7 @@ import android.widget.TextView;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
+import com.mogo.module.media.MediaConstants;
import com.mogo.module.media.R;
import com.mogo.module.media.ServiceMediaHandler;
import com.mogo.module.media.constants.MusicConstant;
@@ -22,6 +23,8 @@ import com.mogo.module.media.view.IMusicView;
import com.mogo.module.media.widget.AnimCircleImageView;
import com.mogo.module.media.widget.NoScrollSeekBar;
import com.mogo.module.media.widget.ScrollingTextView;
+import com.mogo.service.statusmanager.IMogoStatusChangedListener;
+import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.WindowUtils;
import com.mogo.utils.glide.GlideApp;
import com.mogo.utils.logger.Logger;
@@ -72,11 +75,20 @@ public class MediaWindow2 implements IMusicView {
});
}
+ ServiceMediaHandler.getIMogoStatusManager().registerStatusChangedListener(MediaConstants.MODULE_TYPE, StatusDescriptor.ACC_STATUS, (descriptor, isTrue) -> {
+ if (descriptor == StatusDescriptor.ACC_STATUS&&!isTrue) {
+ ServiceMediaHandler.getMogoWindowManager().removeView(mWindowView);
+ mHasAddWindow = false;
+ }
+ });
+
isFirstPlay = true;
}
private void addWindowView() {
+ Log.d(TAG, "addWindowView===" + mHasAddWindow);
if (ServiceMediaHandler.getMogoWindowManager() == null) {
+ Log.d(TAG, "addWindowView return");
return;
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
index cb7fa6a938..caaf67dd12 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java
@@ -63,8 +63,6 @@ public class MarkerServiceHandler {
private static ICarsChattingProvider sCarChatting;
private static IMogoGpsSimulatorManager sGpsSimulatorManager;
- private static MapMarkerManager sMapMarkerManager;
-
public static synchronized void init( final Context context ) {
if ( sGpsSimulatorManager != null ) {
@@ -92,8 +90,7 @@ public class MarkerServiceHandler {
sCarChatting = ( ICarsChattingProvider ) ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation( context );
- sMapMarkerManager = MapMarkerManager.getInstance();
- sMapMarkerManager.init( context );
+ MapMarkerManager.getInstance().init( context );
sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class );
}
@@ -143,7 +140,7 @@ public class MarkerServiceHandler {
}
public static MapMarkerManager getMapMarkerManager() {
- return sMapMarkerManager;
+ return MapMarkerManager.getInstance();
}
public static IMogoRegisterCenter getRegisterCenter() {
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 3b184598cb..0acfe90eae 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -190,23 +190,25 @@ public class MogoServices implements IMogoMapListener,
}
}
- /**
- * 自动刷新:锁车、缩放比例:16、半径 2KM
- */
- private void invokeAutoRefresh() {
- if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
- mStatusManager.setUserInteractionStatus( TAG, true, false );
- mUiController.recoverLockMode();
- return;
- }
- mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
- mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
- mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
+ };
+
+ /**
+ * 自动刷新:锁车、缩放比例:16、半径 2KM
+ */
+ private void invokeAutoRefresh() {
+ if ( mStatusManager.isSearchUIShow() || mStatusManager.isV2XShow() ) {
mStatusManager.setUserInteractionStatus( TAG, true, false );
mUiController.recoverLockMode();
- notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
+ return;
}
- };
+ mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false );
+ mUiController.changeZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
+ mUiController.setLockZoom( ServiceConst.DEFAULT_LOCK_CAR_ZOOM_LEVEL );
+ mStatusManager.setUserInteractionStatus( TAG, true, false );
+ mUiController.recoverLockMode();
+ notifyRefreshData( mLastAutoRefreshLocation, ServiceConst.DEFAULT_AUTO_REFRESH_DATA_RADIUS, mAutoRefreshCallback );
+ }
+
private Context mContext;
/**
@@ -783,7 +785,12 @@ public class MogoServices implements IMogoMapListener,
if ( mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL ) {
delay = mRefreshRemainingTime;
}
- mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay );
+ if ( time == 0 ) {
+ Logger.d( TAG, "立即刷新" );
+ invokeAutoRefresh();
+ } else {
+ mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_TYPE_REFRESH_DECREASE, delay );
+ }
Logger.i( TAG, "下次刷新时间:%ss后", mRefreshRemainingTime );
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
index 771e3c1850..9595d20a9b 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java
@@ -77,6 +77,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
private Rect mMarkerDisplayBounds;
private MapMarkerManager() {
+ mContext = AbsMogoApplication.getApp();
}
public static synchronized MapMarkerManager getInstance() {
@@ -95,7 +96,6 @@ public class MapMarkerManager implements IMogoMarkerClickListener,
* @param context
*/
public void init( Context context ) {
- mContext = context;
mRefreshModel = new RefreshModel( mContext );
// 长连接
diff --git a/modules/mogo-module-service/src/main/res/drawable-ldpi/map_api_ic_current_location2_cursor.png b/modules/mogo-module-service/src/main/res/drawable-ldpi/map_api_ic_current_location2_cursor.png
index 374a153333..55dbd72260 100644
Binary files a/modules/mogo-module-service/src/main/res/drawable-ldpi/map_api_ic_current_location2_cursor.png and b/modules/mogo-module-service/src/main/res/drawable-ldpi/map_api_ic_current_location2_cursor.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-mdpi/map_api_ic_current_location2_cursor.png b/modules/mogo-module-service/src/main/res/drawable-mdpi/map_api_ic_current_location2_cursor.png
index 374a153333..55dbd72260 100644
Binary files a/modules/mogo-module-service/src/main/res/drawable-mdpi/map_api_ic_current_location2_cursor.png and b/modules/mogo-module-service/src/main/res/drawable-mdpi/map_api_ic_current_location2_cursor.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2_cursor.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2_cursor.png
new file mode 100644
index 0000000000..c24c56f3db
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi-1920x1000/map_api_ic_current_location2_cursor.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.png
new file mode 100644
index 0000000000..c24c56f3db
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.webp b/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.webp
deleted file mode 100644
index 430a645b09..0000000000
Binary files a/modules/mogo-module-service/src/main/res/drawable-xhdpi/map_api_ic_current_location2_cursor.webp and /dev/null differ
diff --git a/modules/mogo-module-splash/src/main/java/com/zhidao/mogo/module/splash/fragment/BydSplashFragment.kt b/modules/mogo-module-splash/src/main/java/com/zhidao/mogo/module/splash/fragment/BydSplashFragment.kt
index bcd4301496..1148d63378 100644
--- a/modules/mogo-module-splash/src/main/java/com/zhidao/mogo/module/splash/fragment/BydSplashFragment.kt
+++ b/modules/mogo-module-splash/src/main/java/com/zhidao/mogo/module/splash/fragment/BydSplashFragment.kt
@@ -34,12 +34,14 @@ class BydSplashFragment :MvpFragment(),Han
override fun handleMessage(msg: Message): Boolean {
if (msg.what == MSG_COUNT_DOWN) {
- countDownTime--
- if(countDownTime>0) {
- tvCountDown.text = countDownTime.toString()
- handler.sendEmptyMessageDelayed(MSG_COUNT_DOWN, DEFAULT_COUNT_DOWN_DELAY)
- }else{
- hideSplash()
+ tvCountDown?.also {
+ countDownTime--
+ if(countDownTime>0) {
+ it.text = countDownTime.toString()
+ handler.sendEmptyMessageDelayed(MSG_COUNT_DOWN, DEFAULT_COUNT_DOWN_DELAY)
+ }else{
+ hideSplash()
+ }
}
return true
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
index c6163caa39..1d29df1df1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XSocketManager.java
@@ -7,6 +7,7 @@ import com.mogo.module.v2x.listener.V2XMessageListener_401007;
import com.mogo.module.v2x.listener.V2XMessageListener_401009;
import com.mogo.module.v2x.listener.V2XMessageListener_401010;
import com.mogo.module.v2x.listener.V2XMessageListener_401011;
+import com.mogo.module.v2x.listener.V2XMessageListener_401012;
import com.mogo.utils.logger.Logger;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
@@ -22,7 +23,8 @@ public class V2XSocketManager {
private static V2XSocketManager mV2XSocketManager;
- private V2XMessageListener_401011 v2XMessageListener_401001;
+ private V2XMessageListener_401011 v2XMessageListener_401011;
+ private V2XMessageListener_401012 v2XMessageListener_401012;
private V2XMessageListener_401003 v2XMessageListener_401003;
private V2XMessageListener_401005 v2XMessageListener_401005;
private V2XMessageListener_401006 v2XMessageListener_401006;
@@ -52,6 +54,7 @@ public class V2XSocketManager {
public void registerSocketMessage() {
Logger.d(MODULE_NAME, "开始注册Socket通道....");
register401011();
+ register401012();
register401005();
register401007();
register401009();
@@ -66,10 +69,15 @@ public class V2XSocketManager {
*/
public void unregisterSocketMessage() {
Logger.w(MODULE_NAME, "反注册Socket通道....");
- if (v2XMessageListener_401001 != null) {
+ if (v2XMessageListener_401011 != null) {
V2XServiceManager
.getMoGoSocketManager()
- .unregisterOnMessageListener(401011, v2XMessageListener_401001);
+ .unregisterOnMessageListener(401011, v2XMessageListener_401011);
+ }
+ if (v2XMessageListener_401012 != null) {
+ V2XServiceManager
+ .getMoGoSocketManager()
+ .unregisterOnMessageListener(401012, v2XMessageListener_401012);
}
if (v2XMessageListener_401003 != null) {
V2XServiceManager
@@ -102,13 +110,27 @@ public class V2XSocketManager {
* 道路事件,在线车辆绘制
*/
private void register401011() {
- v2XMessageListener_401001 = new V2XMessageListener_401011();
+ v2XMessageListener_401011 = new V2XMessageListener_401011();
// 道路事件,在线车辆绘制
V2XServiceManager
.getMoGoSocketManager()
.registerOnMessageListener(
401011,
- v2XMessageListener_401001
+ v2XMessageListener_401011
+ );
+ }
+
+ /**
+ * 道路事件,服务端下发
+ */
+ private void register401012() {
+ v2XMessageListener_401012 = new V2XMessageListener_401012();
+ // 道路事件,在线车辆绘制
+ V2XServiceManager
+ .getMoGoSocketManager()
+ .registerOnMessageListener(
+ 401012,
+ v2XMessageListener_401012
);
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XPushEventAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XPushEventAdapter.java
deleted file mode 100644
index 3dae739ced..0000000000
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XPushEventAdapter.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.mogo.module.v2x.adapter;
-
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.mogo.module.v2x.adapter.holder.V2XPushEventDetailVH;
-import com.mogo.module.common.entity.V2XPushMessageEntity;
-
-import java.util.List;
-
-/**
- * author : donghongyu
- * e-mail : 1358506549@qq.com
- * date : 2020/3/11 4:05 PM
- * desc : V2X 场景事件列表中的数据适配器
- * version: 1.0
- */
-public class V2XPushEventAdapter extends RecyclerView.Adapter {
-
- private List itemList;
-
- public V2XPushEventAdapter(List itemList) {
- this.itemList = itemList;
- }
-
- @NonNull
- @Override
- public V2XPushEventDetailVH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- return new V2XPushEventDetailVH(parent);
- }
-
- @Override
- public void onBindViewHolder(@NonNull V2XPushEventDetailVH holder, int position) {
- holder.initView(itemList.get(position));
- }
-
- @Override
- public int getItemViewType(int position) {
- return itemList.get(position).getViewType();
- }
-
- @Override
- public int getItemCount() {
- return itemList == null ? 0 : itemList.size();
- }
-
-}
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 5988112df7..273422e80b 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
@@ -6,9 +6,13 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.mogo.module.common.entity.V2XEventShowEntity;
-import com.mogo.module.v2x.adapter.holder.V2XLiveVideoVH;
-import com.mogo.module.v2x.adapter.holder.V2XRoadEventDetailVH;
import com.mogo.module.common.entity.V2XWindowTypeEnum;
+import com.mogo.module.v2x.adapter.holder.V2XFatigueDrivingVH;
+import com.mogo.module.v2x.adapter.holder.V2XIllegalParkVH;
+import com.mogo.module.v2x.adapter.holder.V2XLiveVideoVH;
+import com.mogo.module.v2x.adapter.holder.V2XOtherSeekHelpVH;
+import com.mogo.module.v2x.adapter.holder.V2XPushEventVH;
+import com.mogo.module.v2x.adapter.holder.V2XRoadEventVH;
import java.util.List;
@@ -32,14 +36,32 @@ public class V2XRoadEventAdapter extends RecyclerView.Adapter triggerStartNavi(mNoveltyInfo);
+
+ public V2XFatigueDrivingVH(ViewGroup viewGroup) {
+ super(LayoutInflater.from(viewGroup.getContext())
+ .inflate(R.layout.window_fatigue_driving, viewGroup, false));
+ mTvAddress = itemView.findViewById(R.id.tvAddress);
+ mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance);
+ mIvToNav = itemView.findViewById(R.id.ivToNav);
+ mIvToNav.setOnClickListener(v -> triggerStartNavi(mNoveltyInfo));
+
+ // 设置视图状态监听
+ itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+ @Override
+ public void onViewAttachedToWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewAttachedToWindow");
+ // 注册语音交互
+ V2XVoiceManager.INSTANCE
+ .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI,
+ mNaviCb)
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP,
+ mNaviCb);
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewDetachedFromWindow");
+ // 反注册语音交互
+ V2XVoiceManager.INSTANCE
+ .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP);
+ }
+ });
+ }
+
+ public void initView(V2XEventShowEntity v2XEventShowEntity) {
+ mV2XPushMessageEntity = v2XEventShowEntity.getV2XPushMessageEntity();
+ try {
+ MarkerLocation markerLocation = new MarkerLocation();
+ markerLocation.setLon(mV2XPushMessageEntity.getLon());
+ markerLocation.setLat(mV2XPushMessageEntity.getLat());
+ mNoveltyInfo = new MarkerExploreWay();
+ mNoveltyInfo.setLocation(markerLocation);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ if (!TextUtils.isEmpty(mV2XPushMessageEntity.getAddress())) {
+ mTvAddress.setText(mV2XPushMessageEntity.getAddress());
+ } else {
+ mTvAddress.setText("");
+ }
+ SpanUtils.with(mTvAddressDistance)
+ .append("" + (int) mV2XPushMessageEntity.getDistance())
+ .setFontSize((int) itemView.getResources().getDimension(R.dimen.dp_80))
+ .append("M")
+ .setFontSize((int) itemView.getResources().getDimension(R.dimen.dp_30))
+ .create();
+ }
+
+ /**
+ * 延迟关闭窗体
+ */
+ @Override
+ public void delayedCloseWindow() {
+ itemView.postDelayed(() -> V2XFatigueDrivingScenario.getInstance().close(), 1000);
+ }
+
+}
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
new file mode 100644
index 0000000000..d66488d4cd
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XIllegalParkVH.java
@@ -0,0 +1,131 @@
+package com.mogo.module.v2x.adapter.holder;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.mogo.module.common.entity.MarkerExploreWay;
+import com.mogo.module.common.entity.V2XEventShowEntity;
+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.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 static com.mogo.module.v2x.V2XConst.MODULE_NAME;
+
+/**
+ * e-mail : 1358506549@qq.com
+ * date : 2020/3/11 4:35 PM
+ * desc : 违章停车弹窗
+ * version: 1.0
+ *
+ * @author donghongyu
+ */
+public class V2XIllegalParkVH extends V2XBaseViewHolder {
+ private TextView mAddressTv;
+ private TextView mIllegalNumTv;
+ private HeartLikeView mIlIllegalParkingLike;
+ private HeartUnLikeView mIIllegalParkingUnLike;
+
+ private MarkerExploreWay mExploreWay;
+
+ // 反馈按钮语音操控
+ private V2XVoiceCallbackListener v2XVoiceCallbackYouYongListener = (command, intent) -> roadReportTrue();
+ private V2XVoiceCallbackListener v2XVoiceCallbackMeiYongListener = (command, intent) -> roadReportErr();
+
+ public V2XIllegalParkVH(ViewGroup viewGroup) {
+ super(LayoutInflater.from(viewGroup.getContext())
+ .inflate(R.layout.window_illegal_parking, viewGroup, false));
+
+ mAddressTv = itemView.findViewById(R.id.tvAddress);
+ mIllegalNumTv = itemView.findViewById(R.id.tvIllegalNum);
+ mIlIllegalParkingLike = itemView.findViewById(R.id.llIllegalParkingLike);
+ mIIllegalParkingUnLike = itemView.findViewById(R.id.llIllegalParkingUnLike);
+
+ // 设置视图状态监听
+ itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+ @Override
+ public void onViewAttachedToWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewAttachedToWindow");
+ // 注册语音交互
+ V2XVoiceManager.INSTANCE
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_YOUYONG_UN_WAKEUP,
+ v2XVoiceCallbackYouYongListener)
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP,
+ v2XVoiceCallbackMeiYongListener);
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewDetachedFromWindow");
+ V2XServiceManager.getMogoRegisterCenter().unregisterMogoNaviListener(MODULE_NAME);
+ // 反注册语音交互
+ V2XVoiceManager.INSTANCE
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_YOUYONG_UN_WAKEUP)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP);
+ }
+ });
+ }
+
+ public void initView(V2XEventShowEntity v2XEventShowEntity) {
+ mExploreWay = v2XEventShowEntity.getV2XIllegalPark();
+ mAddressTv.setText(mExploreWay.getAddr());
+ try {
+ mIllegalNumTv.setText("违章人数:" + (int) mExploreWay.getItems().get(0).getIllegalCount());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ mIlIllegalParkingLike.setOnClickCallListener(v -> {
+ Logger.d(V2XConst.MODULE_NAME, "反馈有用");
+ roadReportTrue();
+ });
+
+ mIIllegalParkingUnLike.setOnClickCallListener(v -> {
+ Logger.d(V2XConst.MODULE_NAME, "反馈无用");
+ roadReportErr();
+ });
+ }
+
+ /**
+ * 延迟关闭窗体
+ */
+ @Override
+ public void delayedCloseWindow() {
+ itemView.postDelayed(() -> V2XIllegalParkScenario.getInstance().close(), 1000);
+ }
+
+ /**
+ * 反馈路况正确
+ */
+ private void roadReportTrue() {
+ if (mExploreWay != null) {
+ RoadConditionUtils.sendDataErrorReceiverInfo(
+ mExploreWay.getPoiType(),
+ mExploreWay.getInfoId(),
+ "2");
+ }
+ delayedCloseWindow();
+ }
+
+ /**
+ * 反馈路况错误
+ */
+ private void roadReportErr() {
+ if (mExploreWay != null) {
+ RoadConditionUtils.sendDataErrorReceiverInfo(
+ mExploreWay.getPoiType(),
+ mExploreWay.getInfoId(),
+ "1");
+ }
+ delayedCloseWindow();
+ }
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java
new file mode 100644
index 0000000000..dae163a823
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XOtherSeekHelpVH.java
@@ -0,0 +1,194 @@
+package com.mogo.module.v2x.adapter.holder;
+
+import android.content.res.Resources;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.mogo.commons.debug.DebugConfig;
+import com.mogo.module.common.entity.MarkerExploreWay;
+import com.mogo.module.common.entity.MarkerLocation;
+import com.mogo.module.common.entity.MarkerUserInfo;
+import com.mogo.module.common.entity.V2XEventShowEntity;
+import com.mogo.module.common.entity.V2XPushMessageEntity;
+import com.mogo.module.v2x.R;
+import com.mogo.module.v2x.V2XServiceManager;
+import com.mogo.module.v2x.scenario.scene.fatigue.V2XFatigueDrivingScenario;
+import com.mogo.module.v2x.utils.ChartingUtil;
+import com.mogo.module.v2x.utils.SpanUtils;
+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;
+import com.mogo.service.imageloader.MogoImageView;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+/**
+ * e-mail : 1358506549@qq.com
+ * date : 2020/3/11 4:35 PM
+ * desc : 他人故障求助Window
+ * version: 1.0
+ *
+ * @author donghongyu
+ */
+public class V2XOtherSeekHelpVH extends V2XBaseViewHolder {
+
+ private MogoImageView ivHead;
+ private TextView tvName;
+ private TextView tvDistance;
+ private TextView tvEventTime;
+ private ImageView ivCall;
+ private ImageView ivNavi;
+
+ private V2XPushMessageEntity mV2XPushMessageEntity;
+ private MarkerExploreWay mNoveltyInfo;
+
+ // 上传事件的用户信息
+ private MarkerUserInfo mUserInfo = new MarkerUserInfo();
+
+ // 语音控制导航
+ private V2XVoiceCallbackListener mNaviCb = (command, intent) -> triggerStartNavi(mNoveltyInfo);
+ // 语音控制拨打电话
+ private V2XVoiceCallbackListener mCallChartingCb = (command, intent) -> {
+ try {
+ mUserInfo.setSn(mV2XPushMessageEntity.getSn());
+ mUserInfo.setUserHead(mV2XPushMessageEntity.getHeadImgUrl());
+ mUserInfo.setUserName(mV2XPushMessageEntity.getDisplayName());
+ mUserInfo.setGender(mV2XPushMessageEntity.getSex());
+ mUserInfo.setAge(30);
+ mNoveltyInfo.setUserInfo(mUserInfo);
+ triggerCallChart(mNoveltyInfo);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ };
+
+ public V2XOtherSeekHelpVH(ViewGroup viewGroup) {
+ super(LayoutInflater.from(viewGroup.getContext())
+ .inflate(R.layout.window_fault_help, viewGroup, false));
+ ivHead = itemView.findViewById(R.id.ivFaultHelpHead);
+ tvName = itemView.findViewById(R.id.tvFaultHelpName);
+ tvDistance = itemView.findViewById(R.id.tvFaultHelpDistance);
+ tvEventTime = itemView.findViewById(R.id.tvFaultHelpEventTime);
+ ivCall = itemView.findViewById(R.id.ivFaultHelpEventCall);
+ ivNavi = itemView.findViewById(R.id.ivFaultHelpEventNavi);
+ ivNavi.setOnClickListener(v -> {
+ triggerStartNavi(mNoveltyInfo);
+ });
+
+ // 设置视图状态监听
+ itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+ @Override
+ public void onViewAttachedToWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewAttachedToWindow");
+ // 注册语音交互
+ V2XVoiceManager.INSTANCE
+ .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI,
+ mNaviCb)
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP,
+ mNaviCb)
+ .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING,
+ mCallChartingCb)
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP,
+ mCallChartingCb);
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View v) {
+ //Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewDetachedFromWindow");
+ // 反注册语音交互
+ V2XVoiceManager.INSTANCE
+ .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP)
+ .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP);
+ }
+ });
+ }
+
+ public void initView(V2XEventShowEntity v2XEventShowEntity) {
+ mV2XPushMessageEntity = v2XEventShowEntity.getV2XPushMessageEntity();
+ // 只有自研车机才会 有车聊聊通话
+ if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) {
+ // 判断是否可以打电话
+ ChartingUtil.isCanCall(b -> {
+ if (b) {
+ // 判断是否可以打电话
+ ChartingUtil.isOnLine(mV2XPushMessageEntity.getSn(), b1 -> {
+ if (b1) {
+ ivCall.setVisibility(VISIBLE);
+ } else {
+ ivCall.setVisibility(GONE);
+ }
+ });
+ } else {
+ ivCall.setVisibility(GONE);
+ }
+ });
+
+ ivCall.setOnClickListener(v -> {
+ if (!V2XUtils.isFastClick()) {
+ try {
+ mUserInfo.setSn(mV2XPushMessageEntity.getSn());
+ mUserInfo.setUserHead(mV2XPushMessageEntity.getHeadImgUrl());
+ mUserInfo.setUserName(mV2XPushMessageEntity.getDisplayName());
+ mUserInfo.setGender(mV2XPushMessageEntity.getSex());
+ mUserInfo.setAge(30);
+ mNoveltyInfo.setUserInfo(mUserInfo);
+ triggerCallChart(mNoveltyInfo);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ try {
+ MarkerLocation markerLocation = new MarkerLocation();
+ markerLocation.setLon(mV2XPushMessageEntity.getLon());
+ markerLocation.setLat(mV2XPushMessageEntity.getLat());
+ mNoveltyInfo = new MarkerExploreWay();
+ mNoveltyInfo.setLocation(markerLocation);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ try {
+ if (!TextUtils.isEmpty(mV2XPushMessageEntity.getHeadImgUrl())) {
+ V2XServiceManager.getImageLoader()
+ .displayImage(mV2XPushMessageEntity.getHeadImgUrl(), ivHead);
+ }
+ tvName.setText(mV2XPushMessageEntity.getDisplayName());
+ SpanUtils.with(tvDistance)
+ .append("" + mV2XPushMessageEntity.getDistance())
+ .setFontSize((int) tvDistance.getResources().getDimension(R.dimen.dp_80))
+ .append("M")
+ .setFontSize((int) tvDistance.getResources().getDimension(R.dimen.dp_30))
+ .create();
+ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.CHINA);
+ String eventTime = String.format("%s发布求助信息",
+ sdf.format(new Date(mV2XPushMessageEntity.getCreateTime())));
+ tvEventTime.setText(eventTime);
+
+ } catch (Resources.NotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 延迟关闭窗体
+ */
+ @Override
+ public void delayedCloseWindow() {
+ itemView.postDelayed(() -> V2XFatigueDrivingScenario.getInstance().close(), 1000);
+ }
+
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventDetailVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventVH.java
similarity index 89%
rename from modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventDetailVH.java
rename to modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventVH.java
index c7d4ee87bf..134926fe46 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventDetailVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XPushEventVH.java
@@ -9,16 +9,15 @@ import android.widget.ImageView;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerUserInfo;
+import com.mogo.module.common.entity.V2XEventShowEntity;
import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.scenario.scene.push.V2XPushEventScenario;
-import com.mogo.module.v2x.utils.ChartingUtil;
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener;
import com.mogo.module.v2x.voice.V2XVoiceConstants;
import com.mogo.module.v2x.voice.V2XVoiceManager;
import com.mogo.service.imageloader.MogoImageView;
-import com.mogo.utils.logger.Logger;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
@@ -29,7 +28,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
* desc : TODO 这里是前瞻演示需求,推送的消息,
* version: 1.0
*/
-public class V2XPushEventDetailVH extends V2XBaseViewHolder {
+public class V2XPushEventVH extends V2XBaseViewHolder {
private MogoImageView ivImg;
private MogoImageView ivReportHead;
@@ -56,6 +55,7 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
mUserInfo.setUserName("蘑菇用户");
mUserInfo.setGender("男");
mUserInfo.setAge(30);
+ mNoveltyInfo.setUserInfo(mUserInfo);
triggerCallChart(mNoveltyInfo);
} catch (Exception e) {
e.printStackTrace();
@@ -64,7 +64,7 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
// 点赞语音回调
private V2XVoiceCallbackListener v2XVoiceCallbackLickListener = (command, intent) -> triggerZan(mNoveltyInfo);
- public V2XPushEventDetailVH(ViewGroup viewGroup) {
+ public V2XPushEventVH(ViewGroup viewGroup) {
super(LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.item_v2x_push_event_detail, viewGroup, false));
ivImg = itemView.findViewById(R.id.ivImg);
@@ -85,6 +85,7 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
mUserInfo.setUserName("蘑菇用户");
mUserInfo.setGender("男");
mUserInfo.setAge(30);
+ mNoveltyInfo.setUserInfo(mUserInfo);
triggerCallChart(mNoveltyInfo);
} catch (Exception e) {
e.printStackTrace();
@@ -119,12 +120,14 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
V2XServiceManager.getMogoRegisterCenter().unregisterMogoNaviListener(MODULE_NAME);
// 反注册语音交互
V2XVoiceManager.INSTANCE
+ .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_NAVI)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_NAVI_UN_WAKEUP)
.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CLOSE_WINDOW)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP)
.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING)
+ .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP)
.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_ZAN)
.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_REPORT)
- .unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_ZAN_UN_WAKEUP)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_FEEDBACK_TRUE)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_FEEDBACK_ERROR)
@@ -133,8 +136,8 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
});
}
- public void initView(V2XPushMessageEntity v2XRoadEventEntity) {
- mV2XRoadEventEntity = v2XRoadEventEntity;
+ public void initView(V2XEventShowEntity v2XEventShowEntity) {
+ mV2XRoadEventEntity = v2XEventShowEntity.getV2XPushMessageEntity();
mNoveltyInfo = new MarkerExploreWay();
mNoveltyInfo.setSn(mV2XRoadEventEntity.getSn());
mNoveltyInfo.setInfoId(mV2XRoadEventEntity.getSceneId());
@@ -143,16 +146,16 @@ public class V2XPushEventDetailVH extends V2XBaseViewHolder {
location.setLon(mV2XRoadEventEntity.getLon());
mNoveltyInfo.setLocation(location);
- if (!TextUtils.isEmpty(v2XRoadEventEntity.getMsgImgUrl())) {
+ if (!TextUtils.isEmpty(mV2XRoadEventEntity.getMsgImgUrl())) {
V2XServiceManager.getImageLoader()
- .displayImage(v2XRoadEventEntity.getMsgImgUrl(), ivImg);
+ .displayImage(mV2XRoadEventEntity.getMsgImgUrl(), ivImg);
}
- if (!TextUtils.isEmpty(v2XRoadEventEntity.getHeadImgUrl())) {
+ if (!TextUtils.isEmpty(mV2XRoadEventEntity.getHeadImgUrl())) {
V2XServiceManager.getImageLoader()
- .displayImage(v2XRoadEventEntity.getHeadImgUrl(), ivReportHead);
+ .displayImage(mV2XRoadEventEntity.getHeadImgUrl(), ivReportHead);
}
- switch (v2XRoadEventEntity.getSceneId()) {
+ switch (mV2XRoadEventEntity.getSceneId()) {
case "100015"://取快递
case "100016"://顺风车
ivRoadEventNav.setVisibility(View.VISIBLE);
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventDetailVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
similarity index 90%
rename from modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventDetailVH.java
rename to modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
index d3724def78..75c28a20f1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventDetailVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
@@ -50,7 +50,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
* desc : 道路事件详情
* version: 1.0
*/
-public class V2XRoadEventDetailVH extends V2XBaseViewHolder {
+public class V2XRoadEventVH extends V2XBaseViewHolder {
private MogoImageView ivEventImg;
private MogoImageView ivReportHead;
private ImageView ivEventPlay;
@@ -125,7 +125,7 @@ public class V2XRoadEventDetailVH extends V2XBaseViewHolder {
ivEventReportErr = itemView.findViewById(R.id.ivEventReportErr);
}
- public V2XRoadEventDetailVH(ViewGroup viewGroup) {
+ public V2XRoadEventVH(ViewGroup viewGroup) {
super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_event_detail, viewGroup, false));
init(itemView);
// 设置视图状态监听
@@ -201,37 +201,28 @@ public class V2XRoadEventDetailVH extends V2XBaseViewHolder {
tvEventTime.setText(eventTime);
}
- // 事件距离车辆小于50米的时候可以用户纠错
- if (mV2XRoadEventEntity.getDistance() < 50) {
- ivEventReportTrue.setVisibility(VISIBLE);
- ivEventReportErr.setVisibility(VISIBLE);
-
- ivEventLive.setVisibility(GONE);
- ivEventZan.setVisibility(GONE);
+ if (!ArrayUtils.isEmpty(mV2XEventShowEntity.getV2XLiveCarList())) {
+ ivEventLive.setVisibility(VISIBLE);
+ V2XVoiceManager.INSTANCE
+ .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_LIVE_ROAD,
+ v2XVoiceOpenLiveListener)
+ .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_LIVE_UN_WAKEUP,
+ v2XVoiceOpenLiveListener);
+ ivEventLive.setOnClickListener(v -> {
+ showLiveCar(v2XEventShowEntity);
+ });
} else {
- if (!ArrayUtils.isEmpty(mV2XEventShowEntity.getV2XLiveCarList())) {
- ivEventLive.setVisibility(VISIBLE);
- V2XVoiceManager.INSTANCE
- .registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_LIVE_ROAD,
- v2XVoiceOpenLiveListener)
- .registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_LIVE_UN_WAKEUP,
- v2XVoiceOpenLiveListener);
- ivEventLive.setOnClickListener(v -> {
- showLiveCar(v2XEventShowEntity);
- });
- } else {
- ivEventLive.setVisibility(GONE);
- }
+ ivEventLive.setVisibility(GONE);
+ }
- ivEventReportTrue.setVisibility(GONE);
- ivEventReportErr.setVisibility(GONE);
- ivEventZan.setVisibility(VISIBLE);
+ ivEventReportTrue.setVisibility(GONE);
+ ivEventReportErr.setVisibility(GONE);
+ ivEventZan.setVisibility(VISIBLE);
- // 用户上报的才会展示拨打电话
- if (!TextUtils.isEmpty(mNoveltyInfo.getUploadType())
- && mNoveltyInfo.getUploadType().equals("1")) {
- requestUserInfo(mNoveltyInfo);
- }
+ // 用户上报的才会展示拨打电话
+ if (!TextUtils.isEmpty(mNoveltyInfo.getUploadType())
+ && mNoveltyInfo.getUploadType().equals("1")) {
+ requestUserInfo(mNoveltyInfo);
}
ivEventReportTrue.setOnClickListener(v -> {
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 f96ae6e301..2fdd7b412f 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
@@ -35,6 +35,7 @@ import com.mogo.utils.network.utils.GsonUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
@@ -51,8 +52,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
*/
public class V2XAlarmServer {
// 记录道路播报的事件
- private static HashMap mAlertRoadEventList = new HashMap<>();
- private static HashSet mAlertRoadEventCorrectionList = new HashSet<>();
+ public static ConcurrentHashMap mAlertRoadEventList = new ConcurrentHashMap<>();
// 记录违章停车播报事件
private static HashMap mAlertIllegalParkEventList = new HashMap<>();
@@ -112,13 +112,6 @@ public class V2XAlarmServer {
isAlreadyAlert = true;
}
}
- // 判断是否是纠错,如果是纠错就忽略掉带有时间段的道路提醒
- if (v2XRoadEventEntity.getDistance() <= 50) {
- if (!mAlertRoadEventCorrectionList.contains(v2XRoadEventEntity)) {
- mAlertRoadEventCorrectionList.add(v2XRoadEventEntity);
- isAlreadyAlert = false;
- }
- }
// Logger.w(MODULE_NAME, "V2X预警--车辆与事件信息:" +
// "\n距离:" + v2XRoadEventEntity.getDistance() + "米" +
// "\n是否已经提醒:" + isAlreadyAlert +
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 0bbc8473b1..9643089795 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
@@ -69,11 +69,9 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList
@Override
public void onLocationChanged(MogoLocation location) {
try {
- Logger.d(V2XConst.MODULE_NAME, "V2X预警--onLocationChanged: " + GsonUtil.jsonFromObject(location));
-
+ //Logger.d(V2XConst.MODULE_NAME, "V2X预警--onLocationChanged: " + GsonUtil.jsonFromObject(location));
// 刷新角度
getCurrentCarAngle(location);
-
// 只有车速大于 5 的时候进行计算
if (location.getSpeed() >= 5) {
refreshCurrentCarState(location);
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401012.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401012.java
new file mode 100644
index 0000000000..38b9fab0a3
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401012.java
@@ -0,0 +1,83 @@
+package com.mogo.module.v2x.listener;
+
+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.MarkerCardResult;
+import com.mogo.module.common.entity.MarkerExploreWay;
+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.service.Utils;
+import com.mogo.module.v2x.V2XConst;
+import com.mogo.module.v2x.V2XServiceManager;
+import com.mogo.module.v2x.alarm.V2XAlarmServer;
+import com.mogo.module.v2x.utils.TimeUtils;
+import com.mogo.module.v2x.utils.V2XUtils;
+import com.mogo.service.connection.IMogoOnMessageListener;
+import com.mogo.utils.logger.Logger;
+import com.mogo.utils.network.utils.GsonUtil;
+
+import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
+
+/**
+ * author : donghongyu
+ * e-mail : 1358506549@qq.com
+ * date : 2020/4/1 10:23 AM
+ * desc : 道路事件服务端下发触发
+ * version: 1.0
+ */
+public class V2XMessageListener_401012 implements IMogoOnMessageListener {
+
+ @Override
+ public Class target() {
+ return MarkerCardResult.class;
+ }
+
+ @Override
+ public void onMsgReceived(MarkerCardResult response) {
+ Logger.d(MODULE_NAME, "V2XMessageListener_401012==V2X服务端下发:\n"
+ + GsonUtil.jsonFromObject(response));
+ try {
+ if (response.getExploreWay() != null && response.getExploreWay().size() > 0) {
+ MarkerExploreWay markerExploreWay = response.getExploreWay().get(0);
+ MarkerLocation markerLocation = markerExploreWay.getLocation();
+ // 记录道路事件
+ V2XRoadEventEntity v2XRoadEventEntity = new V2XRoadEventEntity();
+ v2XRoadEventEntity.setLocation(markerLocation);
+ // 探路目前只有上报拥堵
+ v2XRoadEventEntity.setPoiType(markerExploreWay.getPoiType());
+ // 当前车辆数据
+ MogoLocation currentLocation = V2XServiceManager.getV2XStatusManager().getLocation();
+ float calculateDistance = Utils.calculateLineDistance(
+ new MogoLatLng(markerLocation.getLat(), markerLocation.getLon()),
+ new MogoLatLng(currentLocation.getLatitude(), currentLocation.getLongitude())
+ );
+ v2XRoadEventEntity.setDistance(calculateDistance);
+ v2XRoadEventEntity.setNoveltyInfo(markerExploreWay);
+ v2XRoadEventEntity.setExpireTime(20000);
+
+ // 记录播报过的道路事件
+ V2XAlarmServer.mAlertRoadEventList.put(v2XRoadEventEntity, TimeUtils.getNowString());
+
+ V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>();
+ // 控制类型
+ v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING);
+ // 设置数据
+ v2xMessageEntity.setContent(v2XRoadEventEntity);
+ // 控制展示状态
+ 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);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
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 bfb35e2cbc..bd14999026 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
@@ -67,7 +67,7 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
// 锁车
V2XServiceManager.getMapUIController().recoverLockMode();
// 开启主Launcher刷新
- V2XServiceManager.getIMogoRefreshStrategyController().restartAutoRefreshAtTime(500);
+ V2XServiceManager.getIMogoRefreshStrategyController().restartAutoRefreshAtTime(0);
}
@Override
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 bcffecdee1..1d7082587b 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
@@ -4,6 +4,7 @@ import android.content.Intent;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import com.mogo.module.common.entity.V2XHistoryScenarioData;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.scenario.IV2XScenarioManager;
@@ -15,10 +16,13 @@ import com.mogo.module.v2x.scenario.scene.park.V2XIllegalParkScenario;
import com.mogo.module.v2x.scenario.scene.push.V2XPushEventScenario;
import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventScenario;
import com.mogo.module.v2x.scenario.scene.seek.V2XSeekHelpScenario;
+import com.mogo.module.v2x.utils.TimeUtils;
import com.mogo.module.v2x.utils.ToastUtils;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
+import com.mogo.utils.sqlite.BaseDaoFactory;
+import com.mogo.utils.sqlite.IBaseDao;
import java.util.HashMap;
@@ -36,6 +40,11 @@ public class V2XScenarioManager implements IV2XScenarioManager {
private AbsV2XScenario mV2XScenario;
private HashMap mV2XScenarioSet = new HashMap<>();
+ /**
+ * 场景数据管理
+ */
+ private static IBaseDao mScenarioDao;
+
private V2XScenarioManager() {
}
@@ -44,6 +53,7 @@ public class V2XScenarioManager implements IV2XScenarioManager {
synchronized (V2XScenarioManager.class) {
if (mV2XScenarioManager == null) {
mV2XScenarioManager = new V2XScenarioManager();
+ mScenarioDao = BaseDaoFactory.Companion.getInstance().getBaseDao(V2XUtils.getApp(), V2XHistoryScenarioData.class);
}
}
}
@@ -52,12 +62,23 @@ public class V2XScenarioManager implements IV2XScenarioManager {
@Override
public void handlerMessage(V2XMessageEntity v2XMessageEntity) {
- Logger.w(MODULE_NAME, "处理V2X场景:" + GsonUtil.jsonFromObject(v2XMessageEntity));
+ Logger.d(MODULE_NAME, "处理V2X场景:" + GsonUtil.jsonFromObject(v2XMessageEntity));
synchronized (V2XScenarioManager.class) {
// 展示
V2XUtils.runOnUiThread(() -> {
// 提取之前存储的场景
if (v2XMessageEntity != null) {
+ /*try {
+ // 进行数据库存储
+ V2XHistoryScenarioData v2XHistoryScenarioData = new V2XHistoryScenarioData();
+ v2XHistoryScenarioData.setScenarioType(v2XMessageEntity.getType());
+ v2XHistoryScenarioData.setTriggerTime(TimeUtils.getNowMills());
+ v2XHistoryScenarioData.setEventJsonData(GsonUtil.jsonFromObject(v2XMessageEntity.getContent()));
+ mScenarioDao.insert(v2XHistoryScenarioData);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }*/
+
// 广播给应用内部其它模块
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_ACTION);
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/fatigue/V2XFatigueDrivingWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/fatigue/V2XFatigueDrivingWindow.java
index b4249e3355..7a363a060e 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/fatigue/V2XFatigueDrivingWindow.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/fatigue/V2XFatigueDrivingWindow.java
@@ -2,28 +2,31 @@ package com.mogo.module.v2x.scenario.scene.fatigue;
import android.content.Context;
import android.os.Handler;
-import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
-import android.widget.ImageView;
import android.widget.RelativeLayout;
-import android.widget.TextView;
-import com.mogo.map.MogoLatLng;
-import com.mogo.map.navi.IMogoNaviListener;
-import com.mogo.map.navi.MogoNaviInfo;
-import com.mogo.map.navi.MogoTraffic;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.PagerSnapHelper;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.mogo.module.common.entity.V2XEventShowEntity;
import com.mogo.module.common.entity.V2XPushMessageEntity;
+import com.mogo.module.common.entity.V2XWindowTypeEnum;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XServiceManager;
+import com.mogo.module.v2x.adapter.V2XRoadEventAdapter;
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
import com.mogo.module.v2x.scenario.view.IV2XWindow;
-import com.mogo.module.v2x.utils.SpanUtils;
import com.mogo.module.v2x.voice.V2XVoiceConstants;
import com.mogo.module.v2x.voice.V2XVoiceManager;
import com.mogo.utils.logger.Logger;
+import java.util.ArrayList;
+import java.util.List;
+
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
/**
@@ -34,10 +37,13 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
* version: 1.0
*/
public class V2XFatigueDrivingWindow extends RelativeLayout
- implements IV2XWindow, IMogoNaviListener {
-
- private TextView mTvAddress, mTvAddressDistance;
- private ImageView mIvToNav;
+ implements IV2XWindow {
+ // 展示列表
+ private RecyclerView mRecyclerView;
+ // 列表数据适配器
+ private V2XRoadEventAdapter mV2XRoadEventAdapter;
+ // 列表展示
+ private List mItemList = new ArrayList<>();
// 直播30秒自动关闭
private static Handler handlerV2XEvent = new Handler();
@@ -65,44 +71,49 @@ public class V2XFatigueDrivingWindow extends RelativeLayout
public void initView(Context context) {
Logger.w(MODULE_NAME, "V2X-初始化疲劳驾驶");
- LayoutInflater.from(context).inflate(R.layout.window_fatigue_driving, this);
- mTvAddress = findViewById(R.id.tvAddress);
- mTvAddressDistance = findViewById(R.id.tvAddressDistance);
- mIvToNav = findViewById(R.id.ivToNav);
- V2XServiceManager.getMogoRegisterCenter().registerMogoNaviListener( "test", this );
- mIvToNav.setOnClickListener(v -> startNavi());
+ LayoutInflater.from(context).inflate(R.layout.window_road_event_detail, this);
+ // 详情列表
+ mRecyclerView = findViewById(R.id.rvRoadEventList);
+ mV2XRoadEventAdapter = new V2XRoadEventAdapter(mItemList);
+ mRecyclerView.setAdapter(mV2XRoadEventAdapter);
+ // 设置切换样式
+ new PagerSnapHelper().attachToRecyclerView(mRecyclerView);
+ // 配置列表朝向
+ LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
+ mRecyclerView.setLayoutManager(layoutManager);
+ mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+ @Override
+ public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
+ super.onScrollStateChanged(recyclerView, newState);
+ if (recyclerView.getChildCount() > 0) {
+ if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+ // 用户处于交互的时候延后隐藏时间
+ countDownV2XEvent();
+ }
+ }
+ }
+ });
}
- /**
- * 导航规划路线
- */
- private void startNavi() {
- if (mV2XPushMessageEntity != null) {
- MogoLatLng endPoint = new MogoLatLng(mV2XPushMessageEntity.getLat(), mV2XPushMessageEntity.getLon());
- V2XServiceManager.getNavi().naviTo(endPoint);
- close();
- }
- }
/**
* 展示道路事件详情Windows
*/
@Override
public void show(V2XPushMessageEntity entity) {
- mV2XPushMessageEntity = entity;
if (entity != null) {
- if (!TextUtils.isEmpty(entity.getAddress())) {
- mTvAddress.setText(entity.getAddress());
- } else {
- mTvAddress.setText("");
- }
- SpanUtils.with(mTvAddressDistance)
- .append("" + (int) entity.getDistance())
- .setFontSize((int) getResources().getDimension(R.dimen.dp_80))
- .append("M")
- .setFontSize((int) getResources().getDimension(R.dimen.dp_30))
- .create();
- countDownV2XEvent(entity);
+ mV2XPushMessageEntity = entity;
+ // 清空数据
+ mItemList.clear();
+ //Logger.d(MODULE_NAME, "V2X===推送消息:" + v2XRoadEventEntity);
+ V2XEventShowEntity v2XEventShowEntity = new V2XEventShowEntity();
+ v2XEventShowEntity.setV2XPushMessageEntity(mV2XPushMessageEntity);
+ v2XEventShowEntity.setViewType(V2XWindowTypeEnum.FATIGUE_DRIVING_WINDOW);
+ mItemList.add(v2XEventShowEntity);
+ // 刷新列表
+ mV2XRoadEventAdapter.notifyDataSetChanged();
+
+ countDownV2XEvent();
}
}
@@ -138,61 +149,21 @@ public class V2XFatigueDrivingWindow extends RelativeLayout
/**
* 窗体倒计时
*/
- public void countDownV2XEvent(V2XPushMessageEntity v2XPushMessageEntity) {
- // 倒计时
- if (runnableV2XEvent == null) {
- runnableV2XEvent = () -> {
- Logger.d(MODULE_NAME, "V2X=== Window 30秒倒计时结束。。。");
- // 移出Window详细信息
- close();
- };
- } else {
- handlerV2XEvent.removeCallbacks(runnableV2XEvent);
+ public void countDownV2XEvent() {
+ if (mV2XPushMessageEntity != null) {
+ // 倒计时
+ if (runnableV2XEvent == null) {
+ runnableV2XEvent = () -> {
+ Logger.d(MODULE_NAME, "V2X=== Window 30秒倒计时结束。。。");
+ // 移出Window详细信息
+ close();
+ };
+ } else {
+ handlerV2XEvent.removeCallbacks(runnableV2XEvent);
+ }
+ int expireTime = mV2XPushMessageEntity.getExpireTime();
+ Logger.d(MODULE_NAME, "V2X=== Window 展示开始倒计时:" + expireTime);
+ handlerV2XEvent.postDelayed(runnableV2XEvent, expireTime);
}
- int expireTime = v2XPushMessageEntity.getExpireTime();
- Logger.d(MODULE_NAME, "V2X=== Window 展示开始倒计时:" + expireTime);
- handlerV2XEvent.postDelayed(runnableV2XEvent, expireTime);
- }
-
-
- @Override
- public void onCalculateSuccess() {
- V2XServiceManager.getMogoRegisterCenter().unregisterMogoNaviListener( "test");
- V2XServiceManager.getNavi().startNavi(true);
- }
-
- @Override
- public void onInitNaviFailure() {
-
- }
-
- @Override
- public void onInitNaviSuccess() {
-
- }
-
- @Override
- public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
-
- }
-
- @Override
- public void onStartNavi() {
-
- }
-
- @Override
- public void onStopNavi() {
-
- }
-
- @Override
- public void onoCalculateFailed() {
-
- }
-
- @Override
- public void onUpdateTraffic(MogoTraffic traffic) {
-
}
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java
index 05edb72666..1b231e1db0 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java
@@ -2,19 +2,21 @@ package com.mogo.module.v2x.scenario.scene.livecar;
import android.content.Context;
import android.os.Handler;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.RelativeLayout;
import com.mogo.module.common.entity.MarkerCarInfo;
+import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XServiceManager;
-import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.v2x.listener.V2XWindowStatusListener;
import com.mogo.module.v2x.scenario.view.IV2XWindow;
import com.mogo.module.v2x.utils.MarkerUtils;
import com.mogo.module.v2x.view.V2XLiveGSYVideoView;
+import com.mogo.service.imageloader.MogoImageView;
import com.mogo.utils.logger.Logger;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
@@ -30,6 +32,7 @@ public class V2XPushLiveCarWindow extends RelativeLayout implements IV2XWindow {
- private static final String TAG = "V2XLegalParkWindow";
-
- private TextView mAddressTv;
- private TextView mIllegalNumTv;
- private HeartLikeView mIlIllegalParkingLike;
- private HeartUnLikeView mIIllegalParkingUnLike;
+ private static final String TAG = "V2XIllegalParkWindow";
+ // 展示列表
+ private RecyclerView mRecyclerView;
+ // 列表数据适配器
+ private V2XRoadEventAdapter mV2XRoadEventAdapter;
+ // 列表展示
+ private List mItemList = new ArrayList<>();
// 处理道路事件,20秒倒计时
private Handler handlerV2XEvent = new Handler();
@@ -44,10 +49,6 @@ public class V2XIllegalParkWindow extends RelativeLayout implements IV2XWindow roadReportTrue();
- private V2XVoiceCallbackListener v2XVoiceCallbackMeiYongListener = (command, intent) -> roadReportErr();
-
public V2XIllegalParkWindow() {
this(V2XServiceManager.getContext(), null);
}
@@ -69,12 +70,28 @@ public class V2XIllegalParkWindow extends RelativeLayout implements IV2XWindow 0) {
+ if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+ // 用户处于交互的时候延后隐藏时间
+ countDownV2XEvent();
+ }
+ }
+ }
+ });
}
public void show(MarkerExploreWay entity, boolean isAutoClose) {
@@ -89,23 +106,17 @@ public class V2XIllegalParkWindow extends RelativeLayout implements IV2XWindow {
- Logger.d(V2XConst.MODULE_NAME, "反馈有用");
- roadReportTrue();
- });
-
- mIIllegalParkingUnLike.setOnClickCallListener(v -> {
- Logger.d(V2XConst.MODULE_NAME, "反馈无用");
- roadReportErr();
- });
-
+ // 刷新列表
+ mV2XRoadEventAdapter.notifyDataSetChanged();
// 倒计时
if (mIsAutoClose) {
countDownV2XEvent();
@@ -120,14 +131,6 @@ public class V2XIllegalParkWindow extends RelativeLayout implements IV2XWindow mItemList = new ArrayList<>();
+ private List mItemList = new ArrayList<>();
// 处理道路事件,30秒倒计时
private Handler handlerV2XEvent = new Handler();
private Runnable runnableV2XEvent;
@@ -80,7 +82,7 @@ public class V2XPushEventWindow extends RelativeLayout implements IV2XWindow imp
@Override
public void init(V2XMessageEntity v2XMessageEntity) {
try {
- Logger.w(V2XConst.MODULE_NAME, "v2XMessageEntity:" + GsonUtil.jsonFromObject(v2XMessageEntity));
+ Logger.d(V2XConst.MODULE_NAME, "v2XMessageEntity:" + GsonUtil.jsonFromObject(v2XMessageEntity));
V2XRoadEventEntity v2XRoadEventEntity = v2XMessageEntity.getContent();
if (v2XRoadEventEntity != null) {
@@ -79,14 +79,8 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp
@Override
public void show() {
if (mV2XMessageEntity != null && mV2XMessageEntity.getContent() != null) {
- // 如果道路事件小于50米的时候需要用户反馈
- if (mV2XMessageEntity.getContent().getDistance() < 50) {
- // 设置TTS
- mV2XMessageEntity.getContent().getTtsWithFeedback();
- } else {
- // 设置TTS
- mV2XMessageEntity.getContent().getTts(false);
- }
+ // 设置TTS
+ mV2XMessageEntity.getContent().getTts(false);
// 广播给ADAS
ADASUtils.broadcastToADAS(
V2XServiceManager.getContext(),
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventWindow.java
index 8723cb1dd9..93e07f7d70 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventWindow.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadEventWindow.java
@@ -97,7 +97,7 @@ public class V2XRoadEventWindow extends RelativeLayout
* 初始化视图
*/
private void initView(Context context) {
- Logger.w(MODULE_NAME, "V2X===初始化道路事件小窗口View。。。。。");
+ Logger.d(MODULE_NAME, "V2X===初始化道路事件小窗口View。。。。。");
// 填充布局
LayoutInflater.from(context).inflate(R.layout.window_road_event_detail, this);
// 详情列表
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 db742c9792..e4ff72bde8 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
@@ -4,20 +4,22 @@ import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.view.LayoutInflater;
-import android.view.View;
import android.widget.Button;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import com.google.android.flexbox.FlexboxLayout;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XConst;
+import com.mogo.module.v2x.alarm.V2XAlarmServer;
import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
import com.mogo.module.v2x.utils.TestOnLineCarUtils;
+import com.mogo.module.v2x.utils.ToastUtils;
import java.util.List;
@@ -29,8 +31,10 @@ import java.util.List;
* version: 1.0
*/
public class V2XTestConsoleWindow extends ConstraintLayout {
-
+ private FlexboxLayout mFlTestPanel;
+ private Button mBtnTriggerOpen;
private Button mBtnTriggerRoadEvent;
+ private Button mBtnClearRoadEvent;
private Button mBtnTriggerPushEvent;
private Button mBtnTriggerPushLiveCarEvent;
private Button mBtnTriggerAnimationEvent;
@@ -54,6 +58,9 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
private void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.window_test_console, this);
+ mFlTestPanel = findViewById(R.id.flTestPanel);
+ mBtnTriggerOpen = findViewById(R.id.btnTriggerOpen);
+ mBtnClearRoadEvent = findViewById(R.id.btnClearRoadEvent);
mBtnTriggerRoadEvent = findViewById(R.id.btnTriggerRoadEvent);
mBtnTriggerPushEvent = findViewById(R.id.btnTriggerPushEvent);
mBtnTriggerPushLiveCarEvent = findViewById(R.id.btnTriggerPushLiveCarEvent);
@@ -62,6 +69,13 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
mBtnTriggerSeekHelpEvent = findViewById(R.id.btnTriggerSeekHelpEvent);
mBtnTriggerParkEvent = findViewById(R.id.btnTriggerParkEvent);
+ mBtnTriggerOpen.setOnClickListener(v -> mFlTestPanel.setVisibility(GONE));
+
+ mBtnClearRoadEvent.setOnClickListener(v -> {
+ V2XAlarmServer.mAlertRoadEventList.clear();
+ ToastUtils.showShort("缓存已清除");
+ });
+
mBtnTriggerRoadEvent.setOnClickListener(v -> {
V2XMessageEntity v2XMessageEntity =
TestOnLineCarUtils.getV2XScenarioRoadEventData();
@@ -82,7 +96,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout {
mBtnTriggerPushLiveCarEvent.setOnClickListener(v -> {
V2XMessageEntity v2XMessageEntity =
- TestOnLineCarUtils.getV2XScenarioPushEventData();
+ TestOnLineCarUtils.getV2XScenarioPushLiveEventData();
Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION);
intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity);
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java
index 75f5490c78..a9e89d1cfd 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/TestOnLineCarUtils.java
@@ -2,11 +2,11 @@ package com.mogo.module.v2x.utils;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerResponse;
-import com.mogo.module.v2x.R;
-import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XPushMessageEntity;
import com.mogo.module.common.entity.V2XRoadEventEntity;
+import com.mogo.module.v2x.R;
+import com.mogo.module.v2x.entity.net.V2XSpecialCarRes;
import com.mogo.utils.network.utils.GsonUtil;
import java.io.ByteArrayOutputStream;
@@ -122,6 +122,40 @@ public class TestOnLineCarUtils {
return null;
}
+
+ /**
+ * 模拟H5推送直播数据
+ */
+ public static V2XMessageEntity getV2XScenarioPushLiveEventData() {
+ try {
+ InputStream inputStream = V2XUtils.getApp()
+ .getResources()
+ .openRawResource(R.raw.scenario_push_live_event_data);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ int len = -1;
+ byte[] buffer = new byte[1024];
+ while ((len = inputStream.read(buffer)) != -1) {
+ baos.write(buffer, 0, len);
+ }
+ inputStream.close();
+
+ // 加载数据源
+ V2XPushMessageEntity v2xRoadEventEntity = GsonUtil.objectFromJson(baos.toString(), V2XPushMessageEntity.class);
+
+ V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>();
+ // 控制类型
+ v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_LIVE_CAR_WARNING);
+ // 设置数据
+ v2xMessageEntity.setContent(v2xRoadEventEntity);
+ // 控制展示状态
+ v2xMessageEntity.setShowState(true);
+ return v2xMessageEntity;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
/**
* 模拟H5推送场景动画数据
*/
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 9f0cc0016a..8ddffb0bab 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
@@ -7,17 +7,43 @@
android:paddingStart="@dimen/module_main_v2x_animation_width">
+
+
+
+