diff --git a/OCH/common/common/src/main/res/values/colors.xml b/OCH/common/common/src/main/res/values/colors.xml
index 298610c338..73e11fa666 100644
--- a/OCH/common/common/src/main/res/values/colors.xml
+++ b/OCH/common/common/src/main/res/values/colors.xml
@@ -8,6 +8,7 @@
#111533
#878890
#EF262C
+ #00000000
#4D000000
#99000000
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt
index a6beffd111..14e6e5826b 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2ADASPresenter.kt
@@ -10,7 +10,7 @@ import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
import com.mogo.och.shuttle.weaknet.passenger.constant.M2Const.Companion.M2_MAP_STATION_MAKER
import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
import com.mogo.och.shuttle.weaknet.passenger.model.PM2ADASModel
-import com.mogo.och.shuttle.weaknet.passenger.ui.PM2HPMapFragment
+import com.mogo.och.shuttle.weaknet.passenger.ui.map.PM2HPMapFragment
class PM2ADASPresenter(view: PM2HPMapFragment?) :
Presenter(view), ADASCallback, ICommonCallback {
@@ -52,7 +52,6 @@ class PM2ADASPresenter(view: PM2HPMapFragment?) :
}
override fun showNoTaskView(isTrue: Boolean) {
- super.showNoTaskView(isTrue)
ThreadUtils.runOnUiThread {
mView?.showNoTaskView(!isTrue)
}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt
index 1097204c50..d6f758659f 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/presenter/PM2DrivingPresenter.kt
@@ -1,12 +1,11 @@
package com.mogo.och.shuttle.weaknet.passenger.presenter
import androidx.lifecycle.LifecycleOwner
-import com.amap.api.maps.model.LatLng
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.shuttle.weaknet.passenger.model.PM2ADASModel
-import com.mogo.och.shuttle.weaknet.passenger.ui.PM2DrivingInfoFragment
+import com.mogo.och.shuttle.weaknet.passenger.ui.line.PM2DrivingInfoFragment
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
@@ -38,18 +37,7 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) :
}
override fun updateSpeed(speed: Int) {
-// CallerLogger.d(
-// SceneConstant.M_BUS_P + "speed = ",speed.toString()
-// )
- ThreadUtils.runOnUiThread {
- mView?.updateSpeed(speed)
- }
- }
- override fun updateLineInfo(lineName: String) {
- ThreadUtils.runOnUiThread {
- mView?.updateTaskName(lineName)
- }
}
override fun updateRemainMT(meters: Long, timeInSecond: Long) {
@@ -58,11 +46,11 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) :
}
}
- override fun showNoTaskView(isTrue: Boolean) {
+ override fun showNoTaskView(empty: Boolean) {
ThreadUtils.runOnUiThread {
- mView?.showNoTaskView(!isTrue)
+ mView?.showNoTaskView(empty)
}
- if (isTrue){
+ if (empty){
PM2ADASModel.INSTANCE.removeHDMapStations()
}
}
@@ -75,11 +63,5 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) :
}
}
- override fun updateAutoStatus(isOpen: Boolean) {
- BizLoopManager.runInMainThread {
- mView?.updateAutoStatus(isOpen)
- }
- }
-
}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt
index 40dcabd118..d436b6a9e6 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2BaseFragment.kt
@@ -12,6 +12,8 @@ import com.mogo.och.common.module.manager.transform.OchTransformDispatch
import com.mogo.och.shuttle.weaknet.passenger.R
import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2Presenter
import com.mogo.och.common.module.wigets.media.MediaPlayerFragment
+import com.mogo.och.shuttle.weaknet.passenger.ui.line.PM2DrivingInfoFragment
+import com.mogo.och.shuttle.weaknet.passenger.ui.map.PM2HPMapFragment
import kotlinx.android.synthetic.main.shuttle_p_m2_fragment.tv_shuttle_b2_p_version
import kotlinx.android.synthetic.main.shuttle_p_m2_fragment.video_fragment
@@ -23,22 +25,28 @@ import kotlinx.android.synthetic.main.shuttle_p_m2_fragment.video_fragment
class PM2BaseFragment :
MvpFragment() {
- private var drivingFragment : PM2DrivingInfoFragment? = null
- private var hdMapFragment : PM2HPMapFragment? = null
- private var mediaFragment : MediaPlayerFragment? = null
+ val TAG = PM2BaseFragment::class.java.simpleName
- private val ochTransform = object : OchTransformDispatch{
+ private var drivingFragment: PM2DrivingInfoFragment? = null
+ private var hdMapFragment: PM2HPMapFragment? = null
+ private var mediaFragment: MediaPlayerFragment? = null
+
+ // 视频直播流
+ private val ochTransform = object : OchTransformDispatch {
override fun setVideoView(target: View?) {
super.setVideoView(target)
- if(target!=null){
- BizLoopManager.runInMainThread{
+ if (target != null) {
+ BizLoopManager.runInMainThread {
target.id = R.id.video_show
- val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT)
- video_fragment.addView(target,params)
+ val params = FrameLayout.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT
+ )
+ video_fragment.addView(target, params)
MediaManager.setMediaPause()
}
- }else{
- BizLoopManager.runInMainThread{
+ } else {
+ BizLoopManager.runInMainThread {
findViewById(R.id.video_show)?.let {
video_fragment.removeView(it)
MediaManager.setMediaResume()
@@ -58,9 +66,8 @@ class PM2BaseFragment :
override fun initViews() {
tv_shuttle_b2_p_version.text = "版本:${AppUtils.getAppVersionName()}"
- //隐藏小地图
initFragment()
- OchTransform.addListener(TAG,ochTransform)
+ OchTransform.addListener(TAG, ochTransform)
}
override fun onDestroy() {
@@ -90,7 +97,4 @@ class PM2BaseFragment :
return PM2Presenter(this)
}
- companion object {
- public val TAG = PM2BaseFragment::class.java.simpleName
- }
}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt
deleted file mode 100644
index 115f60e834..0000000000
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2DrivingInfoFragment.kt
+++ /dev/null
@@ -1,185 +0,0 @@
-package com.mogo.och.shuttle.weaknet.passenger.ui
-
-import android.os.Bundle
-import androidx.core.content.ContextCompat
-import com.mogo.commons.mvp.MvpFragment
-import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
-import com.mogo.och.shuttle.weaknet.passenger.R
-import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2DrivingPresenter
-import com.mogo.och.common.module.utils.NumberFormatUtil
-import com.mogo.och.data.bean.BusStationBean
-import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.auto_tv
-import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.speed_tv
-import kotlin.math.ceil
-import kotlin.math.roundToInt
-
-/**
- * @author: wangmingjun
- * @date: 2022/4/12
- */
-class PM2DrivingInfoFragment :
- MvpFragment() {
-
-
-
-
- override fun getLayoutId(): Int {
- return R.layout.shuttle_p_m2_driving_info_fragment
- }
-
- override fun getTagName(): String {
- return TAG
- }
-
- override fun initViews() {
- speed_tv.setOnLongClickListener {
- context?.let { ToggleDebugView.toggleDebugView.toggle(it) }
- true
- }
-//
-// line_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color))
-// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_line_name_tv_color))
- }
-
- override fun initViews(savedInstanceState: Bundle?) {
- super.initViews(savedInstanceState)
-
- }
-
- override fun onResume() {
- super.onResume()
- }
-
- override fun onPause() {
- super.onPause()
- }
-
- override fun onDestroyView() {
- mPresenter?.onDestroy(this)
- super.onDestroyView()
- }
-
- fun updateSpeed(speed: Int) {
- speed_tv.text = speed.toString()
- }
-
- fun updateTaskName(name: String) {
- //line_name_tv.text = name
- }
-
- fun showNoTaskView(haveTask: Boolean) {
- if (!haveTask) {
- updateNoOrderUI()
- }
- }
-
- private fun updateNoOrderUI() {
- //line_name_tv.text = resources.getString(R.string.shuttle_p_m2_not_select_line_content)
- updateNoStationView()
-
- }
-
- private fun updateNoStationView() {
-// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color))
-// station_name_tv.text = resources.getString(R.string.shuttle_p_m2_empty_tv)
-// tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km)
-// tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute)
- noLineShow()
- }
-
- override fun createPresenter(): PM2DrivingPresenter {
- return PM2DrivingPresenter(this)
- }
-
- fun updateAutoStatus(isAutoPilot: Boolean) {
- context?.let {
- if (isAutoPilot) {
- auto_tv.setTextColor(ContextCompat.getColor(it, R.color.common_FFFFFF))
- auto_tv.background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_in)
- } else {
- auto_tv.setTextColor(ContextCompat.getColor(it, R.color.common_284F7E))
- auto_tv.background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_out)
- }
- }
-
- }
-
- fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) {
- if (stations.size == 0) return
-// if (0 <= i && i < stations.size) {
-// station_name_tv.setTextColor(ResourcesUtils.getColor(R.color.shuttle_p_m2_next_tv_color))
-// station_name_tv.text = stations[i].name
-// }
-// if (isArrived) {//到站
-// tv_distance.text = resources.getString(R.string.shuttle_p_m2_empty_remain_km)
-// tv_left_time.text = resources.getString(R.string.shuttle_p_m2_empty_remain_minute)
-// tv_next_station_title.text =
-// resources.getString(R.string.shuttle_p_m2_station_title_arrived_tv)
-// haveLineAndArrivedStation()
-// } else { //前往目的地中
-// tv_next_station_title.text =
-// resources.getString(R.string.shuttle_p_m2_next_station_title)
-// haveLineAndArriveingStation()
-// }
- }
-
- /**
- * 剩余里程和时间
- */
- fun updateRemainMT(meters: Long, timeInSecond: Long) { //米。秒
- var disUnit = "公里"
- var remainDis: String? = "0"
-
- if (meters > 0) {
- if (meters / 1000 < 1) {
- disUnit = "米"
- remainDis = meters.toFloat().roundToInt().toString()
- } else {
- disUnit = "公里"
- remainDis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
- }
- }
-
- val time = ceil(timeInSecond / 60f).toInt()
-
-// "$remainDis$disUnit".also { tv_distance.text = it }
-// "${time}分钟".also { tv_left_time.text = it }
- }
-
- fun noLineShow() {
- // 没有线路展示
-// group_not_select_line.visibility = View.VISIBLE
-// // 下一个站点
-// group_stationinfo.visibility = View.GONE
-// // 距离和剩余大概时间
-// clg_distance_left_time.visibility = View.GONE
-// // 到达站点
-// tv_arrived_notice.visibility = View.GONE
-//
-// iv_animal_list.visibility = View.GONE
- }
-
- // 有线路正在到站点
- fun haveLineAndArriveingStation() {
-// group_not_select_line.visibility = View.GONE
-// group_stationinfo.visibility = View.VISIBLE
-// clg_distance_left_time.visibility = View.VISIBLE
-// tv_arrived_notice.visibility = View.GONE
-// iv_animal_list.visibility = View.GONE
- }
-
- // 有线路到达站点
- private fun haveLineAndArrivedStation() {
-// group_not_select_line.visibility = View.GONE
-// group_stationinfo.visibility = View.VISIBLE
-// clg_distance_left_time.visibility = View.GONE
-// tv_arrived_notice.visibility = View.VISIBLE
-// iv_animal_list.visibility = View.VISIBLE
-// val animationDrawable = iv_animal_list.drawable as AnimationDrawable
-// animationDrawable.start()
- }
-
- companion object {
- private val TAG = PM2DrivingInfoFragment::class.java.simpleName
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/PM2DrivingInfoFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/PM2DrivingInfoFragment.kt
new file mode 100644
index 0000000000..5d9b332c1f
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/PM2DrivingInfoFragment.kt
@@ -0,0 +1,119 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line
+
+import android.os.Bundle
+import android.view.View
+import com.mogo.commons.mvp.MvpFragment
+import com.mogo.och.shuttle.weaknet.passenger.R
+import com.mogo.och.shuttle.weaknet.passenger.presenter.PM2DrivingPresenter
+import com.mogo.och.common.module.utils.NumberFormatUtil
+import com.mogo.och.data.bean.BusStationBean
+import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.arriveView
+import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.emptyView
+import kotlinx.android.synthetic.main.shuttle_p_m2_driving_info_fragment.lineView
+import kotlin.math.ceil
+import kotlin.math.roundToInt
+
+/**
+ * @author: wangmingjun
+ * @date: 2022/4/12
+ */
+class PM2DrivingInfoFragment :
+ MvpFragment() {
+
+
+
+
+ override fun getLayoutId(): Int {
+ return R.layout.shuttle_p_m2_driving_info_fragment
+ }
+
+ override fun getTagName(): String {
+ return TAG
+ }
+
+ override fun initViews() {
+
+ }
+
+ override fun initViews(savedInstanceState: Bundle?) {
+ super.initViews(savedInstanceState)
+
+ }
+
+ override fun onResume() {
+ super.onResume()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ }
+
+ override fun onDestroyView() {
+ mPresenter?.onDestroy(this)
+ super.onDestroyView()
+ }
+
+ fun showNoTaskView(haveTask: Boolean) {
+ if(haveTask){
+ emptyView.visibility = View.VISIBLE
+ arriveView.visibility = View.GONE
+ lineView.visibility = View.GONE
+ }else{
+ emptyView.visibility = View.GONE
+ arriveView.visibility = View.GONE
+ lineView.visibility = View.VISIBLE
+ }
+ }
+
+ override fun createPresenter(): PM2DrivingPresenter {
+ return PM2DrivingPresenter(this)
+ }
+
+ fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) {
+ if(stations.isEmpty()){
+ emptyView.visibility = View.VISIBLE
+ arriveView.visibility = View.GONE
+ lineView.visibility = View.GONE
+ }else{
+ if(isArrived&&i!=0){
+ emptyView.visibility = View.GONE
+ arriveView.visibility = View.VISIBLE
+ lineView.visibility = View.GONE
+ arriveView.setArrivedStation(stations.get(i))
+ }else{
+ emptyView.visibility = View.GONE
+ arriveView.visibility = View.GONE
+ lineView.visibility = View.VISIBLE
+ }
+ }
+
+ }
+
+ /**
+ * 剩余里程和时间
+ */
+ fun updateRemainMT(meters: Long, timeInSecond: Long) { //米。秒
+ var disUnit = "公里"
+ var remainDis: String? = "0"
+
+ if (meters > 0) {
+ if (meters / 1000 < 1) {
+ disUnit = "米"
+ remainDis = meters.toFloat().roundToInt().toString()
+ } else {
+ disUnit = "公里"
+ remainDis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
+ }
+ }
+
+ val time = ceil(timeInSecond / 60f).toInt()
+
+// "$remainDis$disUnit".also { tv_distance.text = it }
+// "${time}分钟".also { tv_left_time.text = it }
+ }
+
+
+ companion object {
+ private val TAG = PM2DrivingInfoFragment::class.java.simpleName
+ }
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt
new file mode 100644
index 0000000000..01b9df206e
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/arrive/ArrivedView.kt
@@ -0,0 +1,56 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.arrive
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.common.module.utils.ResourcesUtils
+import com.mogo.och.data.bean.BusStationBean
+import com.mogo.och.shuttle.weaknet.passenger.R
+import kotlinx.android.synthetic.main.m2_arrive_view.view.ochtv_arrive_station_value
+
+class ArrivedView : ConstraintLayout {
+
+ private val TAG = "EmptyView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+ private fun initView() {
+ LayoutInflater.from(context).inflate(R.layout.m2_arrive_view, this, true)
+
+ ochtv_arrive_station_value.setVertrial(true)
+ val intArrayOf = intArrayOf(
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
+ )
+ ochtv_arrive_station_value.setmColorList(intArrayOf)
+
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ }
+
+ fun setArrivedStation(busStationBean: BusStationBean) {
+ BizLoopManager.runInMainThread{
+ ochtv_arrive_station_value.text = busStationBean.name
+ }
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/AutopilotView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/AutopilotView.kt
new file mode 100644
index 0000000000..abbac7262d
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/AutopilotView.kt
@@ -0,0 +1,45 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.autopilot
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.data.map.MogoLocation
+import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
+import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
+import com.mogo.och.bridge.autopilot.location.OchLocationManager
+import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.shuttle.weaknet.passenger.R
+import kotlinx.android.synthetic.main.m2_speed.view.tv_speed
+import kotlin.math.abs
+
+class AutopilotView : ConstraintLayout {
+
+ private val TAG = "ItineraryView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+ private fun initView() {
+ LayoutInflater.from(context).inflate(R.layout.m2_autopilot, this, true)
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/light/M2TurnLightView.kt
similarity index 96%
rename from OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt
rename to OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/light/M2TurnLightView.kt
index f7e54eff2c..fc708bf80b 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2TurnLightView.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/light/M2TurnLightView.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.shuttle.weaknet.passenger.ui.widget
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.autopilot.light
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
@@ -16,11 +16,9 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.shuttle.weaknet.passenger.R
import com.mogo.och.common.module.manager.light.TurnLightManager
-import kotlinx.android.synthetic.main.shuttle_p_m2_turn_light_status.view.left_nor_image
import kotlinx.android.synthetic.main.shuttle_p_m2_turn_light_status.view.left_select_image
import kotlinx.android.synthetic.main.shuttle_p_m2_turn_light_status.view.right_nor_image
import kotlinx.android.synthetic.main.shuttle_p_m2_turn_light_status.view.right_select_image
-import kotlinx.android.synthetic.main.shuttle_p_m2_turn_light_status.view.turn_light_layout
/**
* @author: wangmingjun
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/speed/SpeedView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/speed/SpeedView.kt
new file mode 100644
index 0000000000..9fa9402efb
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/speed/SpeedView.kt
@@ -0,0 +1,64 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.autopilot.speed
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.eagle.core.data.map.MogoLocation
+import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
+import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
+import com.mogo.och.bridge.autopilot.location.OchLocationManager
+import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.shuttle.weaknet.passenger.R
+import kotlinx.android.synthetic.main.m2_speed.view.tv_speed
+import kotlin.math.abs
+
+class SpeedView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
+
+ private val TAG = "ItineraryView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+ private fun initView() {
+ LayoutInflater.from(context).inflate(R.layout.m2_speed, this, true)
+
+ tv_speed.setOnLongClickListener {
+ context?.let { ToggleDebugView.toggleDebugView.toggle(it) }
+ true
+ }
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ if(isVisible){
+ OchLocationManager.addGCJ02Listener(TAG, 3, this)
+ }else{
+ OchLocationManager.removeGCJ02Listener(TAG)
+ }
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
+ mogoLocation?.let {
+ BizLoopManager.runInMainThread {
+ val speedKM = (abs(it.gnssSpeed) * 3.6f).toInt()
+ tv_speed.text = speedKM.toString()
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/status/StatusView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/status/StatusView.kt
new file mode 100644
index 0000000000..d298340199
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/autopilot/status/StatusView.kt
@@ -0,0 +1,58 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.autopilot.status
+
+import android.content.Context
+import android.util.AttributeSet
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.core.content.ContextCompat
+import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.shuttle.weaknet.passenger.R
+import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
+import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
+
+class StatusView : AppCompatTextView, ICommonCallback {
+
+ private val TAG = "ItineraryView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ private fun initView() {
+
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ if(isVisible){
+ CommonModel.setRouteLineInfoCallback(TAG,this)
+ }else{
+ CommonModel.setRouteLineInfoCallback(TAG,null)
+ }
+ }
+
+ override fun updateAutoStatus(isAutoPilot: Boolean) {
+ BizLoopManager.runInMainThread {
+ context?.let {
+ if (isAutoPilot) {
+ setTextColor(ContextCompat.getColor(it, R.color.common_FFFFFF))
+ background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_in)
+ } else {
+ setTextColor(ContextCompat.getColor(it, R.color.common_284F7E))
+ background = ContextCompat.getDrawable(it, R.drawable.m2_autopilot_status_out)
+ }
+ }
+ }
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/empty/EmptyView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/empty/EmptyView.kt
new file mode 100644
index 0000000000..216ca6611b
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/empty/EmptyView.kt
@@ -0,0 +1,47 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.empty
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.och.common.module.utils.ResourcesUtils
+import com.mogo.och.shuttle.weaknet.passenger.R
+import kotlinx.android.synthetic.main.m2_empty_view.view.tv_title
+
+class EmptyView : ConstraintLayout {
+
+ private val TAG = "EmptyView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+ private fun initView() {
+ LayoutInflater.from(context).inflate(R.layout.m2_empty_view, this, true)
+
+ tv_title.setVertrial(true)
+ val intArrayOf = intArrayOf(
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
+ )
+ tv_title.setmColorList(intArrayOf)
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt
new file mode 100644
index 0000000000..d5056cdc90
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineView.kt
@@ -0,0 +1,78 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.findViewTreeViewModelStoreOwner
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
+import com.mogo.och.data.bean.BusStationBean
+import com.mogo.och.shuttle.weaknet.passenger.R
+import com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo.item.StationAdapter
+import kotlinx.android.synthetic.main.m2_line_view.view.ll_station_container
+
+class LineView : ConstraintLayout, LineViewModel.LineViewCallback {
+
+ private val TAG = "EmptyView"
+
+ constructor(context: Context) : super(context)
+
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+ private lateinit var mAdapter: StationAdapter
+
+ private lateinit var linearLayoutManager: LinearLayoutManager
+
+ private var viewModel:LineViewModel?=null
+
+
+
+ private fun initView() {
+ LayoutInflater.from(context).inflate(R.layout.m2_line_view, this, true)
+
+ linearLayoutManager = LinearLayoutManager(context)
+ ll_station_container.setLayoutManager(linearLayoutManager)
+ mAdapter = StationAdapter()
+// ll_station_container.addItemDecoration(
+// SpacesItemDecoration(
+// AutoSizeUtils.dp2px(context,20f)
+// )
+// )
+ ll_station_container.setAdapter(mAdapter)
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ viewModel = findViewTreeViewModelStoreOwner()?.let {
+ ViewModelProvider(it).get(LineViewModel::class.java)
+ }
+ viewModel?.setLineCallback(this)
+ }
+
+ override fun onVisibilityAggregated(isVisible: Boolean) {
+ super.onVisibilityAggregated(isVisible)
+ }
+
+ init {
+ try {
+ initView()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ }
+
+ override fun updateLineStations(stations: MutableList?) {
+ CallerLogger.d(TAG,"展示站点:${stations}")
+ mAdapter.submitList(stations)
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt
new file mode 100644
index 0000000000..db5c8369c0
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/LineViewModel.kt
@@ -0,0 +1,47 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo
+
+import androidx.lifecycle.ViewModel
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
+import com.mogo.och.common.module.manager.loop.BizLoopManager
+import com.mogo.och.data.bean.BusStationBean
+import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
+import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
+import io.reactivex.disposables.Disposable
+
+/**
+ * @author XuXinChao
+ * @description BadCase录包管理页面
+ * @since: 2022/12/15
+ */
+class LineViewModel : ViewModel(), ICommonCallback {
+
+ private val TAG = M_BUS+LineViewModel::class.java.simpleName
+
+ private var viewCallback:LineViewCallback?=null
+
+ private var endTaskDisposable:Disposable?=null
+
+
+ override fun onCleared() {
+ d(TAG,"onCleared")
+ CommonModel.setRouteLineInfoCallback(TAG,null)
+ }
+
+ fun setLineCallback(viewCallback:LineViewCallback){
+ this.viewCallback = viewCallback
+ CommonModel.setRouteLineInfoCallback(TAG,this)
+ }
+
+ override fun updateLineStations(stations: MutableList?) {
+ BizLoopManager.runInMainThread{
+ this.viewCallback?.updateLineStations(stations)
+ }
+ }
+
+ interface LineViewCallback{
+ fun updateLineStations(stations: MutableList?)
+ }
+
+}
+
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt
new file mode 100644
index 0000000000..b8b98736d1
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationAdapter.kt
@@ -0,0 +1,171 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo.item
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.ListAdapter
+import com.mogo.och.data.bean.BusStationBean
+import com.mogo.och.shuttle.weaknet.passenger.R
+
+class StationAdapter : ListAdapter(MessageDiffCallback()) {
+
+ var currentIndex = 0
+ var isLeaving = false
+ var showPassOmit = false
+ var showFuluterOmit = false
+
+ override fun submitList(list: MutableList?) {
+ val newDataList = mutableListOf()
+ list?.let {
+ it.forEachIndexed { index, busStationBean ->
+ if (busStationBean.drivingStatus == 2) {
+ currentIndex = index
+ isLeaving = busStationBean.isLeaving
+ return@forEachIndexed
+ }
+ }
+ if (isLeaving) {
+ currentIndex += 1
+ }
+ if ((it.size) <= 7) {
+ showPassOmit = false
+ showFuluterOmit = false
+ newDataList.addAll(it.toList())
+ } else {
+ if(currentIndex-1<3){
+ showPassOmit = false // 全展示
+ }else{
+ showPassOmit = true // 展示省略
+ }
+
+ if(it.size-(currentIndex+1)-1<3) {// 全展示
+ showFuluterOmit = false
+ }else{// 展示省略
+ showFuluterOmit = true
+ }
+
+ if(showPassOmit&&showFuluterOmit){// 都有
+ newDataList.add(it.first())
+ newDataList.add(StationBeanOmit(currentIndex-1-1))
+ newDataList.addAll(list.slice(currentIndex-1 .. currentIndex+1))
+ newDataList.add(StationBeanOmit(list.size-currentIndex-1))
+ newDataList.add(list.last())
+ }else{
+ if(showFuluterOmit||showPassOmit){
+ if(showFuluterOmit){// 只展示下面的省略号
+ newDataList.addAll(list.subList(0,5))
+ newDataList.add(StationBeanOmit(list.size-5-1))
+ newDataList.add(list.last())
+ }
+ if(showPassOmit){// 只展示上面的手机号
+ newDataList.add(list.first())
+ newDataList.add(StationBeanOmit(list.size-5-1))
+ newDataList.addAll(list.slice(list.size-5 until list.size))
+ } else {
+
+ }
+ }else{
+ newDataList.addAll(it.toList())
+ }
+
+ }
+ }
+ }
+
+ newDataList.forEachIndexed { index, busStationBean ->
+ if (busStationBean.drivingStatus == 2) {
+ currentIndex = index
+ isLeaving = busStationBean.isLeaving
+ if(isLeaving){
+ currentIndex+=1
+ }
+ }
+ }
+
+ super.submitList(newDataList)
+ }
+
+ override fun onBindViewHolder(holder: StationViewHolder, position: Int) {
+ getItem(position)?.let {
+ holder.bind(it)
+ }
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StationViewHolder {
+ val inflater = LayoutInflater.from(parent.context)
+ return when (viewType) {
+ StationViewHolder.NormalStationStart -> NormalStationStartViewHolder(
+ inflater.inflate(R.layout.m2_station_normal_start_view, parent, false)
+ )
+ StationViewHolder.NormalStationEnd -> NormalStationEndViewHolder(
+ inflater.inflate(R.layout.m2_station_normal_end_view, parent, false)
+ )
+ StationViewHolder.NormalStationFuture -> NormalStationFutureViewHolder(
+ inflater.inflate(R.layout.m2_station_normal_future_view, parent, false)
+ )
+ StationViewHolder.NormalStationPass -> NormalStationPassViewHolder(
+ inflater.inflate(R.layout.m2_station_normal_pass_view, parent, false)
+ )
+
+ StationViewHolder.CurrentStationStart -> CurrentStationStartViewHolder(
+ inflater.inflate(R.layout.m2_station_current_start_view, parent, false)
+ )
+ StationViewHolder.CurrentStationEnd -> CurrentStationEndViewHolder(
+ inflater.inflate(R.layout.m2_station_current_end_view, parent, false)
+ )
+ StationViewHolder.CurrentStation -> CurrentStationViewHolder(
+ inflater.inflate(R.layout.m2_station_current_view, parent, false)
+ )
+
+ StationViewHolder.OmitStationPass -> OmitPassViewHolder(
+ inflater.inflate(R.layout.m2_station_omit_view_pass, parent,false)
+ )
+ StationViewHolder.OmitStationFuture -> OmitFutureViewHolder(
+ inflater.inflate(R.layout.m2_station_omit_view_future, parent,false)
+ )
+
+ else -> throw IllegalArgumentException("Invalid view type")
+ }
+ }
+
+ override fun getItemViewType(position: Int): Int {
+ if (getItem(position) is StationBeanOmit) {
+ return if (position < currentIndex) {
+ StationViewHolder.OmitStationPass
+ } else {
+ StationViewHolder.OmitStationFuture
+ }
+ }
+ when (position) {
+ 0 -> {
+ return if (currentIndex == position) {
+ StationViewHolder.CurrentStationStart
+ } else {
+ StationViewHolder.NormalStationStart
+ }
+ }
+
+ itemCount - 1 -> {
+ return if (currentIndex == position) {
+ StationViewHolder.CurrentStationEnd
+ } else {
+ StationViewHolder.NormalStationEnd
+ }
+ }
+
+ else -> {
+ return if (currentIndex == position) {
+ StationViewHolder.CurrentStation
+ } else if (currentIndex < position) {
+ StationViewHolder.NormalStationFuture
+ } else {
+ StationViewHolder.NormalStationPass
+ }
+ }
+ }
+ }
+
+ override fun onViewRecycled(holder: StationViewHolder) {
+ super.onViewRecycled(holder)
+ holder.viewRecycled(holder)
+ }
+}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationDiffCallback.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationDiffCallback.kt
new file mode 100644
index 0000000000..966c1f5a01
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationDiffCallback.kt
@@ -0,0 +1,17 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo.item
+
+import androidx.recyclerview.widget.DiffUtil
+import com.mogo.och.data.bean.BusStationBean
+
+class MessageDiffCallback: DiffUtil.ItemCallback() {
+
+ override fun areContentsTheSame(oldItem: BusStationBean, newItem: BusStationBean): Boolean {
+ return oldItem == newItem
+ }
+
+ override fun areItemsTheSame(oldItem: BusStationBean, newItem: BusStationBean): Boolean {
+ return oldItem.siteId == newItem.siteId
+ }
+}
+
+data class StationBeanOmit(var coutOmit:Int):BusStationBean()
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt
new file mode 100644
index 0000000000..55b7d6f6f0
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/line/lineinfo/item/StationViewHolder.kt
@@ -0,0 +1,111 @@
+package com.mogo.och.shuttle.weaknet.passenger.ui.line.lineinfo.item
+
+import android.view.View
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.och.common.module.utils.ResourcesUtils
+import com.mogo.och.common.module.wigets.OCHGradientTextView
+import com.mogo.och.data.bean.BusStationBean
+import com.mogo.och.shuttle.weaknet.passenger.R
+import java.text.SimpleDateFormat
+import java.util.Locale
+
+
+abstract class StationViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+ abstract fun bind(item: BusStationBean)
+ open fun viewRecycled(holder: StationViewHolder){}
+ private val sampleDateFormat = SimpleDateFormat("HH:mm", Locale.CHINA)
+ protected val TAG = javaClass.simpleName
+
+ companion object{
+ val CurrentStationStart = 0
+ val CurrentStationEnd = 1
+ val CurrentStation = 2
+
+ val NormalStationStart = 3
+ var NormalStationEnd = 4
+ val NormalStationPass = 5
+ val NormalStationFuture = 6
+
+ val OmitStationPass = 7
+ val OmitStationFuture = 8
+ }
+}
+
+class NormalStationStartViewHolder(binding: View) : StationViewHolder(binding) {
+ private var startStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_start)
+ override fun bind(item: BusStationBean) {
+ startStaionName.text = item.name
+ }
+}
+class NormalStationEndViewHolder(binding: View) : StationViewHolder(binding) {
+ private var endStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_end)
+ override fun bind(item: BusStationBean) {
+ endStaionName.text = item.name
+ }
+}
+class NormalStationPassViewHolder(binding: View) : StationViewHolder(binding) {
+ private var passStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_pass)
+ override fun bind(item: BusStationBean) {
+ passStaionName.text = item.name
+ }
+}
+class NormalStationFutureViewHolder(binding: View) : StationViewHolder(binding) {
+ private var futureStaionName: AppCompatTextView = binding.findViewById(R.id.actv_normal_station_future)
+ override fun bind(item: BusStationBean) {
+ futureStaionName.text = item.name
+ }
+}
+
+
+class CurrentStationViewHolder(val binding: View) : StationViewHolder(binding) {
+ private var currentStaionName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_name)
+ override fun bind(item: BusStationBean) {
+ currentStaionName.text = item.name
+ currentStaionName.setVertrial(true)
+ val intArrayOf = intArrayOf(
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
+ )
+ currentStaionName.setmColorList(intArrayOf)
+ }
+}
+class CurrentStationStartViewHolder(binding: View) : StationViewHolder(binding) {
+ private var currentStaionStartName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_start_name)
+ override fun bind(item: BusStationBean) {
+ currentStaionStartName.text = item.name
+ val intArrayOf = intArrayOf(
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
+ )
+ currentStaionStartName.setmColorList(intArrayOf)
+ }
+}
+class CurrentStationEndViewHolder(binding: View) : StationViewHolder(binding) {
+ private var currentStaionEndName: OCHGradientTextView = binding.findViewById(R.id.och_current_station_end_name)
+ override fun bind(item: BusStationBean) {
+ currentStaionEndName.text = item.name
+ val intArrayOf = intArrayOf(
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_43cefe),
+ ResourcesUtils.getColor(R.color.shuttle_p_m2_color_1466fb),
+ )
+ currentStaionEndName.setmColorList(intArrayOf)
+ }
+}
+
+class OmitPassViewHolder(val binding: View) : StationViewHolder(binding) {
+ private var omitCout: AppCompatTextView = binding.findViewById(R.id.actv_pass_omit_cout)
+ override fun bind(item: BusStationBean) {
+ if(item is StationBeanOmit){
+ omitCout.text = "${item.coutOmit}站"
+ }
+ }
+}
+class OmitFutureViewHolder(binding: View) : StationViewHolder(binding) {
+ private var omitCout: AppCompatTextView = binding.findViewById(R.id.actv_future_omit_count)
+ override fun bind(item: BusStationBean) {
+ if(item is StationBeanOmit){
+ omitCout.text = "${item.coutOmit}站"
+ }
+ }
+}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/map/PM2HPMapFragment.kt
similarity index 99%
rename from OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt
rename to OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/map/PM2HPMapFragment.kt
index cb1abc4e0f..ad3c2fa90c 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/PM2HPMapFragment.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/map/PM2HPMapFragment.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.shuttle.weaknet.passenger.ui
+package com.mogo.och.shuttle.weaknet.passenger.ui.map
import android.graphics.BitmapFactory
import android.os.Bundle
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2StatusBarView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/statusbar/M2StatusBarView.kt
similarity index 71%
rename from OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2StatusBarView.kt
rename to OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/statusbar/M2StatusBarView.kt
index f723e2b065..2ddd3bc7c1 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2StatusBarView.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/statusbar/M2StatusBarView.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.shuttle.weaknet.passenger.ui.widget
+package com.mogo.och.shuttle.weaknet.passenger.ui.statusbar
import android.annotation.*
import android.content.Context
@@ -9,18 +9,20 @@ import androidx.constraintlayout.widget.ConstraintLayout
import chassis.ChassisStatesOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisStatesListener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisStatesListenerManager
-import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
-import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
-import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.eagle.core.utilcode.kotlin.*
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
+import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.bluetooth.BleManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.shuttle.weaknet.passenger.R
+import com.mogo.och.shuttle.weaknet.passenger.callback.ICommonCallback
+import com.mogo.och.shuttle.weaknet.passenger.model.CommonModel
import kotlinx.android.synthetic.main.shuttle_p_m2_view_status_bar.view.iv_logon
import kotlinx.android.synthetic.main.shuttle_p_m2_view_status_bar.view.tv_power_cos
+import kotlinx.android.synthetic.main.shuttle_p_m2_view_status_bar.view.tv_status_line_name
import kotlinx.coroutines.*
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -31,7 +33,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils
class M2StatusBarView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : ConstraintLayout(context, attrs),
- IMoGoChassisStatesListener {
+ IMoGoChassisStatesListener, ICommonCallback {
companion object {
const val TAG = "M2StatusBarView"
@@ -52,6 +54,8 @@ class M2StatusBarView @JvmOverloads constructor(
override fun onAttachedToWindow() {
super.onAttachedToWindow()
+ CallerLogger.d(TAG,"onAttachedToWindow-------${this}")
+
post {
val params: ViewGroup.LayoutParams = getLayoutParams()
params.height = AutoSizeUtils.dp2px(context,100f)
@@ -60,6 +64,7 @@ class M2StatusBarView @JvmOverloads constructor(
//电量
CallerChassisStatesListenerManager.addListener(TAG,this)
+ CommonModel.setRouteLineInfoCallback(TAG,this)
tv_power_cos?.also {
it.text = "?"
@@ -74,14 +79,35 @@ class M2StatusBarView @JvmOverloads constructor(
BleManager.sendData2Wx("1889480", "00,${System.currentTimeMillis()}")
}
}
+ tv_status_line_name.onClick {
+ updateLineInfo("线路名称")
+ }
+ }
+
+ override fun updateLineInfo(lineName: String?) {
+ post {
+ CallerLogger.d(TAG,"updateLineInfo2-------${lineName}----${this}")
+ if(lineName==null){
+ tv_status_line_name.setText(R.string.m2_line_name_detaile)
+ }else{
+ tv_status_line_name.text = lineName
+ }
+ }
+ }
+
+ override fun showNoTaskView(isTrue: Boolean) {
+ BizLoopManager.runInMainThread {
+ CallerLogger.d(TAG,"updateLineInfo1-------${isTrue}----${this}")
+ if(isTrue) {
+ tv_status_line_name.setText(R.string.m2_line_name_detaile)
+ }
+ }
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
- CallerHmiViewControlListenerManager.removeListener(TAG)
- CallerSkinModeListenerManager.removeListener(TAG)
CallerChassisStatesListenerManager.removeListener(TAG)
- CallerDevaToolsManager.hideStatusBar()
+ CommonModel.setRouteLineInfoCallback(TAG,null)
}
@SuppressLint("SetTextI18n")
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2BlueToothView.kt b/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2BlueToothView.kt
deleted file mode 100644
index ac7550b0d4..0000000000
--- a/OCH/shuttle/passenger_weaknet/src/main/java/b2/com/mogo/och/shuttle/weaknet/passenger/ui/widget/M2BlueToothView.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.mogo.och.shuttle.weaknet.passenger.ui.widget
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener
-import com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView
-import com.mogo.eagle.core.utilcode.util.ThreadUtils
-import com.mogo.och.shuttle.weaknet.passenger.R
-import kotlinx.android.synthetic.main.shuttle_p_m2_view_blue_tooth.view.blueView
-
-/**
- * 魔戒蓝牙控件
- * 放置于StatusBar右侧位置
- */
-class M2BlueToothView @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : BlueToothView(context, attrs, defStyleAttr),IMoGoDevaToolsListener {
-
- init {
- LayoutInflater.from(context).inflate(R.layout.shuttle_p_m2_view_blue_tooth, this, true)
- }
-
- override fun mofangStatus(status: Boolean) {
- ThreadUtils.runOnUiThread {
- if (status) {
- blueView.setImageResource(R.drawable.shuttle_p_m2_blue_tooth_close)
- } else {
- blueView.setImageResource(R.drawable.shuttle_p_m2_blue_tooth_open)
- }
- }
- }
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
index f3bc73e05e..b4ed489ec3 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
@@ -9,17 +9,15 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
-import com.mogo.och.bridge.ui.autopilot.AutopilotState
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
-import com.mogo.och.common.module.biz.scanner.ScannerManager
import com.mogo.och.common.module.voice.OutOffVoice
import com.mogo.och.common.module.wigets.media.MediaPlayerActivity
import com.mogo.och.shuttle.weaknet.passenger.model.TicketModel
import com.mogo.och.shuttle.weaknet.passenger.ui.widget.BusPStatusBarView
import com.mogo.och.shuttle.weaknet.passenger.ui.BusPassengerRouteFragment
import com.mogo.och.shuttle.weaknet.passenger.ui.PM2BaseFragment
-import com.mogo.och.shuttle.weaknet.passenger.ui.widget.M2StatusBarView
+import com.mogo.och.shuttle.weaknet.passenger.ui.statusbar.M2StatusBarView
/**
* 网约车-Bus-乘客端
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 e047c1d0f4..f55b299f16 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
@@ -257,7 +257,7 @@ object CommonModel {
}
}
- d(TAG, "queryDriverSiteByCoordinate = update")
+ d(TAG, "queryDriverSiteByCoordinate = update ${result}")
routesResult = result
if (result.sites != null) {
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png
new file mode 100644
index 0000000000..4d5bc6790d
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left.png
new file mode 100644
index 0000000000..358373e79c
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left_arrow.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left_arrow.png
new file mode 100644
index 0000000000..9a53541b6d
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_left_arrow.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right.png
new file mode 100644
index 0000000000..faf04e9245
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right_arrow.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right_arrow.png
new file mode 100644
index 0000000000..9e3bb7c71c
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_arrive_door_right_arrow.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_current_stattion_point.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_current_stattion_point.png
new file mode 100644
index 0000000000..8ff9c17e45
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_current_stattion_point.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_omit.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_omit.png
new file mode 100644
index 0000000000..10dd0aac94
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_omit.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_point.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_point.png
new file mode 100644
index 0000000000..9170c1b11c
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_end_point.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_omit.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_omit.png
new file mode 100644
index 0000000000..b60281977c
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_omit.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_point.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_point.png
new file mode 100644
index 0000000000..62a02b464a
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_start_point.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_end_omit_count_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_end_omit_count_bg.png
new file mode 100644
index 0000000000..7db954ab81
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_end_omit_count_bg.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_future_point.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_future_point.png
new file mode 100644
index 0000000000..fcc7fd65e5
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_future_point.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_omit_count_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_omit_count_bg.png
new file mode 100644
index 0000000000..7db954ab81
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_omit_count_bg.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_pass_point.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_pass_point.png
new file mode 100644
index 0000000000..132aac7c9b
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/b2_station_pass_point.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_empty_go_statart.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_empty_go_statart.png
new file mode 100644
index 0000000000..405de1bb25
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_empty_go_statart.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_arrive_station_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_arrive_station_bg.png
new file mode 100644
index 0000000000..2ce4f6b84e
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_arrive_station_bg.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_empty_bg.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_empty_bg.png
new file mode 100644
index 0000000000..fbd884a360
Binary files /dev/null and b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/m2_top_empty_bg.png differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_close.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_close.png
deleted file mode 100644
index 0c292d2cf3..0000000000
Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_close.png and /dev/null differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_open.png b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_open.png
deleted file mode 100644
index cccf9e10fa..0000000000
Binary files a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable-nodpi/shuttle_p_m2_blue_tooth_open.png and /dev/null differ
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_arrive_title_bg.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_arrive_title_bg.xml
new file mode 100644
index 0000000000..bfd05b17a1
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_arrive_title_bg.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_current_bg.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_current_bg.xml
new file mode 100644
index 0000000000..3b67c9ce6d
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_current_bg.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_bottom.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_bottom.xml
new file mode 100644
index 0000000000..1e7f02eab5
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_bottom.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_top.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_top.xml
new file mode 100644
index 0000000000..1964c79163
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_future_top.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_bottom.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_bottom.xml
new file mode 100644
index 0000000000..f4cb474011
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_bottom.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_top.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_top.xml
new file mode 100644
index 0000000000..ebb90d0dea
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/drawable/b2_station_line_rounded_pass_top.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml
new file mode 100644
index 0000000000..d8d214d04f
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_arrive_view.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_autopilot.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_autopilot.xml
new file mode 100644
index 0000000000..ac7fa74f8f
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_autopilot.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_empty_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_empty_view.xml
new file mode 100644
index 0000000000..0e5eaec687
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_empty_view.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml
new file mode 100644
index 0000000000..b1a14204db
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_line_view.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_speed.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_speed.xml
new file mode 100644
index 0000000000..faf36bf7be
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_speed.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_end_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_end_view.xml
new file mode 100644
index 0000000000..11db0e34f7
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_end_view.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml
new file mode 100644
index 0000000000..509027636f
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_start_view.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml
new file mode 100644
index 0000000000..d57c2778c9
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_current_view.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml
new file mode 100644
index 0000000000..8068a83515
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_end_view.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_future_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_future_view.xml
new file mode 100644
index 0000000000..9e3d4c6d52
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_future_view.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_pass_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_pass_view.xml
new file mode 100644
index 0000000000..54e1aab3e4
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_pass_view.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_start_view.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_start_view.xml
new file mode 100644
index 0000000000..46afc5e77f
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_normal_start_view.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_future.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_future.xml
new file mode 100644
index 0000000000..12a574d025
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_future.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml
new file mode 100644
index 0000000000..e5a972d76e
--- /dev/null
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/m2_station_omit_view_pass.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml
index aecf221857..b9e1bf48a7 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_driving_info_fragment.xml
@@ -3,73 +3,42 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/m2_top_bg"
- android:paddingTop="@dimen/dp_100"
android:layout_width="match_parent"
tools:layout_height="@dimen/dp_630"
android:layout_height="match_parent">
-
-
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginTop="@dimen/dp_100"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/dp_530"/>
-
+
+
+
-
-
-
-
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_blue_tooth.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_blue_tooth.xml
deleted file mode 100644
index 61448bf16d..0000000000
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_blue_tooth.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_status_bar.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_status_bar.xml
index 8822503d3e..8b4635775a 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_status_bar.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/layout/shuttle_p_m2_view_status_bar.xml
@@ -20,7 +20,7 @@
app:layout_constraintStart_toStartOf="parent" />
#99AFC9E7
#6617417B
+ #516582
+ #95B1D6
+ #1F82FB
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/b2/values/strings.xml b/OCH/shuttle/passenger_weaknet/src/main/res/b2/values/strings.xml
index 4fb6e16bc4..7d6e6f57cc 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/b2/values/strings.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/b2/values/strings.xml
@@ -14,4 +14,7 @@
MOGO BUS
AUTO
+ MOGO自动驾驶小巴
+ 即将启程
+ 当前到站
\ No newline at end of file