diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java index a990ab5095..b48cedd934 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java @@ -14,6 +14,7 @@ import androidx.fragment.app.Fragment; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.commons.network.Utils; import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationListener; @@ -146,7 +147,7 @@ public class V2XModuleProvider implements // obu数据转发初始化 V2XObuManager.getInstance().init(context); - V2XServiceManager.getV2XRefreshModel().queryRoadData(); + V2XServiceManager.getV2XRefreshModel().queryRoadData(Utils.getSn()); } private void initBiz(Context context) { 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 bc62b4992d..eab482be1b 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 @@ -672,10 +672,10 @@ public class V2XRefreshModel { } - public void queryRoadData() { + public void queryRoadData(String sn) { if (mV2XApiService != null) { Map map = new ParamsProvider.Builder(mContext).build(); - map.put("sn", Utils.getSn()); + map.put("sn", sn); mV2XApiService.queryRoadDataOfVehiclesRecommend(map) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.java deleted file mode 100644 index 30a85cd227..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mogo.module.v2x.scenario.scene.destination; - -import androidx.annotation.Nullable; - -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/24 15:45 - * describe:基于目的地预判的道路事件场景 - */ -public class V2XPrejectedRoadEventScenario extends AbsV2XScenario { - - @Override - public void init(@Nullable V2XMessageEntity v2XMessageEntity) { - - } - - @Override - public void show() { - - } - - @Override - public void showWindow() { - - } - - @Override - public void closeWindow() { - - } - - @Override - public void showButton() { - - } - - @Override - public void closeButton() { - - } - - @Override - public void drawPOI() { - - } - - @Override - public void clearPOI() { - - } -} 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 new file mode 100644 index 0000000000..d741864f2a --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventScenario.kt @@ -0,0 +1,64 @@ +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 new file mode 100644 index 0000000000..15100946aa --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/destination/V2XPrejectedRoadEventWindow.kt @@ -0,0 +1,71 @@ +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/test/V2XTestConsoleWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java index 9750889c69..0c3d3b3cc8 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 @@ -57,6 +57,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { private Button mBtnTriggerCallUserInfo; private Button mBtnTriggerEventUgc; private Button mBtnTriggerTrafficSearch; + private Button mBtnTriggerPrejectedRoadEvent; private Button nBtnTriggerVR; private Button btnTriggerRearVIPCarTip, @@ -117,6 +118,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerEventUgc = findViewById(R.id.btnTriggerEventUgc); mBtnTriggerCallUserInfo = findViewById(R.id.btnTriggerCallUserInfo); mBtnTriggerTrafficSearch = findViewById(R.id.btnTriggerTrafficSearch); + mBtnTriggerPrejectedRoadEvent = findViewById(R.id.btnTriggerPrejectedRoadEvent); nBtnTriggerVR = findViewById(R.id.btnTriggerVR); switch (showType) { @@ -277,6 +279,9 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerTrafficSearch.setOnClickListener(v -> V2XServiceManager.getIMogoTrafficUploadProvider().verifyCurrentTrafficStatus()); + mBtnTriggerPrejectedRoadEvent.setOnClickListener(view -> { + V2XServiceManager.getV2XRefreshModel().queryRoadData("XTCAA83540301871"); + }); /* *后方VIP车辆提示 diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_prejected_road_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/window_prejected_road_event_detail.xml new file mode 100644 index 0000000000..886e2c15a7 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/layout/window_prejected_road_event_detail.xml @@ -0,0 +1,33 @@ + + + + + + + + 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 a7876cce9d..34662993f3 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 @@ -209,6 +209,20 @@ android:textSize="@dimen/dp_22" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" /> + +