[6.1.0] refactor: 本次计算的行程信息走viewModel链路传递给view;
This commit is contained in:
@@ -12,7 +12,4 @@ public interface ITaxiOrderStatusCallback {
|
||||
* @param isShow 是否显示导航地图(否播报声音)
|
||||
*/
|
||||
void onNaviToEnd(boolean isAmap, boolean isShow);
|
||||
|
||||
// 当前位置距离上车点的距离(米)、预估时间(秒)
|
||||
void onCurrentOrderDistToEndChanged(long meters, long timeInSecond);
|
||||
}
|
||||
|
||||
@@ -9,8 +9,9 @@ interface ITaxiTaskWithOrderCallback {
|
||||
fun onTaskTrajectoryDataChanged(data: TrajectoryListRespBean?)
|
||||
fun onOrderCancel()
|
||||
fun onOrderArriveAtEnd(orderNo: String)
|
||||
fun onOrderTotalMileAndDurationChanged(mileage: Float, duration: Int)
|
||||
fun onOrderTripInfoChanged(mileage: Float, duration: Int)
|
||||
fun onOrderJourneyCompleted()
|
||||
fun onStartAutopilot()
|
||||
fun onStartPrepareTask120s(isStart: Boolean)
|
||||
fun onTaskTripInfoLocalCalculateChanged(meters:Long, timeInSecond:Long)
|
||||
}
|
||||
@@ -70,13 +70,13 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
// }
|
||||
}
|
||||
|
||||
private fun openOperationalInfoView() {
|
||||
personalDialogFragment = WeakReference(TaxiPersonalDialogFragment())
|
||||
activity?.supportFragmentManager?.let {
|
||||
personalDialogFragment!!.get()
|
||||
?.show(it, "service_data")
|
||||
}
|
||||
}
|
||||
// private fun openOperationalInfoView() {
|
||||
// personalDialogFragment = WeakReference(TaxiPersonalDialogFragment())
|
||||
// activity?.supportFragmentManager?.let {
|
||||
// personalDialogFragment!!.get()
|
||||
// ?.show(it, "service_data")
|
||||
// }
|
||||
// }
|
||||
|
||||
override fun getTagName(): String {
|
||||
return "TaxiFragment"
|
||||
@@ -86,9 +86,7 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
super.onActivityCreated(savedInstanceState)
|
||||
loginService =
|
||||
ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation() as LoginService
|
||||
if (loginService != null) {
|
||||
loginService!!.registerFragment(this, presenter, TaxiDriverLoginImpl())
|
||||
}
|
||||
loginService?.registerFragment(this, presenter, TaxiDriverLoginImpl())
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
@@ -259,11 +257,6 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
|
||||
}
|
||||
}
|
||||
|
||||
fun onCurrentOrderDistToEndChanged(meters: Long, timeInSecond: Long) {
|
||||
if (null == taskTabFragment || taskTabFragment!!.get() == null) return
|
||||
taskTabFragment!!.get()!!.onCurrentTaskTripInfoChanged(meters, timeInSecond)
|
||||
}
|
||||
|
||||
private fun testRouteInfoUpload() {
|
||||
TPRouteDataTestUtils.converToRouteData()
|
||||
}
|
||||
|
||||
@@ -137,11 +137,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
runOnUIThread(() -> mView.onNaviToEnd(isAmap, isShow));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCurrentOrderDistToEndChanged(long meters, long timeInSecond) {
|
||||
runOnUIThread(() -> mView.onCurrentOrderDistToEndChanged(meters, timeInSecond));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVRModeChanged(boolean isVRMode) {
|
||||
runOnUIThread(() -> mView.switchVRFlatMode(isVRMode));
|
||||
|
||||
@@ -189,7 +189,7 @@ public class DebugView @JvmOverloads constructor(
|
||||
override fun onOrderArriveAtEnd(orderNo: String) {
|
||||
}
|
||||
|
||||
override fun onOrderTotalMileAndDurationChanged(mileage: Float, duration: Int) {
|
||||
override fun onOrderTripInfoChanged(mileage: Float, duration: Int) {
|
||||
}
|
||||
|
||||
override fun onOrderJourneyCompleted() {
|
||||
@@ -200,4 +200,7 @@ public class DebugView @JvmOverloads constructor(
|
||||
|
||||
override fun onStartPrepareTask120s(isStart: Boolean) {
|
||||
}
|
||||
|
||||
override fun onTaskTripInfoLocalCalculateChanged(meters: Long, timeInSecond: Long) {
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,10 @@ sealed class TaskWithOrderUIState {
|
||||
data class TaskDriveToNearestStationTask(val driveToNearestStationTask: StartServiceRespBean.Result?) :
|
||||
TaskWithOrderUIState()
|
||||
|
||||
data class UpdateTaskTripInfo(val mileage: Float, val duration: Int) : TaskWithOrderUIState()
|
||||
data class UpdateOrderTripInfo(val mileage: Float, val duration: Int) : TaskWithOrderUIState()
|
||||
|
||||
data class UpdateTaskTripLocalCalculateInfo(val meters: Long, val timeInSecond: Long) :
|
||||
TaskWithOrderUIState()
|
||||
|
||||
data class UpdatePrepareTaskDelay120S(val isStart: Boolean) : TaskWithOrderUIState()
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ 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.voice.VoiceNotice
|
||||
import com.mogo.och.common.module.wigets.OCHCommitDialog
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.bean.OrderDetail
|
||||
@@ -184,7 +183,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
updateViewByCurrentTaskWithOrder(currentTaskWithOrder)
|
||||
}
|
||||
|
||||
is TaskWithOrderUIState.UpdateTaskTripInfo -> {
|
||||
is TaskWithOrderUIState.UpdateOrderTripInfo -> {
|
||||
taskOtherInfo.text =
|
||||
TaskUtils.getCurrentTaskTotalAndDurationHtml(
|
||||
taskAndOrderUiState.mileage,
|
||||
@@ -192,6 +191,13 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
)
|
||||
}
|
||||
|
||||
is TaskWithOrderUIState.UpdateTaskTripLocalCalculateInfo -> {
|
||||
updateCurrentTaskTripInfo(
|
||||
taskAndOrderUiState.meters,
|
||||
taskAndOrderUiState.timeInSecond
|
||||
)
|
||||
}
|
||||
|
||||
is TaskWithOrderUIState.UpdatePrepareTaskDelay120S -> {
|
||||
updatePrepareTaskDelay120SUI(taskAndOrderUiState.isStart)
|
||||
}
|
||||
@@ -205,33 +211,34 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
*/
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean) {
|
||||
|
||||
if (!isStart){
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
if (!isStart) {
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
mPrepareTasCountDownTimer?.cancel()
|
||||
mPrepareTasCountDownTimer = null
|
||||
return
|
||||
}
|
||||
|
||||
prepareTaskCountdownTv.visibility = View.VISIBLE
|
||||
mPrepareTasCountDownTimer = object : CountDownTimer(TIMER_PREPARE_TASK_INTERVAL_120S, 1000L) {// 5倒计时后开启自驾
|
||||
prepareTaskCountdownTv.visibility = View.VISIBLE
|
||||
mPrepareTasCountDownTimer =
|
||||
object : CountDownTimer(TIMER_PREPARE_TASK_INTERVAL_120S, 1000L) {// 5倒计时后开启自驾
|
||||
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
// 倒计时
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.text =
|
||||
"距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished/1000)}"
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
// 倒计时
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.text =
|
||||
"距离任务获取还有 ${DateTimeUtil.second2MMSS(millisUntilFinished / 1000)}"
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
//倒计时结束了...
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
}
|
||||
mPrepareTasCountDownTimer?.cancel()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
//倒计时结束了...
|
||||
UiThreadHandler.post {
|
||||
prepareTaskCountdownTv.visibility = View.GONE
|
||||
}
|
||||
mPrepareTasCountDownTimer?.cancel()
|
||||
}
|
||||
}
|
||||
|
||||
mPrepareTasCountDownTimer?.start()
|
||||
}
|
||||
|
||||
@@ -392,7 +399,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
|
||||
TaskTypeEnum.ToOrderEndTask.code, TaskTypeEnum.ToOrderStartTask.code -> {// 接驾任务 或 送驾任务
|
||||
order?.also {
|
||||
updatePathwayPoint(taskType,endSite?.siteName)
|
||||
updatePathwayPoint(taskType, endSite?.siteName)
|
||||
handleOrderView(it)
|
||||
updateOrderUI(it)
|
||||
}
|
||||
@@ -403,7 +410,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
updateRemainDistanceAndTime(false)
|
||||
}
|
||||
|
||||
private fun updatePathwayPoint(taskType: Int,endSiteName: String?) {
|
||||
private fun updatePathwayPoint(taskType: Int, endSiteName: String?) {
|
||||
if (TextUtils.isEmpty(endSiteName)) return
|
||||
pathwayPoint.visibility = if (taskType == TaskTypeEnum.ToOrderStartTask.code)
|
||||
View.VISIBLE else View.GONE
|
||||
@@ -595,11 +602,21 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
* @param meters 米
|
||||
* @param timeInSecond 秒
|
||||
*/
|
||||
fun updateCurrentTaskTripInfo(meters: Long, timeInSecond: Long) {
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return
|
||||
if (currentTaskWithOrder.endSite == null && currentTaskWithOrder == null) return
|
||||
d("NaviToDestinationModel", "taskUitl, ${TaskUtils.getCurrentTaskTripHtml(meters, timeInSecond)}")
|
||||
taskOtherInfo.text = TaskUtils.getCurrentTaskTripHtml(meters, timeInSecond)
|
||||
private fun updateCurrentTaskTripInfo(meters: Long, timeInSecond: Long) {
|
||||
UiThreadHandler.post {
|
||||
val currentTaskWithOrder = TaxiTaskModel.getCurrentTaskWithOrder() ?: return@post
|
||||
if (currentTaskWithOrder.endSite == null) return@post
|
||||
d(
|
||||
TAG,
|
||||
"updateCurrentTaskTripInfo, taskUtil, ${
|
||||
TaskUtils.getCurrentTaskTripHtml(
|
||||
meters,
|
||||
timeInSecond
|
||||
)
|
||||
}"
|
||||
)
|
||||
taskOtherInfo.text = TaskUtils.getCurrentTaskTripHtml(meters, timeInSecond)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
@@ -715,7 +732,8 @@ class TaxiCurrentTaskFragment : BaseFragment(),
|
||||
}
|
||||
if ((currentTaskWithOrder?.currentStatus == TaskStatusEnum.StartTask.code
|
||||
&& currentTaskWithOrder.order == null)
|
||||
|| (currentTaskWithOrder?.order?.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.code)) {
|
||||
|| (currentTaskWithOrder?.order?.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.code)
|
||||
) {
|
||||
if (naviToEnd.visibility == View.GONE) {
|
||||
naviToEnd.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean){
|
||||
private fun updatePrepareTaskDelay120SUI(isStart: Boolean) {
|
||||
d(TAG, "UpdatePrepareTaskDelay120SUI = $isStart")
|
||||
sendUiState {
|
||||
copy(
|
||||
@@ -195,17 +195,28 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateOrderTotalMileAndDurationUI(mileage: Float, duration: Int) {
|
||||
d(TAG, "updateOrderTotalMileAndDurationUI")
|
||||
private fun updateOrderTripInfoUI(mileage: Float, duration: Int) {
|
||||
d(TAG, "updateOrderTripInfoUI")
|
||||
sendUiState {
|
||||
copy(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdateTaskTripInfo(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdateOrderTripInfo(
|
||||
mileage, duration
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateTaskTripInfoLocalCalculateUI(meters: Long, timeInSecond: Long) {
|
||||
d(TAG, "UpdateTaskTripInfoLocalCalculateUI")
|
||||
sendUiState {
|
||||
copy(
|
||||
taskWithOrderUIState = TaskWithOrderUIState.UpdateTaskTripLocalCalculateInfo(
|
||||
meters, timeInSecond
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTaskWithOrderDataChanged(result: QueryCurrentTaskRespBean.Result?) {
|
||||
d(TAG, "onTaskWithOrderChanged = result = " + GsonUtil.jsonFromObject(result))
|
||||
DebugView.printInfoMsg("[查询TaskWithOrder信息] 更新数据, 刷新UI")
|
||||
@@ -235,9 +246,11 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
TaxiTaskModel.queryOrderByOrderNo(orderNo)
|
||||
}
|
||||
|
||||
override fun onOrderTotalMileAndDurationChanged(mileage: Float, duration: Int) {
|
||||
//更新总全程信息(公里和分钟)
|
||||
updateOrderTotalMileAndDurationUI(mileage, duration)
|
||||
/**
|
||||
* 更新总全程信息(公里和分钟), 后端返回的数据
|
||||
*/
|
||||
override fun onOrderTripInfoChanged(mileage: Float, duration: Int) {
|
||||
updateOrderTripInfoUI(mileage, duration)
|
||||
}
|
||||
|
||||
override fun onOrderJourneyCompleted() {
|
||||
@@ -263,13 +276,20 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
updatePrepareTaskDelay120SUI(isStart)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新本次任务行程信息, 本地计算的数据
|
||||
*/
|
||||
override fun onTaskTripInfoLocalCalculateChanged(meters: Long, timeInSecond: Long) {
|
||||
updateTaskTripInfoLocalCalculateUI(meters, timeInSecond)
|
||||
}
|
||||
|
||||
override fun onCarEndServiceSuccess(
|
||||
driveToNearestStationTask: StartServiceRespBean.Result?,
|
||||
currentTaskWithOrder: QueryCurrentTaskRespBean.Result?
|
||||
) {
|
||||
if (currentTaskWithOrder?.endSite != null
|
||||
&& (currentTaskWithOrder.currentStatus < TaskStatusEnum.CompleteTask.code
|
||||
||currentTaskWithOrder.order != null)
|
||||
|| currentTaskWithOrder.order != null)
|
||||
) {
|
||||
VoiceNotice.showNotice("暂停接单啦!要完成当前订单哦")
|
||||
return
|
||||
|
||||
@@ -482,10 +482,12 @@ object TaxiTaskModel {
|
||||
TAG,
|
||||
"dynamicCalculateRouteInfo: lastSumLength=$lastSumLength, lastTime=$lastTime, threadName=Thread.currentThread().name"
|
||||
)
|
||||
mOrderStatusCallback?.onCurrentOrderDistToEndChanged(
|
||||
lastSumLength.toLong(),
|
||||
lastTime.toLong()
|
||||
)
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onTaskTripInfoLocalCalculateChanged(
|
||||
lastSumLength.toLong(),
|
||||
lastTime.toLong())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -869,7 +871,7 @@ object TaxiTaskModel {
|
||||
TaxiOrderStatusEnum.ArriveAtEnd.code -> {
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onOrderTotalMileAndDurationChanged(
|
||||
listener.onOrderTripInfoChanged(
|
||||
data.data.mileage,
|
||||
data.data.duration.toInt()
|
||||
)
|
||||
|
||||
@@ -188,11 +188,6 @@ class TaxiTaskTabFragment : BaseFragment() {
|
||||
currentTaskFragment!!.onNaviToEndStationByAmap(isShow)
|
||||
}
|
||||
|
||||
fun onCurrentTaskTripInfoChanged(meters: Long, timeInSecond: Long) {
|
||||
if (null == currentTaskFragment) return
|
||||
currentTaskFragment!!.updateCurrentTaskTripInfo(meters, timeInSecond)
|
||||
}
|
||||
|
||||
fun onCarTakeOrderStatusChanged() {
|
||||
if (null == currentTaskFragment) return
|
||||
currentTaskFragment!!.onCarTakeOrderStatusChanged()
|
||||
|
||||
Reference in New Issue
Block a user