From 826f2fe19b105f1a35fd349f53c2ca90a46a42dd Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 10 Mar 2026 20:27:49 +0800 Subject: [PATCH] =?UTF-8?q?[8.4.0]=20[b4]=20[=E5=88=B0=E7=AB=99=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=8F=98=E6=9B=B4=E3=80=81=E8=87=AA=E8=BD=A6=E7=8A=B6?= =?UTF-8?q?=E6=80=81]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/data/bean/BusStationBean.kt | 2 +- .../ui/taskrunning/TaskRunningView.kt | 5 + .../layout/shuttle_unmanned_task_running.xml | 13 ++ .../presenter/PB4DrivingFullsPresenter.kt | 13 +- .../ui/linenew/PB4DrivingInfoFullSFragment.kt | 184 +++++++++++++++++- .../ui/map/autopilot/status/B4StatusView.kt | 21 +- .../weaknet/passenger/model/CommonModel.kt | 7 +- .../res/b4/drawable/b4_autopilot_state_0.xml | 6 + .../res/b4/drawable/b4_autopilot_state_2.xml | 6 + .../res/b4/drawable/b4_autopilot_state_7.xml | 6 + .../src/main/res/b4/layout/b4_autopilot.xml | 19 +- .../layout/b4_driving_info_full_fragment.xml | 81 ++++++-- .../b4/layout/shuttle_p_b4_hpmap_fragment.xml | 8 + .../src/main/res/b4/values-en/strings.xml | 6 + .../src/main/res/b4/values/colors.xml | 4 + .../src/main/res/b4/values/strings.xml | 6 + 16 files changed, 338 insertions(+), 49 deletions(-) create mode 100644 OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_0.xml create mode 100644 OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_2.xml create mode 100644 OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_7.xml diff --git a/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt b/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt index 6e97a39a84..556384ff19 100644 --- a/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt +++ b/OCH/common/data/src/main/java/com/mogo/och/data/bean/BusStationBean.kt @@ -30,7 +30,7 @@ open class BusStationBean { var lat: Double = 0.0 //高精坐标 @JvmField var drivingStatus: Int = 0 //行驶信息,0初始值;1已经过;2当前站;3未到站 - var isLeaving: Boolean = false // 为出发false 出发true + var isLeaving: Boolean = false // 未出发false 出发true var introduction: String? = null // 站点简介 var isPlayTts: Boolean = false var pointType: Int = 0 // 1:途径点 2:禁行点 3:站点 diff --git a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt index fd64efd0de..072ff04b05 100644 --- a/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt +++ b/OCH/shuttle/driver_unmanned/src/main/java/com/mogo/och/unmanned/ui/taskrunning/TaskRunningView.kt @@ -21,6 +21,7 @@ import com.mogo.och.unmanned.model.LineModel import com.mogo.och.unmanned.ui.bizswitch.SwtichBizModel import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_aciv_task_leave_station_slide_bg import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_actv_arriver_station +import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_actv_arriver_station_new import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_actv_complete_task import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_actv_running_task_last_station import kotlinx.android.synthetic.main.shuttle_unmanned_task_running.view.unmanned_actv_running_task_time @@ -88,6 +89,10 @@ class TaskRunningView : ConstraintLayout, TaskRunningModel.SwtichLineViewCallbac } } + unmanned_actv_arriver_station_new.setOnLongClickListener { + viewModel?.arriveStation() + true + } unmanned_actv_complete_task.onClick { CallerLogger.d(TAG, "启动自驾参数:${LineManager.initAutopilotControlParameters()}") val builder = CommonDialogStatus.Builder() diff --git a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_task_running.xml b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_task_running.xml index 9f771b6641..b8576dc166 100644 --- a/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_task_running.xml +++ b/OCH/shuttle/driver_unmanned/src/main/res/layout/shuttle_unmanned_task_running.xml @@ -125,5 +125,18 @@ app:pressed_enabled="false" /> + + \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/presenter/PB4DrivingFullsPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/presenter/PB4DrivingFullsPresenter.kt index c9eb41d7d8..ffaa4efa6b 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/presenter/PB4DrivingFullsPresenter.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/presenter/PB4DrivingFullsPresenter.kt @@ -55,9 +55,18 @@ class PB4DrivingFullsPresenter(view: PB4DrivingInfoFullSFragment?) : } - override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { + override fun updateStationsInfo(stations: MutableList, currentStationIndex: Int, isArrived: Boolean) { ThreadUtils.runOnUiThread { - mView?.updateStationsInfo(stations, i, isArrived) + mView?.updateStationsInfo(stations, currentStationIndex, isArrived) + } + } + + override fun updateLineInfo(lineName: String?) { + super.updateLineInfo(lineName) + lineName?.let { + ThreadUtils.runOnUiThread { + mView?.updateLineName(it) + } } } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt index 81d92bc299..11311923a1 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/b4/com/mogo/och/shuttle/weaknet/passenger/ui/linenew/PB4DrivingInfoFullSFragment.kt @@ -3,11 +3,34 @@ package com.mogo.och.shuttle.weaknet.passenger.ui.linenew import android.os.Bundle import android.view.View import com.mogo.commons.mvp.MvpFragment +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.StringUtils import com.mogo.och.common.module.utils.NumberFormatUtil +import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.passenger.R import com.mogo.och.shuttle.weaknet.passenger.presenter.PB4DrivingFullsPresenter +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.aciv_arrow_station_1 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.aciv_arrow_station_2 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.aciv_arrow_station_3 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.aciv_arrow_station_4 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.aciv_text_no_service +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actvLineName +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_des_first +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_des_second +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_head_pre_1 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_head_pre_2 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_head_pre_3 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_head_pre_4 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_pre_1 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_pre_2 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_pre_3 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.actv_station_pre_4 +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_empty_server +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.cl_line_info_station +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.end_station_name +import kotlinx.android.synthetic.main.b4_driving_info_full_fragment.group_station_empty +import kotlinx.android.synthetic.main.m2_arrive_view.view.ochtv_arrive_station_value import kotlin.math.ceil import kotlin.math.roundToInt @@ -28,6 +51,21 @@ class PB4DrivingInfoFullSFragment : } override fun initViews() { + actv_station_des_first.setVertrial(true) + val intArrayOf = intArrayOf( + ResourcesUtils.getColor(R.color.b4_CDFFC0), + ResourcesUtils.getColor(R.color.b4_9AFF98), + ) + actv_station_des_first.setmColorList(intArrayOf) + actv_station_des_second.setmColorList(intArrayOf) + + + aciv_text_no_service.setVertrial(true) + val intArrayOf2 = intArrayOf( + ResourcesUtils.getColor(R.color.b4_EDBE2B), + ResourcesUtils.getColor(R.color.b4_FF8300), + ) + aciv_text_no_service.setmColorList(intArrayOf2) } @@ -49,27 +87,161 @@ class PB4DrivingInfoFullSFragment : super.onDestroyView() } - fun showNoTaskView(haveTask: Boolean) { - + fun showNoTaskView(empty: Boolean) { + CallerLogger.d(TAG,"是否有任务:${empty}") + if(empty){ + cl_empty_server.visibility = View.VISIBLE + cl_line_info_station.visibility = View.GONE + group_station_empty.visibility = View.GONE + actvLineName.text = "" + }else{ + cl_empty_server.visibility = View.GONE + cl_line_info_station.visibility = View.VISIBLE + group_station_empty.visibility = View.VISIBLE + } } override fun createPresenter(): PB4DrivingFullsPresenter { return PB4DrivingFullsPresenter(this) } - fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { + fun updateStationsInfo(stations: MutableList, currentStationIndex: Int, isLeave: Boolean) { if (stations.isEmpty()) { - + showNoTaskView(true) } else { - if (isArrived && i != 0) { - } else { + when (currentStationIndex) { + 0 -> { + actv_station_des_first.text = StringUtils.getString(R.string.b4_station_start_desc) + actv_station_des_first.invalidate() + actv_station_des_second.visibility = View.GONE + } + stations.size-1 -> { + actv_station_des_first.text = StringUtils.getString(R.string.b4_station_end_desc) + actv_station_des_first.invalidate() + actv_station_des_second.visibility = View.GONE + } + else -> { + actv_station_des_first.text = StringUtils.getString(R.string.b4_station_middle_desc_first) + actv_station_des_first.invalidate() + actv_station_des_second.visibility = View.VISIBLE + actv_station_des_second.text = StringUtils.getString(R.string.b4_station_middle_desc_second) + actv_station_des_first.invalidate() + } + } + + if(stations.isNotEmpty()) { + val last = stations.last() + end_station_name.text = last.name + stations.removeLast() + } + + CallerLogger.d(TAG,"isLeave:${isLeave}---currentStationIndex:${currentStationIndex}") + showStationInfo(currentStationIndex,stations) + + if(currentStationIndex+4){ + if(currentStationIndex { - R.drawable.b4_status_basic + return R.drawable.b4_autopilot_state_0 } // 有订单,且美化状态和b2美化状态任意开着 CommonModel.inOrder && (FunctionBuildConfig.isDemoMode || FunctionBuildConfig.isB2DemoMode) -> { - R.drawable.b4_status_order_auto + R.drawable.b4_autopilot_state_2 } // 有订单,且美化状态和b2美化状态都关着 CommonModel.inOrder && !FunctionBuildConfig.isDemoMode && !FunctionBuildConfig.isB2DemoMode -> { - if (autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) R.drawable.b4_status_order_auto else R.drawable.b4_status_basic + if (autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) R.drawable.b4_autopilot_state_2 else R.drawable.b4_autopilot_state_0 } // 覆盖所有可能的情况 - else -> R.drawable.b4_status_basic + else -> R.drawable.b4_autopilot_state_0 } } diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt index 3d2b106e1d..8df33bb8e4 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt +++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt @@ -282,11 +282,10 @@ object CommonModel { val station = stations[i] if(station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED){ updateAutopilotControlParameters(result, i) - if (station.isLeaving && i + 1 < stations.size - ) { + if (station.isLeaving && i + 1 < stations.size) {// 已经离开了 isGoingToNextStation = true mCommonCallbackList.forEach { - it.value.updateStationsInfo(stations, i + 1, false) + it.value.updateStationsInfo(stations, i, true) } mNextStationIndex = i + 1 val startStation = mStations[i] @@ -302,7 +301,7 @@ object CommonModel { isGoingToNextStation = false Logger.d(TAG, "order = station= arrive") mCommonCallbackList.forEach { - it.value.updateStationsInfo(stations, i, true) + it.value.updateStationsInfo(stations, i, false) } dispatchInOrder() return diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_0.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_0.xml new file mode 100644 index 0000000000..1d6826edb2 --- /dev/null +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_0.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_2.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_2.xml new file mode 100644 index 0000000000..1cbcc0f567 --- /dev/null +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_2.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_7.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_7.xml new file mode 100644 index 0000000000..354825c680 --- /dev/null +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/drawable/b4_autopilot_state_7.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_autopilot.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_autopilot.xml index 8b5b69c2b3..4ec0beaa8d 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_autopilot.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_autopilot.xml @@ -2,8 +2,9 @@ - - - diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_driving_info_full_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_driving_info_full_fragment.xml index 692bd0fa00..bf7759faa3 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_driving_info_full_fragment.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/b4_driving_info_full_fragment.xml @@ -17,6 +17,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> + + + + + - + @@ -149,6 +171,7 @@ android:layout_height="@dimen/dp_22"/> @@ -190,6 +214,7 @@ android:layout_height="@dimen/dp_16"/> @@ -231,6 +257,7 @@ android:layout_height="@dimen/dp_16"/> @@ -279,15 +307,17 @@ android:layout_width="0dp" android:layout_height="0dp"> - + android:textStyle="bold" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> - @@ -361,21 +391,38 @@ app:layout_constraintStart_toEndOf="@+id/b4_aciv_door_right" app:layout_constraintTop_toTopOf="@+id/b4_aciv_door_right" /> - - + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + + + + diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/shuttle_p_b4_hpmap_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/shuttle_p_b4_hpmap_fragment.xml index f26378b9d8..174883ac88 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/shuttle_p_b4_hpmap_fragment.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/layout/shuttle_p_b4_hpmap_fragment.xml @@ -54,5 +54,13 @@ app:layout_constraintTop_toTopOf="parent" app:lightUser="passenger" /> + + \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values-en/strings.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values-en/strings.xml index a168e2dd21..bb9e5edc15 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values-en/strings.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values-en/strings.xml @@ -8,4 +8,10 @@ MOGO Autonomous Driving Minibus Ready to depart Current Station + + No Service + Please fasten your seat belt + Please take your belongings when alighting + Please fasten your seat belt when boarding + Take Your Belongings and Goodbye \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml index 8399a9297a..758e344554 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/colors.xml @@ -18,4 +18,8 @@ #7C7C7C #2EACFF #9A2EFF + #CDFFC0 + #9AFF98 + #EDBE2B + #FF8300 \ No newline at end of file diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/strings.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/strings.xml index 174c1eca0f..965a79d3b3 100644 --- a/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/strings.xml +++ b/OCH/shuttle/passenger_weaknet/src/main/res/b4/values/strings.xml @@ -8,4 +8,10 @@ MOGO自动驾驶小巴 即将启程 当前到站 + + 无服务 + 请系好安全带 + 下车时请拿好您的随身物品 + 上车后请系好安全带 + 请带好您的物品,下次再见 \ No newline at end of file