diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java
index 95758c90a9..a0de8f4d6f 100644
--- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/map/AmapNaviToDestinationModel.java
@@ -98,7 +98,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener {
}
}
- public void setOCHTaciNaviChangedCallback(ICommonNaviChangedCallback callback) {
+ public void setTaxiNaviChangedCallback(ICommonNaviChangedCallback callback) {
this.mNaviChangedCallback = callback;
}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java
index 61c66efad6..e00b289572 100644
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java
+++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java
@@ -354,7 +354,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment
NaviLatLng endNaviLatLng = new NaviLatLng(stationLat, stationLng);
AmapNaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng);
AmapNaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(isVoicePlay);
- AmapNaviToDestinationModel.getInstance(getContext()).setOCHTaciNaviChangedCallback(this);
+ AmapNaviToDestinationModel.getInstance(getContext()).setTaxiNaviChangedCallback(this);
}
private void showOrHideNavi(boolean isShow) {
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiIntent.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiIntent.kt
new file mode 100644
index 0000000000..ebfc321f27
--- /dev/null
+++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiIntent.kt
@@ -0,0 +1,30 @@
+package com.mogo.och.taxi.ui.task
+
+import com.mogo.och.taxi.base.IUiIntent
+
+/**
+ * @author: wangmingjun
+ * @date: 2023/7/26
+ */
+sealed class TaskUiIntent: IUiIntent{
+
+ //开始接单 、 暂停接单
+ object StartOrEndTakeOrder : TaskUiIntent()
+
+ object StartTaskWithOrderLooper : TaskUiIntent()
+
+ //取消订单
+ class CancelOrder(val type: Int) : TaskUiIntent()
+
+ object StartTask: TaskUiIntent()
+
+ //订单服务完成
+ object JourneyCompleted: TaskUiIntent()
+
+ //跳过乘客验证
+ object JumpPassengerCheck : TaskUiIntent()
+
+ //司机端手动结束订单
+ object CloseOrderByDriver : TaskUiIntent()
+
+}
\ No newline at end of file
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt
similarity index 100%
rename from OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedState.kt
rename to OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaskUiState.kt
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 19fbb71557..5358875022 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
@@ -3,12 +3,9 @@ package com.mogo.och.taxi.ui.task
import android.annotation.SuppressLint
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
-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
import com.amap.api.navi.model.NaviLatLng
@@ -19,8 +16,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
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.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI
+import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
@@ -39,7 +37,6 @@ import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TYPE_MARKER_TAXI_O
import com.mogo.och.taxi.ui.base.TaxiFragment
import com.mogo.och.taxi.ui.task.TaxiTaskModel
import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState
-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
@@ -67,15 +64,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
View.OnClickListener, ICommonNaviChangedCallback {
private lateinit var mViewModel: TaxiCurrentTaskViewModel
- private var mCurrentTaskWithOrder: QueryCurrentTaskRespBean.Result? = null
-
- // 开始接单后 需要将车开到最近的一个站点就位,然后才能开启 无人化 流程
- private var mDriveToNearestStationTask: StartServiceRespBean.Result? = null
companion object {
- const val TAG = "TaxiCurrentTaskFragment"
-
+ const val TAG = M_TAXI + "TaxiCurrentTaskFragment"
private var mTaxiFragment: TaxiFragment? = null
+
fun newInstance(taxiFragment: TaxiFragment?): TaxiCurrentTaskFragment {
mTaxiFragment = taxiFragment
val args = Bundle()
@@ -115,7 +108,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
*/
private fun initContainerView(hasCurrentTask: Boolean) {
d(
- M_TAXI + TAG,
+ TAG,
"hasCurrentTask = $hasCurrentTask"
)
try {
@@ -149,7 +142,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
private fun initViewModelObserver() {
- mViewModel.sendUiIntent(UnmannedIntent.StartTaskWithOrderLooper)
+ mViewModel.sendUiIntent(TaskUiIntent.StartTaskWithOrderLooper)
//监听返回的数据状态
lifecycleScope.launchWhenStarted {
@@ -159,8 +152,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
is TaskWithOrderUIState.Init -> {
}
+ // 开始接单后 需要将车开到最近的一个站点就位,然后才能开启 无人化 流程
is TaskWithOrderUIState.TaskDriveToNearestStationTask -> {
- mDriveToNearestStationTask = taskAndOrderUiState.driveToNearestStationTask
if (taskAndOrderUiState.driveToNearestStationTask != null) {
updateViewByDriveToNearestStationTask(taskAndOrderUiState.driveToNearestStationTask)
} else {
@@ -170,20 +163,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
is TaskWithOrderUIState.TaskWithOrder -> {
- mCurrentTaskWithOrder = taskAndOrderUiState.taskWithOrder
-
- //如果在前往标定站点, 显示标定站点
-// if (mDriveToNearestStationTask != null){
-// return@collect
-// }
-
- if (mCurrentTaskWithOrder == null) {
+ val currentTaskWithOrder = taskAndOrderUiState.taskWithOrder
+ if (currentTaskWithOrder == null) {
initContainerView(false)
removeAllMapMarker()
return@collect
}
- updateNextTaskFragment(taskAndOrderUiState.taskWithOrder)
- updateViewByCurrentTaskWithOrder(taskAndOrderUiState.taskWithOrder)
+ updateNextTaskFragment(currentTaskWithOrder)
+ updateViewByCurrentTaskWithOrder(currentTaskWithOrder)
}
is TaskWithOrderUIState.UpdateTaskTripInfo -> {
@@ -220,12 +207,11 @@ class TaxiCurrentTaskFragment : BaseFragment(),
updateStartAndEndStationPointByStatus(true)
// 使用高德获取导航数据
- if (mDriveToNearestStationTask != null) {
- startNaviToStation(
- false, mDriveToNearestStationTask!!.gcjLat,
- mDriveToNearestStationTask!!.gcjLon
- )
- }
+ startNaviToStation(
+ false,
+ driveToNearestStationTask.gcjLat,
+ driveToNearestStationTask.gcjLon
+ )
}
private fun updateStartAndEndStationPointByStatus(isGoingToStation: Boolean) {
@@ -245,28 +231,31 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
fun onCarTakeOrderStatusChanged() {
- mViewModel.sendUiIntent(UnmannedIntent.StartOrEndTakeOrder)
+ mViewModel.sendUiIntent(TaskUiIntent.StartOrEndTakeOrder)
}
+ /**
+ * 根据任务状态计算剩余历程和时间
+ */
private fun updateRemainDistanceAndTime(isVoicePlay: Boolean) {
- //根据任务状态计算剩余历程和时间
- if (mCurrentTaskWithOrder == null) return
- if (mCurrentTaskWithOrder!!.endSite != null
- && mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.StartTask.code
+ val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
+
+ if (currentTaskWithOrder.endSite != null
+ && currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code
) {
startNaviToStation(
- isVoicePlay, mCurrentTaskWithOrder!!.endSite!!.gcjLat,
- mCurrentTaskWithOrder!!.endSite!!.gcjLon
+ isVoicePlay, currentTaskWithOrder.endSite!!.gcjLat,
+ currentTaskWithOrder.endSite!!.gcjLon
)
return
}
- if (mCurrentTaskWithOrder!!.startSite != null
- && mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.GetTask.code
+ if (currentTaskWithOrder.startSite != null
+ && currentTaskWithOrder.currentStatus == TaskStatusEnum.GetTask.code
) { //演练任务和送驾任务
startNaviToStation(
- isVoicePlay, mCurrentTaskWithOrder!!.startSite!!.gcjLat,
- mCurrentTaskWithOrder!!.startSite!!.gcjLon
+ isVoicePlay, currentTaskWithOrder.startSite!!.gcjLat,
+ currentTaskWithOrder.startSite!!.gcjLon
)
}
}
@@ -274,7 +263,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
/**
* 更新当前任务和订单信息
*/
- @SuppressLint("SetTextI18n", "UseCompatLoadingForDrawables")
+ @SuppressLint("SetTextI18n")
fun updateViewByCurrentTaskWithOrder(taskAndOrder: QueryCurrentTaskRespBean.Result?) {
if (taskAndOrder == null) return
if ((taskAndOrder.endSite == null || taskAndOrder.currentStatus == TaskStatusEnum.CompleteTask.code)
@@ -308,7 +297,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
TaskTypeEnum.VirtualTask.code -> { //演练任务
cancelOrder.visibility = View.GONE
orderPhoneAndNum.visibility = if (order != null &&
- currentStatus == TaskStatusEnum.CompleteTask.code) View.VISIBLE else View.GONE
+ currentStatus == TaskStatusEnum.CompleteTask.code
+ ) View.VISIBLE else View.GONE
taskClickBtn.visibility = View.GONE
naviToStart.visibility = View.GONE
@@ -354,29 +344,28 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
}
}
-
- updateMapMarkers()
+ updateMapMarkers(taskAndOrder)
updateRemainDistanceAndTime(false)
}
- private fun updateMapMarkers() {
- if (mCurrentTaskWithOrder != null && mCurrentTaskWithOrder!!.startSite != null
- && mCurrentTaskWithOrder!!.endSite != null
+ private fun updateMapMarkers(taskAndOrder: QueryCurrentTaskRespBean.Result?) {
+ if (taskAndOrder != null && taskAndOrder!!.startSite != null
+ && taskAndOrder!!.endSite != null
) {
- when (mCurrentTaskWithOrder!!.currentStatus) {
+ when (taskAndOrder.currentStatus) {
TaskStatusEnum.GetTask.code -> {
setOrRemoveMapMaker(
true,
TAXI_START_MAP_MAKER,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lon,
+ taskAndOrder!!.startSite!!.wgs84Lat,
+ taskAndOrder!!.startSite!!.wgs84Lon,
R.raw.star_marker
)
setOrRemoveMapMaker(
true,
TAXI_END_MAP_MAKER,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lon,
+ taskAndOrder!!.endSite!!.wgs84Lat,
+ taskAndOrder!!.endSite!!.wgs84Lon,
R.raw.end_marker
)
}
@@ -385,15 +374,15 @@ class TaxiCurrentTaskFragment : BaseFragment(),
setOrRemoveMapMaker(
false,
TAXI_START_MAP_MAKER,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lon,
+ taskAndOrder!!.startSite!!.wgs84Lat,
+ taskAndOrder!!.startSite!!.wgs84Lon,
R.raw.star_marker
)
setOrRemoveMapMaker(
true,
TAXI_END_MAP_MAKER,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lon,
+ taskAndOrder!!.endSite!!.wgs84Lat,
+ taskAndOrder!!.endSite!!.wgs84Lon,
R.raw.end_marker
)
}
@@ -402,23 +391,23 @@ class TaxiCurrentTaskFragment : BaseFragment(),
setOrRemoveMapMaker(
false,
TAXI_START_MAP_MAKER,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.startSite!!.wgs84Lon,
+ taskAndOrder!!.startSite!!.wgs84Lat,
+ taskAndOrder!!.startSite!!.wgs84Lon,
R.raw.star_marker
)
setOrRemoveMapMaker(
false,
TAXI_END_MAP_MAKER,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lat,
- mCurrentTaskWithOrder!!.endSite!!.wgs84Lon,
+ taskAndOrder!!.endSite!!.wgs84Lat,
+ taskAndOrder!!.endSite!!.wgs84Lon,
R.raw.end_marker
)
}
}
} else {
d(
- M_TAXI + TAG,
- "CurrentTaskWithOrder == " + GsonUtil.jsonFromObject(mCurrentTaskWithOrder)
+ TAG,
+ "CurrentTaskWithOrder == " + GsonUtil.jsonFromObject(taskAndOrder)
)
}
}
@@ -430,12 +419,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
MainMoGoApplication.getApp().applicationContext,
R.drawable.task_order_type_btn_bg
)
- orderPhoneAndNum.text = HtmlCompat.fromHtml(
- " " + order.bookingUserPhone + "" +
- " | " +
- "" + order.passengerSize + "人" + "",
- HtmlCompat.FROM_HTML_MODE_LEGACY
- )
+ orderPhoneAndNum.text = TaskUtils.getCurrentTaskPhoneNumAndPassengerCountHtml(order.bookingUserPhone, order.passengerSize)
startStationName.text = order.orderStartSite?.siteName
endStationName.text = order.orderEndSite?.siteName
@@ -481,7 +465,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
true
)
hideNaviBtns()
- taskOtherInfo.text = TaskUtils.getWaitTimeHtml()
+ taskOtherInfo.text = TaskUtils.getCurrentTaskWaitTimeHtml()
}
TaxiOrderStatusEnum.OnTheWayToStart.code -> { //前往上车地点
@@ -530,14 +514,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
val mCurLatitude = getChassisLocationGCJ02().latitude
val mCurLongitude = getChassisLocationGCJ02().longitude
d(
- SceneConstant.M_TAXI + TAG,
+ TAG,
"currentLatLng=$mCurLatitude $mCurLongitude"
)
val startNaviLatLng = NaviLatLng(mCurLatitude, mCurLongitude)
val endNaviLatLng = NaviLatLng(stationLat, stationLng)
AmapNaviToDestinationModel.getInstance(context).initAMapNavi(startNaviLatLng, endNaviLatLng)
AmapNaviToDestinationModel.getInstance(context).setVoiceIsMute(isVoicePlay)
- AmapNaviToDestinationModel.getInstance(context).setOCHTaciNaviChangedCallback(this)
+ AmapNaviToDestinationModel.getInstance(context).setTaxiNaviChangedCallback(this)
}
/**
@@ -546,8 +530,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
* @param timeInSecond 秒
*/
fun updateCurrentTaskTripInfo(meters: Long, timeInSecond: Long) {
- if (mCurrentTaskWithOrder == null) return
- if (mCurrentTaskWithOrder!!.endSite == null && mDriveToNearestStationTask == null) return
+ val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
+ if (currentTaskWithOrder.endSite == null && currentTaskWithOrder == null) return
taskOtherInfo.text = TaskUtils.getCurrentTaskTripHtml(meters, timeInSecond)
}
@@ -557,14 +541,15 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
private fun startOrEndService() {
- if (mCurrentTaskWithOrder == null || mCurrentTaskWithOrder!!.order == null) return
- val order = mCurrentTaskWithOrder!!.order
+ val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
+ if (currentTaskWithOrder?.order == null) return
+ val order = currentTaskWithOrder?.order
if (TaxiOrderStatusEnum.ArriveAtStart.code == order!!.orderStatus) { //到达乘客上车点,司机可跳过乘客屏认证
- mViewModel.sendUiIntent(UnmannedIntent.JumpPassengerCheck)
+ mViewModel.sendUiIntent(TaskUiIntent.JumpPassengerCheck)
} else if (TaxiOrderStatusEnum.UserArriveAtStart.code == order.orderStatus) {
- mViewModel.sendUiIntent(UnmannedIntent.StartTask)
+ mViewModel.sendUiIntent(TaskUiIntent.StartTask)
} else if (TaxiOrderStatusEnum.ArriveAtEnd.code == order.orderStatus) { //点击了完成服务,结束订单并更新订单信息
- mViewModel.sendUiIntent(UnmannedIntent.JourneyCompleted)
+ mViewModel.sendUiIntent(TaskUiIntent.JourneyCompleted)
} else if (TaxiOrderStatusEnum.OnTheWayToEnd.code == order.orderStatus) { //前往目的地过程中可提前结束行程
//自驾中提示,接管后才能结束
if (getState()
@@ -587,7 +572,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
.build(requireContext())
closeOrderDialog!!.setClickListener(object : OCHCommitDialog.ClickListener {
override fun confirm() {
- mViewModel.sendUiIntent(UnmannedIntent.CloseOrderByDriver)
+ mViewModel.sendUiIntent(TaskUiIntent.CloseOrderByDriver)
}
override fun cancel() {
@@ -599,21 +584,32 @@ class TaxiCurrentTaskFragment : BaseFragment(),
override fun onClick(v: View) {
- if (v.id == taskClickBtn.id) {
- d(M_TAXI + TAG, taskStatus.text.toString())
- startOrEndService()
- } else if (v.id == cancelOrder.id) {
- if (mCurrentTaskWithOrder!!.order != null) {
- activity?.also {
- TaxiOrderCancelDialog(
- it, mCurrentTaskWithOrder!!.order!!.orderStatus
- ) {type ->
- mViewModel.sendUiIntent(UnmannedIntent.CancelOrder(type))
- }.show()
+ if (!ClickUtils.isFastClick()) {
+ i(TAG, "view点击过快")
+ return
+ }
+ when (v.id) {
+ taskClickBtn.id -> {
+ d(TAG, taskStatus.text.toString())
+ startOrEndService()
+ }
+
+ cancelOrder.id -> {
+ val currentWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
+ if (currentWithOrder?.order != null) {
+ val order = currentWithOrder.order
+ activity?.also {
+ TaxiOrderCancelDialog(it, order!!.orderStatus) { type ->
+ mViewModel.sendUiIntent(TaskUiIntent.CancelOrder(type))
+ }.show()
+ }
}
}
- } else if (v.id == naviToStart.id || v.id == naviToEnd.id) {
- showNaviToEndStationFragment(true)
+
+ naviToStart.id,
+ naviToEnd.id -> {
+ showNaviToEndStationFragment(true)
+ }
}
}
@@ -626,34 +622,30 @@ class TaxiCurrentTaskFragment : BaseFragment(),
mTaxiFragment?.startNaviToEndStation(isShow)
}
-
- @RequiresApi(Build.VERSION_CODES.N)
override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) {
updateCurrentTaskTripInfo(meters.toLong(), timeInSecond)
}
override fun reInitNaviAmap(isPlay: Boolean, isRestart: Boolean) {
- d(
- SceneConstant.M_TAXI + TAG,
- "isPlay = $isPlay, isRestart=$isRestart"
- )
+ d(TAG, "isPlay = $isPlay, isRestart=$isRestart")
if (!isRestart) {
mTaxiFragment?.showAmapNaviToStationFragment(false)
return
}
+ val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder()
+
UiThreadHandler.postDelayed({
updateRemainDistanceAndTime(false)
}, 2000)
+
UiThreadHandler.postDelayed({
- if (mCurrentTaskWithOrder != null &&
- mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.GetTask.code
+ if (currentTaskWithOrder?.currentStatus == TaskStatusEnum.GetTask.code
) {
if (naviToStart.visibility == View.GONE) {
naviToStart.visibility = View.VISIBLE
}
}
- if (mCurrentTaskWithOrder != null &&
- mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.StartTask.code
+ if (currentTaskWithOrder?.currentStatus == TaskStatusEnum.StartTask.code
) {
if (naviToEnd.visibility == View.GONE) {
naviToEnd.visibility = View.VISIBLE
@@ -663,15 +655,14 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
fun onNaviToEndStationByAmap(isShow: Boolean) {
- if (mCurrentTaskWithOrder == null) return
+ val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
mTaxiFragment?.showAmapNaviToStationFragment(
- if (mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.StartTask.code)
+ if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code)
isShow else true
)
-
updateRemainDistanceAndTime(
- if (mCurrentTaskWithOrder!!.currentStatus == TaskStatusEnum.StartTask.code)
+ if (currentTaskWithOrder.currentStatus == TaskStatusEnum.StartTask.code)
isShow else true
)
}
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 8c804727ad..061d5557f2 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
@@ -26,7 +26,6 @@ import com.mogo.och.taxi.constant.TaxiUnmannedConst
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager.cancelOrder
import com.mogo.och.taxi.ui.unmanned.TaskWithOrderUIState
-import com.mogo.och.taxi.ui.unmanned.UnmannedIntent
import com.mogo.och.taxi.ui.unmanned.UnmannedState
import com.mogo.och.taxi.utils.TaxiTrajectoryManager
@@ -34,7 +33,7 @@ import com.mogo.och.taxi.utils.TaxiTrajectoryManager
* @author: wangmingjun
* @date: 2023/7/26
*/
-class TaxiCurrentTaskViewModel : BaseViewModel(),
+class TaxiCurrentTaskViewModel : BaseViewModel(),
ITaxiTaskWithOrderCallback, ITaxiCarServiceCallback {
private val TAG = SceneConstant.M_TAXI + "TaxiUnmannedViewModel"
@@ -50,31 +49,31 @@ class TaxiCurrentTaskViewModel : BaseViewModel(),
override fun handleIntent(intent: IUiIntent) {
when (intent) {
- is UnmannedIntent.StartTaskWithOrderLooper -> { //开始轮询
+ is TaskUiIntent.StartTaskWithOrderLooper -> { //开始轮询
startOrStopCurrentTaskWithOrderLoop(true)
}
- is UnmannedIntent.StartOrEndTakeOrder -> {//开始、暂停接单
+ is TaskUiIntent.StartOrEndTakeOrder -> {//开始、暂停接单
TaxiTaskModel.updateCarServingStatus()
}
- is UnmannedIntent.JumpPassengerCheck -> { //手动点击跳过乘客验证
+ is TaskUiIntent.JumpPassengerCheck -> { //手动点击跳过乘客验证
jumpPassengerCheck()
}
- is UnmannedIntent.JourneyCompleted -> { //点击服务完成
+ is TaskUiIntent.JourneyCompleted -> { //点击服务完成
journeyCompleted()
}
- is UnmannedIntent.CloseOrderByDriver -> {
+ is TaskUiIntent.CloseOrderByDriver -> {
closeOrderByDriver()
}
- is UnmannedIntent.CancelOrder -> {// 取消订单, 暂未加取消类型和原因
+ is TaskUiIntent.CancelOrder -> {// 取消订单, 暂未加取消类型和原因
cancelOrder(intent.type)
}
- is UnmannedIntent.StartTask -> {
+ is TaskUiIntent.StartTask -> {
startTask()
}
}
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 65b422b818..f81f02638c 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,16 +1,19 @@
package com.mogo.och.taxi.ui.task
-import android.annotation.SuppressLint
import android.graphics.Color
import android.graphics.drawable.GradientDrawable
import android.os.Bundle
import android.view.View
-import androidx.core.text.HtmlCompat
+import androidx.core.content.ContextCompat
import com.mogo.commons.mvp.BaseFragment
+import com.mogo.eagle.core.function.main.MainMoGoApplication
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
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.TaskStatusEnum
import com.mogo.och.taxi.constant.TaskTypeEnum
+import com.mogo.och.taxi.utils.TaskUtils
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
@@ -28,8 +31,7 @@ import kotlinx.android.synthetic.main.task_fragment_current.taskTypeTv
*/
class TaxiNextTaskFragment : BaseFragment() {
companion object {
- const val TAG = "TaxiNextTaskFragment"
-
+ val TAG = SceneConstant.M_TAXI + javaClass.simpleName
fun newInstance(): TaxiNextTaskFragment {
val args = Bundle()
val fragment = TaxiNextTaskFragment()
@@ -47,36 +49,36 @@ class TaxiNextTaskFragment : BaseFragment() {
}
override fun initViews() {
- showNoTaskView()
+ showNoNextTaskView()
}
- fun onTaskDataChanged(model: QueryCurrentTaskRespBean.Result?) {
- if (model?.order == null) {
- showNoTaskView()
+ fun onTaskDataChanged(taskWithOrder: QueryCurrentTaskRespBean.Result?) {
+ if (taskWithOrder?.order == null) {
+ showNoNextTaskView()
return
}
- if (model.taskType == TaskTypeEnum.VirtualTask.code) {
- val order = model.order
+ if (taskWithOrder.taskType == TaskTypeEnum.VirtualTask.code &&
+ taskWithOrder.currentStatus != TaskStatusEnum.CompleteTask.code
+ ) {
+ val order = taskWithOrder.order
updateTaskUI(order!!)
} else {
- showNoTaskView()
+ showNoNextTaskView()
}
}
- @SuppressLint("SetTextI18n")
private fun updateTaskUI(order: OrderDetail) {
- showTaskView()
+ showNextTaskView()
taskOtherInfo.visibility = View.GONE
naviToStart.visibility = View.GONE
naviToEnd.visibility = View.GONE
- orderPhoneAndNum.text = HtmlCompat.fromHtml(
- " " + order.bookingUserPhone + "" +
- " | " +
- "" + order.passengerSize + "人" + "",
- HtmlCompat.FROM_HTML_MODE_LEGACY
- )
+ orderPhoneAndNum.text =
+ TaskUtils.getNextTaskPhoneNumAndPassengerCountHtml(
+ order.bookingUserPhone,
+ order.passengerSize
+ )
order.orderStartSite?.let {
startStationName.text = it.siteName
@@ -86,7 +88,11 @@ class TaxiNextTaskFragment : BaseFragment() {
}
taskTypeTv.text = resources.getString(R.string.task_order)
- taskTypeTv.background = resources.getDrawable(R.drawable.task_order_type_btn_bg, null)
+ taskTypeTv.background =
+ ContextCompat.getDrawable(
+ MainMoGoApplication.getApp().applicationContext,
+ R.drawable.task_order_type_btn_bg
+ )
updateTaskContainerBottomBtn(
getString(R.string.waiting_server),
@@ -110,12 +116,12 @@ class TaxiNextTaskFragment : BaseFragment() {
taskClickBtn.isClickable = isClickable
}
- private fun showNoTaskView() {
+ private fun showNoNextTaskView() {
noTaskData.visibility = View.VISIBLE
mCurrentTaskLayout.visibility = View.GONE
}
- private fun showTaskView() {
+ private fun showNextTaskView() {
noTaskData.visibility = View.GONE
mCurrentTaskLayout.visibility = View.VISIBLE
}
diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt
deleted file mode 100644
index 7cf1ddd36d..0000000000
--- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/unmanned/UnmannedIntent.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mogo.och.taxi.ui.unmanned
-
-import com.mogo.och.taxi.base.IUiIntent
-
-/**
- * @author: wangmingjun
- * @date: 2023/7/26
- */
-sealed class UnmannedIntent: IUiIntent{
-
- //开始接单 、 暂停接单
- object StartOrEndTakeOrder : UnmannedIntent()
-
- object StartTaskWithOrderLooper : UnmannedIntent()
-
- //取消订单
- class CancelOrder(val type: Int) : UnmannedIntent()
-
- object StartTask: UnmannedIntent()
-
- //订单服务完成
- object JourneyCompleted: UnmannedIntent()
-
- //跳过乘客验证
- object JumpPassengerCheck : UnmannedIntent()
-
- //司机端手动结束订单
- object CloseOrderByDriver : UnmannedIntent()
-
-}
\ No newline at end of file
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 e850610b71..1e35ef8de7 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
@@ -40,7 +40,7 @@ object TaskUtils {
return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
- fun getWaitTimeHtml(): Spanned {
+ fun getCurrentTaskWaitTimeHtml(): Spanned {
val currentCale = DateTimeUtils.getCurrentDateTime()
val currentDay =
DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd)
@@ -71,4 +71,22 @@ object TaskUtils {
+ ",总用时 " + " $duration " + " 分钟")
return HtmlCompat.fromHtml(strHtml, HtmlCompat.FROM_HTML_MODE_LEGACY)
}
+
+ fun getCurrentTaskPhoneNumAndPassengerCountHtml(phoneNum: String, passengerSize: Int): Spanned {
+ return HtmlCompat.fromHtml(
+ " " + phoneNum + "" +
+ " | " +
+ "" + passengerSize + "人" + "",
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+ }
+
+ fun getNextTaskPhoneNumAndPassengerCountHtml(phoneNum: String, passengerSize: Int): Spanned {
+ return HtmlCompat.fromHtml(
+ " " + phoneNum + "" +
+ " | " +
+ "" + passengerSize + "人" + "",
+ HtmlCompat.FROM_HTML_MODE_LEGACY
+ )
+ }
}
\ No newline at end of file