diff --git a/app/build.gradle b/app/build.gradle index eaaa292644..ba41a5d30d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -109,6 +109,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' } // e系列,采用Launcher方案 e8xx { @@ -118,6 +119,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' } // 同上 em4 { @@ -127,6 +129,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' } // e系列-2+32,对标D系列2+32,采用独立app的形式 em3 { @@ -136,6 +139,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' } // e系列-1+16,对标D系列1+16,采用独立app形式 em1 { @@ -145,6 +149,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' } // d系列 d8xx { @@ -154,6 +159,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' } // d系列 1+16 版本 d82x{ @@ -163,6 +169,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'true' // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'false' } // 比亚迪 bydauto{ @@ -172,6 +179,7 @@ android { buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false' // 车机类型,主要用于区分自研车机还是别人家的车机,其他车机,比亚迪定为1 buildConfigField 'int', 'CAR_MACHINE_TYPE', '1' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' } qa { dimension "env" diff --git a/app/functions/eventpanel.gradle b/app/functions/eventpanel.gradle index af40aafa69..8fd4d2cacf 100644 --- a/app/functions/eventpanel.gradle +++ b/app/functions/eventpanel.gradle @@ -2,24 +2,24 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { + d8xxImplementation rootProject.ext.dependencies.moduleventpanel + d82xImplementation rootProject.ext.dependencies.moduleventpanelnoop em1Implementation rootProject.ext.dependencies.moduleventpanelnoop bydautoImplementation rootProject.ext.dependencies.moduleventpanelnoop - - d8xxImplementation rootProject.ext.dependencies.moduleventpanel - em4Implementation rootProject.ext.dependencies.moduleventpanel - e8xxImplementation rootProject.ext.dependencies.moduleventpanel - f8xxImplementation rootProject.ext.dependencies.moduleventpanel - em3Implementation rootProject.ext.dependencies.moduleventpanel + em4Implementation rootProject.ext.dependencies.moduleventpanelnoop + e8xxImplementation rootProject.ext.dependencies.moduleventpanelnoop + f8xxImplementation rootProject.ext.dependencies.moduleventpanelnoop + em3Implementation rootProject.ext.dependencies.moduleventpanelnoop } else { + d8xxImplementation project(':modules:mogo-module-event-panel') + d82xImplementation project(':modules:mogo-module-event-panel-noop') em1Implementation project(':modules:mogo-module-event-panel-noop') bydautoImplementation project(':modules:mogo-module-event-panel-noop') - - d8xxImplementation project(':modules:mogo-module-event-panel') - em4Implementation project(':modules:mogo-module-event-panel') - e8xxImplementation project(':modules:mogo-module-event-panel') - f8xxImplementation project(':modules:mogo-module-event-panel') - em3Implementation project(':modules:mogo-module-event-panel') + em4Implementation project(':modules:mogo-module-event-panel-noop') + e8xxImplementation project(':modules:mogo-module-event-panel-noop') + f8xxImplementation project(':modules:mogo-module-event-panel-noop') + em3Implementation project(':modules:mogo-module-event-panel-noop') } } \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 449ebf20d4..2fd042befb 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -95,6 +95,7 @@ public class MogoApplication extends AbsMogoApplication { DebugConfig.setCarMachineType( BuildConfig.CAR_MACHINE_TYPE ); DebugConfig.setProductFlavor( BuildConfig.FLAVOR_product ); DebugConfig.setSocketAppId( BuildConfig.SOCKET_APP_ID ); + DebugConfig.setRoadEventAnimated( BuildConfig.ROAD_EVENT_ANIMATED ); } @Override diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index fff915fbb3..ebf76b2850 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -237,4 +237,17 @@ public class DebugConfig { public static String getSocketAppId() { return sSocketAppId; } + + /** + * 道路事件动画 + */ + private static boolean sRoadEventAnimated = false; + + public static boolean isRoadEventAnimated() { + return sRoadEventAnimated; + } + + public static void setRoadEventAnimated( boolean sRoadEventAnimated ) { + DebugConfig.sRoadEventAnimated = sRoadEventAnimated; + } } 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 5f9477869a..627288546f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -103,5 +103,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/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 @@ + + + + + + + + + +