diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt
index 79761fa9ed..7d1d909059 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.kt
@@ -636,7 +636,8 @@ object TaxiModel {
mUntruthTask = null
if (isArriveEndSite) {
cleanStation()
- cancelAutopilot()
+ //2020.8.23 到站后不再调用取消自驾. 原因是取消自驾,D档位会溜车
+// cancelAutopilot()
}
}
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java
index f4c9c07e9f..a86a8f2edd 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/TaxiOrderCancelDialog.java
@@ -45,7 +45,7 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
private CommitReasonListener mCommitListener = null;
- protected TaxiOrderCancelDialog(Context context, int orderStatus,CommitReasonListener commitListener) {
+ public TaxiOrderCancelDialog(Context context, int orderStatus,CommitReasonListener commitListener) {
super(context,R.style.OrderCancelDialog);
this.mOrderStatus = orderStatus;
contextWeakReference = new WeakReference<>(context);
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 ea1ce280b3..cb5d39a442 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
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.ui
+package com.mogo.och.taxi.ui.task
import android.annotation.SuppressLint
import android.graphics.Color
@@ -7,7 +7,6 @@ import android.os.Build
import android.os.Bundle
import android.view.View
import androidx.annotation.RequiresApi
-import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
@@ -16,15 +15,17 @@ import com.mogo.commons.mvp.BaseFragment
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02
-import com.mogo.eagle.core.function.main.MainMoGoApplication
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
+import com.mogo.eagle.core.utilcode.util.DateTimeUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.common.module.map.ICommonNaviChangedCallback
+import com.mogo.och.common.module.utils.DateTimeUtil
+import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.common.module.wigets.OCHCommitDialog
import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.OrderDetail
@@ -37,16 +38,15 @@ import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_END_MAP_MAKER
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TAXI_START_MAP_MAKER
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_ORDER
import com.mogo.och.taxi.model.TaxiModel
+import com.mogo.och.taxi.ui.TaxiOrderCancelDialog
import com.mogo.och.taxi.ui.base.TaxiFragment
-import com.mogo.och.taxi.ui.task.TaxiCurrentTaskViewModel
-import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState
+import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState
import com.mogo.och.taxi.ui.unmanned.UnmannedIntent
import com.mogo.och.taxi.utils.MapMakerManager
-import com.mogo.och.taxi.utils.TaskUtils
import kotlinx.android.synthetic.main.task_fragment_current.cancelOrder
import kotlinx.android.synthetic.main.task_fragment_current.endPoint
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.mBeingOrderLayout
import kotlinx.android.synthetic.main.task_fragment_current.naviToEnd
import kotlinx.android.synthetic.main.task_fragment_current.naviToStart
import kotlinx.android.synthetic.main.task_fragment_current.noTaskData
@@ -59,6 +59,9 @@ import kotlinx.android.synthetic.main.task_fragment_current.taskStatus
import kotlinx.android.synthetic.main.task_fragment_current.taskTypeTv
import kotlinx.android.synthetic.main.taxi_no_data_common_view.noOrderDataTv
import kotlinx.coroutines.flow.map
+import java.util.Calendar
+import kotlin.math.ceil
+import kotlin.math.roundToInt
/**
* @author: wangmingjun
@@ -91,7 +94,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
override fun getTagName(): String {
- return this.javaClass.simpleName
+ return "TaxiCurrentTaskFragment"
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -112,7 +115,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
/**
* 是否有正在进行的订单,进行UI显示
*
- * @param hasCurrentTask
+ * @param being
*/
private fun initContainerView(hasCurrentTask: Boolean) {
d(
@@ -122,11 +125,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
try {
if (hasCurrentTask) {
noTaskData.visibility = View.GONE
- mCurrentTaskLayout.visibility = View.VISIBLE
+ mBeingOrderLayout.visibility = View.VISIBLE
} else {
noTaskData.visibility = View.VISIBLE
noOrderDataTv.text = "暂无进行中订单"
- mCurrentTaskLayout.visibility = View.GONE
+ mBeingOrderLayout.visibility = View.GONE
}
} catch (e: NullPointerException) { //可能会出现订单信息已经轮询回来,但进行中页面控件还未初始化完成的情况
TaxiModel.clearCurrentOCHOrder()
@@ -154,17 +157,17 @@ class TaxiCurrentTaskFragment : BaseFragment(),
//监听返回的数据状态
lifecycleScope.launchWhenStarted {
- mViewModel.uiStateFlow.map { it.taskWithOrderUIState }.collect { taskAndOrderUiState ->
+ mViewModel.uiStateFlow.map { it.taskAndOrderUiState }.collect { taskAndOrderUiState ->
d(TAG, "uiStateFlow-initViewModelObserver: $taskAndOrderUiState")
when (taskAndOrderUiState) {
- is TaskWithOrderUIState.Init -> {
+ is TaskAndOrderUiState.INIT -> {
}
- is TaskWithOrderUIState.TaskWithOrder -> {
- mDriveToNearestStationTask = taskAndOrderUiState.driveToNearestStationTask
- mCurrentTaskWithOrder = taskAndOrderUiState.taskWithOrder
+ is TaskAndOrderUiState.TASKANDORDER -> {
+ mDriveToNearestStationTask = taskAndOrderUiState.untruthTask
+ mCurrentTaskWithOrder = taskAndOrderUiState.taskAndOrder
- if ((taskAndOrderUiState.driveToNearestStationTask == null
+ if ((taskAndOrderUiState.untruthTask == null
&& mCurrentTaskWithOrder != null
&& mCurrentTaskWithOrder!!.endSite == null)
|| mCurrentTaskWithOrder == null
@@ -174,15 +177,15 @@ class TaxiCurrentTaskFragment : BaseFragment(),
return@collect
}
- if (taskAndOrderUiState.driveToNearestStationTask != null) {
- updateViewByDriveToNearestStationTask(taskAndOrderUiState.driveToNearestStationTask)
+ if (taskAndOrderUiState.untruthTask != null) {
+ updateDriveToNearestStationTaskView(taskAndOrderUiState.untruthTask)
} else {
- updateNextTaskFragment(taskAndOrderUiState.taskWithOrder)
- updateViewByCurrentTaskWithOrder(taskAndOrderUiState.taskWithOrder)
+ updateNextTaskFragment(taskAndOrderUiState.taskAndOrder)
+ updateCurrentTaskAndOrderStatusChanged(taskAndOrderUiState.taskAndOrder)
}
}
- is TaskWithOrderUIState.UpdateTaskTripInfo -> {
+ is TaskAndOrderUiState.UPDATEORDERMILEANDDUR -> {
taskOtherInfo.text =
QueryCurrentTaskRespBean.Result.getCurrentTaskTotalAndDurationHtml(
taskAndOrderUiState.mileage,
@@ -194,10 +197,10 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
- private fun updateViewByDriveToNearestStationTask(driveToNearestStationTask: StartServiceRespBean.Result?) {
+ private fun updateDriveToNearestStationTaskView(driveToNearestStationTask: StartServiceRespBean.Result?) {
if (driveToNearestStationTask == null) return
initContainerView(true)
- // DriverToNearestStationTask 任务更新
+ // DriverToNearestStationTask 更新
taskStatus.visibility = View.VISIBLE
taskTypeTv.visibility = View.GONE
cancelOrder.visibility = View.GONE
@@ -240,8 +243,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
- fun onCarTakeOrderStatusChanged() {
- mViewModel.sendUiIntent(UnmannedIntent.StartOrPauseTakeOrder)
+ fun onOperationStatusChanged() {
+ mViewModel.sendUiIntent(UnmannedIntent.StartOrPauseReceivingOrder)
}
private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) {
@@ -268,10 +271,10 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
/**
- * 更新当前任务和订单信息
+ * 任务和订单信息
*/
@SuppressLint("SetTextI18n", "UseCompatLoadingForDrawables")
- fun updateViewByCurrentTaskWithOrder(taskAndOrder: QueryCurrentTaskRespBean.Result?) {
+ fun updateCurrentTaskAndOrderStatusChanged(taskAndOrder: QueryCurrentTaskRespBean.Result?) {
if (taskAndOrder == null) return
if ((taskAndOrder.endSite == null || taskAndOrder.currentStatus == TaskStatusEnum.CompleteTask.code)
&& taskAndOrder.order == null
@@ -289,39 +292,15 @@ class TaxiCurrentTaskFragment : BaseFragment(),
* 当前任务是接驾任务,显示订单状态+运营单 订单显示在进行中, 任务不再显示
*/
val taskType = taskAndOrder.taskType // 任务类型
- val order = taskAndOrder.order // 订单信息
- val startSite = taskAndOrder.startSite // 起点
- val endSite = taskAndOrder.endSite // 终点
- val currentStatus = taskAndOrder.currentStatus // 任务的状态 0:空闲 1:获取任务 2:开始任务 3:到达目的地
+ val order = taskAndOrder.order // 订单
+ val startSite = taskAndOrder.startSite //进行的任务
+ val endSite = taskAndOrder.endSite //进行的任务
+ val currentStatus = taskAndOrder.currentStatus // 任务的状态
+
+ updateUIShowStatus(taskType, currentStatus, order)
when (taskType) {
- TaskTypeEnum.None.code -> {
- if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
- handleOrderView(order)
- }
- }
- TaskTypeEnum.VirtualTask.code -> { //演练任务
- cancelOrder.visibility = View.GONE
- orderPhoneAndNum.visibility = View.GONE
- taskClickBtn.visibility = View.GONE
-
- naviToStart.visibility = View.GONE
- taskTypeTv.visibility = View.VISIBLE
- naviToEnd.visibility =
- if (currentStatus >= TaskStatusEnum.StartTask.code) View.VISIBLE else View.GONE
- taskOtherInfo.visibility =
- if (currentStatus == TaskStatusEnum.GetTask.code) View.GONE else View.VISIBLE
- }
-
- TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 接驾任务 或 送驾任务
- order.also {
- handleOrderView(it)
- }
- }
- }
-
- when (taskType) {
TaskTypeEnum.VirtualTask.code -> {// 演练任务
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
updateOrderUI(order)
@@ -350,7 +329,6 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
- updateMapMarkers()
updateRemainDistanceAndTime(false)
}
@@ -413,18 +391,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
} else {
d(
M_TAXI + TAG,
- "CurrentTaskWithOrder == " + GsonUtil.jsonFromObject(mCurrentTaskWithOrder)
+ "CurrentTaskAndOrder == " + GsonUtil.jsonFromObject(mCurrentTaskWithOrder)
)
}
}
private fun updateOrderUI(order: OrderDetail) {
taskTypeTv.text = resources.getString(R.string.task_order)
- taskTypeTv.background =
- ContextCompat.getDrawable(
- MainMoGoApplication.getApp().applicationContext,
- R.drawable.task_order_type_btn_bg
- )
+ taskTypeTv.background = resources.getDrawable(R.drawable.task_order_type_btn_bg, null)
orderPhoneAndNum.text = HtmlCompat.fromHtml(
" " + order.bookingUserPhone + "" +
" | " +
@@ -437,25 +411,24 @@ class TaxiCurrentTaskFragment : BaseFragment(),
when (order.orderStatus) {
TaxiOrderStatusEnum.None.code -> { //无
initContainerView(false)
- removeAllMapMarker()
}
TaxiOrderStatusEnum.ArriveAtEnd.code -> { //到达目的地
taskStatus.text = resources.getString(R.string.task_start_end_site)
updateStartAndEndStationPointByStatus(true)
- updateTaskContainerBottomBtn(
+ updateOrderBottomBtn(
getString(R.string.module_och_taxi_order_server_end),
Color.parseColor("#FFFFFF"),
Color.parseColor("#FF1D5EF3"),
true
)
- hideNaviBtns()
+ hideNavi()
}
TaxiOrderStatusEnum.OnTheWayToEnd.code -> { //送驾中
taskStatus.text = resources.getString(R.string.task_start_end_site)
updateStartAndEndStationPointByStatus(true)
- updateTaskContainerBottomBtn(
+ updateOrderBottomBtn(
getString(R.string.module_och_taxi_order_close),
Color.parseColor("#FFFFFF"),
Color.parseColor("#FF1D5EF3"),
@@ -464,10 +437,10 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
TaxiOrderStatusEnum.UserArriveAtStart.code, TaxiOrderStatusEnum.ArriveAtStart.code -> {
- //乘客到达上车点, 验证成功 ; 到达乘客上车点
- taskStatus.text = resources.getString(R.string.arrived_start_site)
+ //乘客到达上车点,验证成功 ; 到达乘客上车点
updateStartAndEndStationPointByStatus(false)
- updateTaskContainerBottomBtn(
+ taskStatus.text = resources.getString(R.string.arrived_start_site)
+ updateOrderBottomBtn(
if (order.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.code)
getString(R.string.module_och_taxi_order_server_start)
else getString(R.string.module_och_taxi_order_server_start_wait_check),
@@ -475,14 +448,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
Color.parseColor("#FF1D5EF3"),
true
)
- hideNaviBtns()
- taskOtherInfo.text = TaskUtils.getWaitTimeHtml()
+ updateOtherInfo()
+ hideNavi()
}
TaxiOrderStatusEnum.OnTheWayToStart.code -> { //前往上车地点
taskStatus.text = resources.getString(R.string.task_start_start_site)
updateStartAndEndStationPointByStatus(false)
- updateTaskContainerBottomBtn(
+ updateOrderBottomBtn(
getString(R.string.module_och_taxi_order_server_start),
Color.parseColor("#4DFFFFFF"),
Color.parseColor("#4D1D5EF3"),
@@ -492,6 +465,60 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
+ private fun updateOtherInfo() {
+ val currentCale = DateTimeUtils.getCurrentDateTime()
+ val currentDay =
+ DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd)
+
+ currentCale.add(Calendar.MINUTE, 10)
+ val strHtml13: String = if (currentDay == DateTimeUtil.formatCalendarToString(
+ currentCale,
+ DateTimeUtil.yyyy_MM_dd
+ )
+ ) {
+ ("免费等待至 "
+ + "" + DateTimeUtil.formatCalendarToString(
+ currentCale,
+ DateTimeUtil.HH_mm
+ ) + "")
+ } else {
+ ("免费等待至"
+ + "" + DateTimeUtil.formatCalendarToString(
+ currentCale,
+ DateTimeUtil.MM_dd_HH_mm
+ ) + "")
+ }
+ taskOtherInfo.text = HtmlCompat.fromHtml(strHtml13, HtmlCompat.FROM_HTML_MODE_LEGACY)
+ }
+
+ private fun updateUIShowStatus(taskType: Int, currentStatus: Int, order: OrderDetail?) {
+ when (taskType) {
+ TaskTypeEnum.None.code -> {
+ if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
+ handleOrderView(order)
+ }
+ }
+
+ TaskTypeEnum.VirtualTask.code -> { //演练任务
+ cancelOrder.visibility = View.GONE
+ orderPhoneAndNum.visibility = View.GONE
+ taskClickBtn.visibility = View.GONE
+// currentStatus 0:空闲 1:获取任务 2:开始任务 3:到达目的地
+ naviToStart.visibility = View.GONE
+ taskTypeTv.visibility = View.VISIBLE
+ naviToEnd.visibility =
+ if (currentStatus >= TaskStatusEnum.StartTask.code) View.VISIBLE else View.GONE
+ taskOtherInfo.visibility =
+ if (currentStatus == TaskStatusEnum.GetTask.code) View.GONE else View.VISIBLE
+ }
+
+ TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 运营单(接驾任务、送驾任务)
+ if (order == null) return
+ handleOrderView(order)
+ }
+ }
+ }
+
private fun handleOrderView(order: OrderDetail?) {
if (order == null) return
cancelOrder.visibility = View.VISIBLE
@@ -512,12 +539,13 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
- private fun hideNaviBtns() {
+ private fun hideNavi() {
naviToStart.visibility = View.GONE
naviToEnd.visibility = View.GONE
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
mTaxiFragment?.showAmapNaviToStationFragment(false)
mTaxiFragment?.showRoutingToStationFragment(false)
+ requireParentFragment()
}
private fun startNaviToStation(isVoicePlay: Boolean, stationLat: Double, stationLng: Double) {
@@ -537,18 +565,40 @@ class TaxiCurrentTaskFragment : BaseFragment(),
/**
* 剩余里程和剩余时间
- * @param meters 米
+ * @param meters m
* @param timeInSecond 秒
*/
- fun updateCurrentTaskTripInfo(meters: Long, timeInSecond: Long) {
+ fun updateDistanceAndTime(meters: Long, timeInSecond: Long) {
+// CallerLogger.INSTANCE.d(M_TAXI + TAG,"meters = "+meters+"timeInSecond ="+timeInSecond);
if (mCurrentTaskWithOrder == null) return
if (mCurrentTaskWithOrder!!.endSite == null && mDriveToNearestStationTask == null) return
- taskOtherInfo.text = TaskUtils.getCurrentTaskTripHtml(meters, timeInSecond)
+
+ var dis = "0"
+ var disUnit = "公里"
+ if (meters > 0) {
+ if (meters / 1000 < 1) {
+ disUnit = "米"
+ dis = meters.toFloat().roundToInt().toString()
+ } else {
+ disUnit = "公里"
+ dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
+ }
+ }
+ val min = ceil(timeInSecond.toDouble() / 60f).toInt()
+ val strHtml2 =
+ ("里程 " + "" + dis + "" + " " + disUnit + ""
+ + ",剩余 " + "" + min + "" + " 分钟")
+
+ taskOtherInfo.text = HtmlCompat.fromHtml(strHtml2, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
+// private fun speekVoice200mTipsOnce() {
+// showNotice(resources.getString(R.string.module_och_taxi_order_arrive_end_200m_tip))
+// }
+
override fun onDestroyView() {
- AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
super.onDestroyView()
+ AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
}
private fun startOrEndService() {
@@ -624,7 +674,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
@RequiresApi(Build.VERSION_CODES.N)
override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) {
- updateCurrentTaskTripInfo(meters.toLong(), timeInSecond)
+ updateDistanceAndTime(meters.toLong(), timeInSecond)
}
override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) {
@@ -657,7 +707,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}, 3000)
}
- fun onNaviToEndStationByAmap(isShow: Boolean) {
+ fun onNaviToEndAmap(isShow: Boolean) {
if (mCurrentTaskWithOrder == null) return
mTaxiFragment?.showAmapNaviToStationFragment(
@@ -692,7 +742,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
MapMakerManager.removeAllMapMarkerByOwner(TYPE_MARKER_TAXI_ORDER)
}
- private fun updateTaskContainerBottomBtn(
+ private fun updateOrderBottomBtn(
txt: String?,
txtColorId: Int,
bgColorId: Int,
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt
index f21feac46b..c3425953e8 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt
@@ -118,11 +118,11 @@ class TaxiCurrentTaskViewModel : BaseViewModel(){
* 更新接单状态
*/
private fun updateCarStatus() {
- if (!LoginStatusManager.isLogin()) {
+ if (!isLogin()) {
TaxiModel.loginService!!.queryLoginStatusByNet()
return
}
- if (TaxtServingStatusManager.isOpeningOrderStatus()){//接单状态下,去结束
+ if (isOpeningOrderStatus()){//接单状态下,去结束
CarServiceManager.endService(mContext,
object : OchCommonServiceCallback {
override fun onSuccess(data: BaseData?) {
@@ -397,7 +397,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel(){
VoiceNotice.showNotice("乘客已经取消")
mCurrentTaskAndOrder = null
updateNoTaskAndOrderUi()
- TaxiModel.cancelAutopilot()
+ //2020.8.23 到站后不再调用取消自驾. 原因是取消自驾,D档位会溜车
+// TaxiModel.cancelAutopilot()
return
}
if (data.data.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.code){//到站
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 cc1817202d..7a4809e47d 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
@@ -56,6 +56,7 @@ class TaxiNextTaskFragment : BaseFragment() {
if (model.taskType == TaskTypeEnum.VirtualTask.code) {
val order = model.order
updateOrderUI(order!!)
+
} else {
showNoOrderView()
}
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 c0af97f509..053f6d8641 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
@@ -15,11 +15,15 @@ import com.google.android.material.tabs.TabLayout
import com.mogo.commons.mvp.BaseFragment
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
+import com.mogo.och.taxi.constant.TaskTypeEnum
import com.mogo.och.taxi.ui.base.TaxiFragment
+import com.mogo.och.taxi.ui.task.TaxiCurrentTaskFragment
import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_tab
import kotlinx.android.synthetic.main.taxi_server_orders_panel.module_och_taxi_view_pager
+import kotlinx.android.synthetic.main.taxi_server_orders_panel.wait_order_num
import me.jessyan.autosize.utils.AutoSizeUtils
/**
@@ -28,8 +32,6 @@ import me.jessyan.autosize.utils.AutoSizeUtils
* @desc: 司机端任务fragment 容器,展示了“进行中”和“待服务”的任务信息
* 任务:可以理解为对应的是一个自动驾驶任务
* 任务类型:演练任务 / 接驾任务 / 送驾任务
- * DriveToNearestStationTask: 一种特殊任务,人工驾驶去最近的站点任务。每次 开启接单 后后端都会返回离当前最近的站点,车辆需要
- * 开到此站点后才能进入无人化接单的整体流程
* 订单:是面向C端小程序的一个概念,用户下单后产生的是一个订单,后端会将一个订单分解成 接驾任务和送驾任务 并派发到
* 车端来执行
* 任务和订单的对应:1.如果是一个演练任务,是后端自动生成的,没有和C端订单挂钩
@@ -39,10 +41,6 @@ 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()
@@ -51,42 +49,42 @@ 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 this.javaClass.simpleName
+ return "TaxiTaskTabFragment"
}
override fun initViews() {
- initTaskTab()
+ initOrderTab()
}
- private fun initTaskTab() {
- for (position in mTabTitles.indices) {
+ private fun initOrderTab() {
+ for (i 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[position]
+ tabView.text = mTabTitles[i]
tabView.height = AutoSizeUtils.dp2px(context, 120f)
tab.customView = tabView
- if (TAB_POSITION_CURRENT == position) {
+ if (0 == i) {
module_och_taxi_tab.addTab(tab, true)
- changeTabLayoutUI(tab, true)
+ changeTabLayoutTabUI(tab, true)
currentTaskFragment = TaxiCurrentTaskFragment.newInstance(
parentFragment as TaxiFragment?
)
mFragments.add(currentTaskFragment!!)
- } else if (TAB_POSITION_NEXT == position) {
+ } else if (1 == i) {
module_och_taxi_tab.addTab(tab)
- changeTabLayoutUI(tab, false)
+ changeTabLayoutTabUI(tab, false)
nextTaskFragment = TaxiNextTaskFragment.newInstance(
activity
)
@@ -98,16 +96,15 @@ 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
- changeTabLayoutUI(tab, true)
+ changeTabLayoutTabUI(tab, true)
}
override fun onTabUnselected(tab: TabLayout.Tab) {
- changeTabLayoutUI(tab, false)
+ changeTabLayoutTabUI(tab, false)
}
override fun onTabReselected(tab: TabLayout.Tab) {}
})
-
module_och_taxi_view_pager.addOnPageChangeListener(object : OnPageChangeListener {
override fun onPageScrolled(
position: Int,
@@ -122,40 +119,37 @@ class TaxiTaskTabFragment : BaseFragment() {
override fun onPageScrollStateChanged(state: Int) {}
})
-
- module_och_taxi_view_pager.adapter = TaskTabFragmentAdapter(
+ module_och_taxi_view_pager.adapter = OrdersFragmentAdapter(
childFragmentManager,
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT
)
}
- private fun changeTabLayoutUI(tab: TabLayout.Tab, isSelected: Boolean) {
+ @SuppressLint("UseCompatLoadingForDrawables")
+ private fun changeTabLayoutTabUI(tab: TabLayout.Tab, isSelected: Boolean) {
val textView = tab.customView!!.findViewById(R.id.tab_title) as TextView
if (isSelected) {
- textView.background =
- ContextCompat.getDrawable(requireContext(), R.drawable.taxi_driver_tab_item_bg)
+ textView.background = activity?.getDrawable(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(context, 36f).toFloat()
+ AutoSizeUtils.dp2px(getContext(), 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 TaskTabFragmentAdapter(
+ internal inner class OrdersFragmentAdapter(
fragmentManager: FragmentManager,
behavior: Int
) :
@@ -181,23 +175,31 @@ class TaxiTaskTabFragment : BaseFragment() {
}
}
- fun onNaviToEndStationByAMap(isShow: Boolean) {
+ fun onNaviToEndAMap(isShow: Boolean) {
if (null == currentTaskFragment) return
- currentTaskFragment!!.onNaviToEndStationByAmap(isShow)
+ currentTaskFragment!!.onNaviToEndAmap(isShow)
}
- fun onCurrentTaskTripInfoChanged(meters: Long, timeInSecond: Long) {
+ fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) {
if (null == currentTaskFragment) return
- currentTaskFragment!!.updateCurrentTaskTripInfo(meters, timeInSecond)
+ currentTaskFragment!!.updateDistanceAndTime(meters, timeInSecond)
}
- fun onCarTakeOrderStatusChanged() {
+ fun onOperationStatusChanged() {
if (null == currentTaskFragment) return
- currentTaskFragment!!.onCarTakeOrderStatusChanged()
+ currentTaskFragment!!.onOperationStatusChanged()
}
- fun onTaskDataChanged(result: QueryCurrentTaskRespBean.Result?) {
+ fun updateOrderChanged(model: QueryCurrentTaskRespBean.Result?) {
if (null == nextTaskFragment) return
- nextTaskFragment!!.updateOrderChanged(result)
+ if (model != null && model.taskType == TaskTypeEnum.VirtualTask.code
+ && model.order != null) {
+ VoiceNotice.showNotice("已为您提前接到下一订单,待完成当前任务后服务")
+ wait_order_num.visibility = View.VISIBLE
+ } else {
+ wait_order_num.visibility = View.GONE
+ }
+
+ nextTaskFragment!!.updateOrderChanged(model)
}
}
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt
index ffd8b423bd..a2f0feb736 100644
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt
@@ -78,7 +78,7 @@ object MapMakerManager {
)
val overlayManager =
CallerMapUIServiceManager.getOverlayManager()
- overlayManager?.removeAllLinesInOwner(owner)
+ overlayManager?.removeAllPointsInOwner(owner)
}
OCHThreadPoolManager.getsInstance().execute(removeAllMapMarkerRunnable)
}
diff --git a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_server_orders_panel.xml b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_server_orders_panel.xml
index b52c347f82..ab353393ca 100644
--- a/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_server_orders_panel.xml
+++ b/OCH/taxi/unmanned-driver/src/main/res/layout/taxi_server_orders_panel.xml
@@ -32,19 +32,14 @@
android:background="@drawable/taxi_order_viewpager_bg"
app:layout_constraintTop_toBottomOf="@+id/module_och_taxi_tab"
app:layout_constraintStart_toStartOf="parent"/>
-