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 4b6d621d60..636e4ea87a 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 @@ -35,6 +35,9 @@ public class V2XEventShowEntity implements Serializable { // 违章停车 private MarkerExploreWay v2XIllegalPark; + // 基于目的地道路推荐详情 + private V2XRecommendRouteEntity v2XRecommendRouteEntity; + public int getViewType() { return viewType; } @@ -83,6 +86,14 @@ public class V2XEventShowEntity implements Serializable { this.v2XIllegalPark = v2XIllegalPark; } + public V2XRecommendRouteEntity getV2XRecommendRouteEntity() { + return v2XRecommendRouteEntity; + } + + public void setV2XRecommendRouteEntity(V2XRecommendRouteEntity v2XRecommendRouteEntity) { + this.v2XRecommendRouteEntity = v2XRecommendRouteEntity; + } + @Override public boolean equals(Object o) { if (this == o) { @@ -97,14 +108,15 @@ public class V2XEventShowEntity implements Serializable { Objects.equals(v2XLiveCarInfoRes, that.v2XLiveCarInfoRes) && Objects.equals(v2XLiveCarList, that.v2XLiveCarList) && Objects.equals(v2XPushMessageEntity, that.v2XPushMessageEntity) && - Objects.equals(v2XIllegalPark, that.v2XIllegalPark); + Objects.equals(v2XIllegalPark, that.v2XIllegalPark) && + Objects.equals(v2XRecommendRouteEntity, that.v2XRecommendRouteEntity); } @Override public int hashCode() { return Objects.hash(viewType, v2XRoadEventEntity, v2XLiveCarInfoRes, v2XLiveCarList, - v2XPushMessageEntity, v2XIllegalPark); + v2XPushMessageEntity, v2XIllegalPark, v2XRecommendRouteEntity); } @@ -119,6 +131,7 @@ public class V2XEventShowEntity implements Serializable { V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_LIVE_CAR_WARNING, V2XMessageEntity.V2XTypeEnum.ALERT_ILLEGAL_PARK_WARNING, V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP, + V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE, }) @Target({ ElementType.PARAMETER, diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java index 8019c7547b..f025292325 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XMessageEntity.java @@ -141,8 +141,8 @@ public class V2XMessageEntity implements Serializable { int ALERT_EVENT_UGC_WARNING = 1_009; // 呼叫、请求直播事件 int ALERT_VOICE_CALL_FOR_LIVECAR_SHOW = 1_010; - // 基于目的地预判的道路事件 - int ALERT_PREJECTED_ROAD_WARNING = 1_011; + // 基于预判目的地道路事件的路线推荐 + int ALERT_RECOMMEND_ROUTE = 1_011; // 推送VR消息展示 int ALERT_PUSH_VR_SHOW = 2_000; // 自车求助 @@ -164,7 +164,7 @@ public class V2XMessageEntity implements Serializable { V2XTypeEnum.ALERT_EVENT_UGC_WARNING, V2XTypeEnum.ALERT_CAR_FOR_HELP, V2XTypeEnum.ALERT_VOICE_CALL_FOR_LIVECAR_SHOW, - V2XTypeEnum.ALERT_PREJECTED_ROAD_WARNING, + V2XTypeEnum.ALERT_RECOMMEND_ROUTE, V2XTypeEnum.ALERT_PUSH_VR_SHOW, V2XTypeEnum.ALERT_OBU_EVENT, }) diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPrejectedRoadEventEntity.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java similarity index 76% rename from modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPrejectedRoadEventEntity.java rename to modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java index 68733947a3..d95387b5f2 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XPrejectedRoadEventEntity.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/V2XRecommendRouteEntity.java @@ -4,6 +4,6 @@ package com.mogo.module.common.entity; * created by wujifei on 2020/12/24 15:33 * describe:基于目的地预判的道路事件 */ -public class V2XPrejectedRoadEventEntity { +public class V2XRecommendRouteEntity { } 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 66dd23a818..b4a68452b2 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 @@ -13,6 +13,7 @@ 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.V2XRecommendRouteVH; import com.mogo.module.v2x.adapter.holder.V2XRoadEventVH; import com.mogo.module.v2x.scenario.view.IV2XWindow; @@ -70,6 +71,10 @@ public class V2XRoadEventAdapter extends RecyclerView.Adapter { + private TextView mTvAddress, mTvAddressDistance; + private ImageView mIvToNav, mIvClose; + + public V2XRecommendRouteVH(ViewGroup viewGroup, IV2XWindow v2XWindow) { + super(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_fatigue_driving, viewGroup, false), v2XWindow); + mTvAddress = itemView.findViewById(R.id.tvAddress); + mTvAddressDistance = itemView.findViewById(R.id.tvAddressDistance); + mIvToNav = itemView.findViewById(R.id.ivToNav); + mIvClose = itemView.findViewById(R.id.ivClose); + } + + @Override + public void initView(V2XRecommendRouteEntity viewData) { + + } +} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java index eab482be1b..e1ea631bc9 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XRefreshModel.java @@ -16,13 +16,11 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.location.MogoLocation; import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.entity.V2XMessageEntity; -import com.mogo.module.common.entity.V2XPrejectedRoadEventEntity; -import com.mogo.module.common.entity.V2XRoadEventEntity; +import com.mogo.module.common.entity.V2XRecommendRouteEntity; import com.mogo.module.service.ServiceConst; import com.mogo.module.service.network.RefreshBody; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.alarm.V2XAlarmServer; import com.mogo.module.v2x.entity.net.V2XDemoUserInfoRes; import com.mogo.module.v2x.entity.net.V2XLiveCarBroadcastReq; import com.mogo.module.v2x.entity.net.V2XLiveCarRes; @@ -32,7 +30,6 @@ import com.mogo.module.v2x.entity.net.V2XRoadDataRes; import com.mogo.module.v2x.entity.net.V2XSeekHelpRes; import com.mogo.module.v2x.entity.net.V2XStrategyPushRes; import com.mogo.module.v2x.entity.net.V2XUserInfoRes; -import com.mogo.module.v2x.utils.TimeUtils; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.service.MogoServicePaths; import com.mogo.service.network.IMogoNetwork; @@ -42,15 +39,10 @@ import com.mogo.utils.network.utils.GsonUtil; import java.util.Map; -import io.reactivex.Observer; import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.annotations.NonNull; -import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import okhttp3.RequestBody; -import static com.mogo.module.v2x.V2XConst.MODULE_NAME; - /** * 数据接口API @@ -689,18 +681,20 @@ public class V2XRefreshModel { return; } if (v2XRoadDataRes.getResult().getPoiData() != null && v2XRoadDataRes.getResult().getPoiData().size() > 0) { - V2XPrejectedRoadEventEntity v2XPrejectedRoadEventEntity = new V2XPrejectedRoadEventEntity(); - V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); + V2XRecommendRouteEntity v2XRecommendRouteEntity = new V2XRecommendRouteEntity(); + V2XMessageEntity v2xMessageEntity = new V2XMessageEntity<>(); // 控制类型 - v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_PREJECTED_ROAD_WARNING); + v2xMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE); // 设置数据 - v2xMessageEntity.setContent(v2XPrejectedRoadEventEntity); + v2xMessageEntity.setContent(v2XRecommendRouteEntity); // 控制展示状态 v2xMessageEntity.setShowState(true); Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2xMessageEntity); LocalBroadcastManager.getInstance(V2XUtils.getApp()).sendBroadcast(intent); + } else if (v2XRoadDataRes.getResult().getIllegalParkingData() != null && v2XRoadDataRes.getResult().getIllegalParkingData().size() > 0) { + } } 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 c33e5ab8d8..bbb5396928 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 @@ -9,7 +9,7 @@ import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.scenario.IV2XScenarioManager; import com.mogo.module.v2x.scenario.scene.animation.V2XAnimationScenario; -import com.mogo.module.v2x.scenario.scene.destination.V2XPrejectedRoadEventScenario; +import com.mogo.module.v2x.scenario.scene.destination.V2XRecommendRouteScenario; import com.mogo.module.v2x.scenario.scene.fatigue.V2XFatigueDrivingScenario; import com.mogo.module.v2x.scenario.scene.help.V2XCarForHelpScenario; import com.mogo.module.v2x.scenario.scene.livecar.V2XPushLiveCarScenario; @@ -97,8 +97,8 @@ public class V2XScenarioManager implements IV2XScenarioManager { case V2XMessageEntity.V2XTypeEnum.ALERT_VOICE_CALL_FOR_LIVECAR_SHOW: mV2XScenario = new V2XVoiceCallLiveScenario(); break; - case V2XMessageEntity.V2XTypeEnum.ALERT_PREJECTED_ROAD_WARNING: - mV2XScenario = new V2XPrejectedRoadEventScenario(); + case V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE: + mV2XScenario = new V2XRecommendRouteScenario(); break; case V2XMessageEntity.V2XTypeEnum.ALERT_PUSH_VR_SHOW: mV2XScenario = new V2XPushVREventScenario(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.kt deleted file mode 100644 index d741864f2a..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.kt +++ /dev/null @@ -1,64 +0,0 @@ -package com.mogo.module.v2x.scenario.scene.destination - -import com.mogo.module.common.entity.V2XMessageEntity -import com.mogo.module.common.entity.V2XPrejectedRoadEventEntity -import com.mogo.module.v2x.scenario.impl.AbsV2XScenario - -/** - * created by wujifei on 2020/12/25 14:15 - * describe:基于目的地预判的道路事件场景 - */ -class V2XPrejectedRoadEventScenario : AbsV2XScenario() { - - init { - v2XWindow = V2XPrejectedRoadEventWindow() - } - - override fun init(v2XMessageEntity: V2XMessageEntity?) { - v2XMessageEntity?.content.let { - if (v2XMessageEntity!!.isShowState) { - if (!isSameScenario(v2XMessageEntity)) { - // 更新要提醒的数据 - setV2XMessageEntity(v2XMessageEntity) - show() - } else { - // 更新要提醒的数据 - setV2XMessageEntity(v2XMessageEntity) - } - } else { - close() - } - } - } - - - override fun show() { - TODO("Not yet implemented") - } - - override fun showWindow() { - TODO("Not yet implemented") - } - - override fun closeWindow() { - TODO("Not yet implemented") - } - - override fun showButton() { - TODO("Not yet implemented") - } - - override fun closeButton() { - TODO("Not yet implemented") - } - - override fun drawPOI() { - TODO("Not yet implemented") - } - - override fun clearPOI() { - TODO("Not yet implemented") - } - - -} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventWindow.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventWindow.kt deleted file mode 100644 index 15100946aa..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventWindow.kt +++ /dev/null @@ -1,71 +0,0 @@ -package com.mogo.module.v2x.scenario.scene.destination - -import android.content.Context -import android.util.AttributeSet -import android.view.LayoutInflater -import android.view.View -import android.widget.ImageView -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.V2XRoadEventEntity -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.scene.V2XBasWindow -import com.mogo.module.v2x.scenario.view.IV2XWindow -import java.util.* - -/** - * created by wujifei on 2020/12/25 11:45 - * describe:基于目的地预判的道路事件场景弹窗 - */ -class V2XPrejectedRoadEventWindow @JvmOverloads constructor( - context: Context = V2XServiceManager.getContext(), - attrs: AttributeSet? = null, - defStyleAttr: Int = 0) : V2XBasWindow(context, attrs, defStyleAttr), IV2XWindow { - private var rvPrejectedRoadEventList: RecyclerView? = null - private var btnCloseWindow: ImageView? = null - - // 列表展示 - private val mItemList: List = ArrayList() - private var mV2XRoadEventAdapter: V2XRoadEventAdapter? = null - - init { - initView(context) - } - - private fun initView(context: Context) { - // 填充布局 - LayoutInflater.from(context).inflate(R.layout.window_prejected_road_event_detail, this) - rvPrejectedRoadEventList = findViewById(R.id.rvPrejectedRoadEventList) as RecyclerView - btnCloseWindow = findViewById(R.id.btnCloseWindow) as ImageView - btnCloseWindow!!.setOnClickListener { close() } - mV2XRoadEventAdapter = V2XRoadEventAdapter(mItemList, this) - rvPrejectedRoadEventList!!.adapter = mV2XRoadEventAdapter - // 设置切换样式 - PagerSnapHelper().attachToRecyclerView(rvPrejectedRoadEventList) - // 配置列表朝向 - val layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) - rvPrejectedRoadEventList!!.layoutManager = layoutManager - } - - - override fun close() { - //移除窗体 - V2XServiceManager.getMogoTopViewManager().removeView(this) - } - - override fun getView(): View { - return this - } - - override fun setWindowStatusListener(listener: V2XWindowStatusListener) {} - - - override fun show(entity: V2XRoadEventEntity?) { - TODO("Not yet implemented") - } -} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt new file mode 100644 index 0000000000..e14165cb62 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteScenario.kt @@ -0,0 +1,98 @@ +package com.mogo.module.v2x.scenario.scene.destination + +import android.view.View +import android.view.ViewGroup +import com.mogo.module.common.entity.V2XMessageEntity +import com.mogo.module.common.entity.V2XRecommendRouteEntity +import com.mogo.module.v2x.R +import com.mogo.module.v2x.V2XServiceManager +import com.mogo.module.v2x.scenario.impl.AbsV2XScenario +import com.mogo.module.v2x.utils.V2XUtils +import com.mogo.service.windowview.IMogoTopViewStatusListener + +/** + * created by wujifei on 2020/12/29 17:57 + * describe:基于目的地预判的道路事件提醒、路线推荐 + */ +class V2XRecommendRouteScenario : AbsV2XScenario() { + + init { + v2XWindow = V2XRecommendRouteWindow() + } + + override fun init(v2XMessageEntity: V2XMessageEntity?) { + v2XMessageEntity?.content?.let { + if (v2XMessageEntity!!.isShowState) { + if (!isSameScenario(v2XMessageEntity)) { + // 更新要提醒的数据 + setV2XMessageEntity(v2XMessageEntity) + show() + } else { + // 更新要提醒的数据 + setV2XMessageEntity(v2XMessageEntity) + } + } else { + close() + } + } + } + + + override fun show() { + if (V2XServiceManager.getMoGoStatusManager().isMainPageOnResume) { + showWindow() + } + } + + override fun showWindow() { + v2XWindow?.let { + val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, + V2XUtils.getApp().resources.getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground).toInt()) + V2XServiceManager.getMogoTopViewManager().addView(it.view, layoutParams) + it.show(v2XMessageEntity.content) + + } + } + + override fun closeWindow() { + v2XWindow?.let { + it.close() + } + } + + override fun showButton() { + TODO("Not yet implemented") + } + + override fun closeButton() { + TODO("Not yet implemented") + } + + override fun drawPOI() { + TODO("Not yet implemented") + } + + override fun clearPOI() { + TODO("Not yet implemented") + } + + val mogoTopViewStatusListener: IMogoTopViewStatusListener = object : IMogoTopViewStatusListener { + override fun onViewAdded(view: View?) { + TODO("Not yet implemented") + } + + override fun onViewRemoved(view: View?) { + TODO("Not yet implemented") + } + + override fun beforeViewAddAnim(view: View?) { + TODO("Not yet implemented") + } + + override fun beforeViewRemoveAnim(view: View?) { + TODO("Not yet implemented") + } + } + + +} \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt new file mode 100644 index 0000000000..a921a2c168 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XRecommendRouteWindow.kt @@ -0,0 +1,87 @@ +package com.mogo.module.v2x.scenario.scene.destination + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +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.V2XMessageEntity +import com.mogo.module.common.entity.V2XRecommendRouteEntity +import com.mogo.module.v2x.R +import com.mogo.module.v2x.V2XServiceManager +import com.mogo.module.v2x.adapter.V2XRoadEventAdapter +import com.mogo.module.v2x.listener.V2XWindowStatusListener +import com.mogo.module.v2x.scenario.scene.V2XBasWindow +import com.mogo.module.v2x.scenario.view.IV2XWindow + +/** + * created by wujifei on 2020/12/25 11:45 + * describe:基于目的地预判的道路事件场景弹窗 + */ +class V2XRecommendRouteWindow @JvmOverloads constructor( + context: Context = V2XServiceManager.getContext(), + attrs: AttributeSet? = null, + defStyleAttr: Int = 0) : V2XBasWindow(context, attrs, defStyleAttr), IV2XWindow { + + private var rvRoadEventList: RecyclerView? = null + private var mV2XRoadEventAdapter: V2XRoadEventAdapter? = null + + // 列表展示 + private val mItemList = mutableListOf() + + init { + initView(context) + } + + private fun initView(context: Context) { + // 填充布局 + LayoutInflater.from(context).inflate(R.layout.window_fault_help, this) + rvRoadEventList = findViewById(R.id.rvRoadEventList); + mV2XRoadEventAdapter = V2XRoadEventAdapter(mItemList, this) + rvRoadEventList?.setAdapter(mV2XRoadEventAdapter) + // 设置切换样式 + PagerSnapHelper().attachToRecyclerView(rvRoadEventList) + // 配置列表朝向 + val layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false) + rvRoadEventList?.setLayoutManager(layoutManager) + rvRoadEventList?.addOnScrollListener(object : RecyclerView.OnScrollListener() { + override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { + super.onScrollStateChanged(recyclerView, newState) + if (recyclerView.childCount > 0) { + if (newState == RecyclerView.SCROLL_STATE_IDLE) { + // 用户处于交互的时候延后隐藏时间 + // countDownV2XEvent() + } + } + } + }) + } + + + override fun close() { + //移除窗体 + V2XServiceManager.getMogoTopViewManager().removeView(this) + } + + override fun getView(): View { + return this + } + + override fun setWindowStatusListener(listener: V2XWindowStatusListener) {} + + override fun show(entity: V2XRecommendRouteEntity?) { + entity.let { + // 清空数据 + mItemList.clear() + val v2XEventShowEntity = V2XEventShowEntity() + v2XEventShowEntity.v2XRecommendRouteEntity = entity + v2XEventShowEntity.viewType = V2XMessageEntity.V2XTypeEnum.ALERT_RECOMMEND_ROUTE + mItemList.add(v2XEventShowEntity) + // 刷新列表 + mV2XRoadEventAdapter?.notifyDataSetChanged() + } + } +} \ No newline at end of file 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 0c3d3b3cc8..f474f567a5 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 @@ -280,7 +280,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerTrafficSearch.setOnClickListener(v -> V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus()); mBtnTriggerPrejectedRoadEvent.setOnClickListener(view -> { - V2XServiceManager.getV2XRefreshModel().queryRoadData("XTCAA83540301871"); + V2XServiceManager.getV2XRefreshModel().queryRoadData("ZD802C1938L10797"); }); /* diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml new file mode 100644 index 0000000000..e6ffe54e9d --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_recommend_route.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + +