diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/UnmannedTaskBean.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/UnmannedTaskBean.kt
index 891208987a..f07a7ca796 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/UnmannedTaskBean.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/UnmannedTaskBean.kt
@@ -1,7 +1,5 @@
package com.mogo.och.taxi.bean
-import android.text.Spanned
-import androidx.core.text.HtmlCompat
import com.mogo.eagle.core.data.BaseData
/**
@@ -73,16 +71,6 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
var startSite: Site?, var endSite: Site?,
var order: OrderDetail?
) {
- companion object {
- @JvmStatic
- fun getCurrentTaskTotalAndDurationHtml(mileage: Float, duration: Int): Spanned {
- val strHtml =
- ("全程 " + " $mileage " + " 公里 "
- + ",总用时 " + " $duration " + " 分钟")
- return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
- }
- }
-
// servingStatus = 0 //暂停接单 = 1 //开始接单
//taskType = 1 //虚拟任务 = 2 //接驾任务 = 3 //送驾任务
//currentStatus 0:空闲 1:获取任务 2:开始任务 3:到达目的地
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt
index cb5d39a442..f0b9751e52 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskFragment.kt
@@ -187,7 +187,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
is TaskAndOrderUiState.UPDATEORDERMILEANDDUR -> {
taskOtherInfo.text =
- QueryCurrentTaskRespBean.Result.getCurrentTaskTotalAndDurationHtml(
+ TaskUtils.getCurrentTaskTotalAndDurationHtml(
taskAndOrderUiState.mileage,
taskAndOrderUiState.duration
)
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiNextTaskFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiNextTaskFragment.kt
index 7a4809e47d..40bec78b41 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiNextTaskFragment.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiNextTaskFragment.kt
@@ -1,7 +1,6 @@
package com.mogo.och.taxi.ui
import android.annotation.SuppressLint
-import android.app.Activity
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.os.Bundle
@@ -12,7 +11,6 @@ import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.OrderDetail
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
import com.mogo.och.taxi.constant.TaskTypeEnum
-import com.mogo.och.taxi.ui.base.TaxiFragment
import kotlinx.android.synthetic.main.task_fragment_current.endStationName
import kotlinx.android.synthetic.main.task_fragment_current.mCurrentTaskLayout
import kotlinx.android.synthetic.main.task_fragment_current.naviToEnd
@@ -29,10 +27,15 @@ import kotlinx.android.synthetic.main.task_fragment_current.taskTypeTv
* @date: 2023/7/24
*/
class TaxiNextTaskFragment : BaseFragment() {
- private val mData: MutableList = ArrayList()
+ companion object {
+ const val TAG = "TaxiNextTaskFragment"
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
+ fun newInstance(): TaxiNextTaskFragment {
+ val args = Bundle()
+ val fragment = TaxiNextTaskFragment()
+ fragment.arguments = args
+ return fragment
+ }
}
override fun getLayoutId(): Int {
@@ -40,32 +43,30 @@ class TaxiNextTaskFragment : BaseFragment() {
}
override fun getTagName(): String {
- return "TaxiNextTaskFragment"
+ return javaClass.simpleName
}
override fun initViews() {
- showNoOrderView()
+ showNoTaskView()
}
- fun updateOrderChanged(model: QueryCurrentTaskRespBean.Result?) {
+ fun onTaskDataChanged(model: QueryCurrentTaskRespBean.Result?) {
if (model?.order == null) {
- showNoOrderView()
+ showNoTaskView()
return
}
if (model.taskType == TaskTypeEnum.VirtualTask.code) {
val order = model.order
- updateOrderUI(order!!)
-
+ updateTaskUI(order!!)
} else {
- showNoOrderView()
+ showNoTaskView()
}
-
}
@SuppressLint("SetTextI18n")
- private fun updateOrderUI(order: OrderDetail) {
- showOrderView()
+ private fun updateTaskUI(order: OrderDetail) {
+ showTaskView()
taskOtherInfo.visibility = View.GONE
naviToStart.visibility = View.GONE
naviToEnd.visibility = View.GONE
@@ -77,7 +78,6 @@ class TaxiNextTaskFragment : BaseFragment() {
HtmlCompat.FROM_HTML_MODE_LEGACY
)
-
order.orderStartSite?.let {
startStationName.text = it.siteName
}
@@ -88,7 +88,7 @@ class TaxiNextTaskFragment : BaseFragment() {
taskTypeTv.text = resources.getString(R.string.task_order)
taskTypeTv.background = resources.getDrawable(R.drawable.task_order_type_btn_bg, null)
- updateOrderBottomBtn(
+ updateTaskContainerBottomBtn(
getString(R.string.waiting_server),
Color.parseColor("#4DFFFFFF"),
Color.parseColor("#4D1D5EF3"),
@@ -96,7 +96,7 @@ class TaxiNextTaskFragment : BaseFragment() {
)
}
- private fun updateOrderBottomBtn(
+ private fun updateTaskContainerBottomBtn(
txt: String?,
txtColorId: Int,
bgColorId: Int,
@@ -110,33 +110,13 @@ class TaxiNextTaskFragment : BaseFragment() {
taskClickBtn.isClickable = isClickable
}
- private fun showNoOrderView() {
+ private fun showNoTaskView() {
noTaskData.visibility = View.VISIBLE
mCurrentTaskLayout.visibility = View.GONE
}
- private fun showOrderView() {
+ private fun showTaskView() {
noTaskData.visibility = View.GONE
mCurrentTaskLayout.visibility = View.VISIBLE
}
-
- companion object {
-
- const val TAG = "TaxiNextTaskFragment"
-
- @SuppressLint("StaticFieldLeak")
- private var mTaxiFragment: TaxiFragment? = null
-
- @SuppressLint("StaticFieldLeak")
- private var mActivity: Activity? = null
- fun newInstance(
- activity: Activity?,
- ): TaxiNextTaskFragment {
- mActivity = activity
- val args = Bundle()
- val fragment = TaxiNextTaskFragment()
- fragment.arguments = args
- return fragment
- }
- }
}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt
index 053f6d8641..4e3d63ef1c 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskTabFragment.kt
@@ -1,12 +1,12 @@
package com.mogo.och.taxi.ui
-import android.annotation.SuppressLint
import android.graphics.Color
import android.graphics.Typeface
import android.os.Bundle
import android.util.TypedValue
import android.view.View
import android.widget.TextView
+import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
@@ -32,6 +32,8 @@ import me.jessyan.autosize.utils.AutoSizeUtils
* @desc: 司机端任务fragment 容器,展示了“进行中”和“待服务”的任务信息
* 任务:可以理解为对应的是一个自动驾驶任务
* 任务类型:演练任务 / 接驾任务 / 送驾任务
+ * DriveToNearestStationTask: 一种特殊任务,人工驾驶去最近的站点任务。每次 开启接单 后后端都会返回离当前最近的站点,车辆需要
+ * 开到此站点后才能进入无人化接单的整体流程
* 订单:是面向C端小程序的一个概念,用户下单后产生的是一个订单,后端会将一个订单分解成 接驾任务和送驾任务 并派发到
* 车端来执行
* 任务和订单的对应:1.如果是一个演练任务,是后端自动生成的,没有和C端订单挂钩
@@ -41,6 +43,10 @@ class TaxiTaskTabFragment : BaseFragment() {
companion object {
const val TAG = "TaxiTaskTabFragment"
+ const val TAB_POSITION_CURRENT = 0
+ const val TAB_POSITION_NEXT = 1
+ val mTabTitles = arrayOf("进行中", "待服务")
+
fun newInstance(): TaxiTaskTabFragment {
val args = Bundle()
val fragment = TaxiTaskTabFragment()
@@ -49,45 +55,43 @@ class TaxiTaskTabFragment : BaseFragment() {
}
}
- private val mTabTitles = arrayOf("进行中", "待服务")
private val mFragments: MutableList = ArrayList()
private var currentTaskFragment: TaxiCurrentTaskFragment? = null
private var nextTaskFragment: TaxiNextTaskFragment? = null
+
override fun getLayoutId(): Int {
return R.layout.taxi_server_orders_panel
}
override fun getTagName(): String {
- return "TaxiTaskTabFragment"
+ return this.javaClass.simpleName
}
override fun initViews() {
- initOrderTab()
+ initTaskTab()
}
- private fun initOrderTab() {
- for (i in mTabTitles.indices) {
+ private fun initTaskTab() {
+ for (position in mTabTitles.indices) {
val tab = module_och_taxi_tab.newTab()
tab.view.setBackgroundColor(Color.parseColor("#00000000"))
val tabView =
View.inflate(activity, R.layout.taxi_tab_item_custom, null) as TextView
- tabView.text = mTabTitles[i]
+ tabView.text = mTabTitles[position]
tabView.height = AutoSizeUtils.dp2px(context, 120f)
tab.customView = tabView
- if (0 == i) {
+ if (TAB_POSITION_CURRENT == position) {
module_och_taxi_tab.addTab(tab, true)
- changeTabLayoutTabUI(tab, true)
+ changeTabLayoutUI(tab, true)
currentTaskFragment = TaxiCurrentTaskFragment.newInstance(
parentFragment as TaxiFragment?
)
mFragments.add(currentTaskFragment!!)
- } else if (1 == i) {
+ } else if (TAB_POSITION_NEXT == position) {
module_och_taxi_tab.addTab(tab)
- changeTabLayoutTabUI(tab, false)
- nextTaskFragment = TaxiNextTaskFragment.newInstance(
- activity
- )
+ changeTabLayoutUI(tab, false)
+ nextTaskFragment = TaxiNextTaskFragment.newInstance()
mFragments.add(nextTaskFragment!!)
}
}
@@ -96,15 +100,16 @@ class TaxiTaskTabFragment : BaseFragment() {
module_och_taxi_tab.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {
module_och_taxi_view_pager.currentItem = tab.position
- changeTabLayoutTabUI(tab, true)
+ changeTabLayoutUI(tab, true)
}
override fun onTabUnselected(tab: TabLayout.Tab) {
- changeTabLayoutTabUI(tab, false)
+ changeTabLayoutUI(tab, false)
}
override fun onTabReselected(tab: TabLayout.Tab) {}
})
+
module_och_taxi_view_pager.addOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(
position: Int,
@@ -119,37 +124,40 @@ class TaxiTaskTabFragment : BaseFragment() {
override fun onPageScrollStateChanged(state: Int) {}
})
- module_och_taxi_view_pager.adapter = OrdersFragmentAdapter(
+
+ module_och_taxi_view_pager.adapter = TaskTabFragmentAdapter(
childFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
}
- @SuppressLint("UseCompatLoadingForDrawables")
- private fun changeTabLayoutTabUI(tab: TabLayout.Tab, isSelected: Boolean) {
+ private fun changeTabLayoutUI(tab: TabLayout.Tab, isSelected: Boolean) {
val textView = tab.customView!!.findViewById(R.id.tab_title) as TextView
if (isSelected) {
- textView.background = activity?.getDrawable(R.drawable.taxi_driver_tab_item_bg)
+ textView.background =
+ ContextCompat.getDrawable(requireContext(), R.drawable.taxi_driver_tab_item_bg)
textView.setTextSize(
TypedValue.COMPLEX_UNIT_PX,
AutoSizeUtils.dp2px(context, 40f).toFloat()
)
- d(SceneConstant.M_TAXI + TAG, "SelectTv = " + textView.text)
textView.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
textView.setTextColor(Color.parseColor("#FFFFFF"))
+
+ d(SceneConstant.M_TAXI + TAG, "SelectTv = " + textView.text)
} else {
textView.background = null
textView.setTextSize(
TypedValue.COMPLEX_UNIT_PX,
- AutoSizeUtils.dp2px(getContext(), 36f).toFloat()
+ AutoSizeUtils.dp2px(context, 36f).toFloat()
)
- d(SceneConstant.M_TAXI + TAG, "unSelectTv = " + textView.text)
textView.typeface = Typeface.defaultFromStyle(Typeface.NORMAL)
textView.setTextColor(Color.parseColor("#CCD4F5"))
+
+ d(SceneConstant.M_TAXI + TAG, "unSelectTv = " + textView.text)
}
}
- internal inner class OrdersFragmentAdapter(
+ internal inner class TaskTabFragmentAdapter(
fragmentManager: FragmentManager,
behavior: Int
) :
@@ -175,31 +183,31 @@ class TaxiTaskTabFragment : BaseFragment() {
}
}
- fun onNaviToEndAMap(isShow: Boolean) {
+ fun onNaviToEndStationByAMap(isShow: Boolean) {
if (null == currentTaskFragment) return
- currentTaskFragment!!.onNaviToEndAmap(isShow)
+ currentTaskFragment!!.onNaviToEndStationByAmap(isShow)
}
- fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) {
+ fun onCurrentTaskTripInfoChanged(meters: Long, timeInSecond: Long) {
if (null == currentTaskFragment) return
- currentTaskFragment!!.updateDistanceAndTime(meters, timeInSecond)
+ currentTaskFragment!!.updateCurrentTaskTripInfo(meters, timeInSecond)
}
- fun onOperationStatusChanged() {
+ fun onCarTakeOrderStatusChanged() {
if (null == currentTaskFragment) return
- currentTaskFragment!!.onOperationStatusChanged()
+ currentTaskFragment!!.onCarTakeOrderStatusChanged()
}
- fun updateOrderChanged(model: QueryCurrentTaskRespBean.Result?) {
+ fun onTaskDataChanged(result: QueryCurrentTaskRespBean.Result?) {
if (null == nextTaskFragment) return
- if (model != null && model.taskType == TaskTypeEnum.VirtualTask.code
- && model.order != null) {
+ if (result != null && result.taskType == TaskTypeEnum.VirtualTask.code
+ && result.order != null
+ ) {
VoiceNotice.showNotice("已为您提前接到下一订单,待完成当前任务后服务")
wait_order_num.visibility = View.VISIBLE
} else {
wait_order_num.visibility = View.GONE
}
-
- nextTaskFragment!!.updateOrderChanged(model)
+ nextTaskFragment!!.onTaskDataChanged(result)
}
}
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaskUtils.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaskUtils.kt
index 8b209c6749..e850610b71 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaskUtils.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaskUtils.kt
@@ -64,4 +64,11 @@ object TaskUtils {
}
return HtmlCompat.fromHtml(strHtml13, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
+
+ fun getCurrentTaskTotalAndDurationHtml(mileage: Float, duration: Int): Spanned {
+ val strHtml =
+ ("全程 " + " $mileage " + " 公里 "
+ + ",总用时 " + " $duration " + " 分钟")
+ return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
+ }
}
\ No newline at end of file