diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt index 019653c8b1..cb3277ee99 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt @@ -100,6 +100,7 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() { if (startSite != other.startSite) return false if (endSite != other.endSite) return false if (order != other.order) return false + if (writeVersion != other.writeVersion) return false return true } 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 5db2755ac4..cb1e31f4b8 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 @@ -17,7 +17,6 @@ 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.CallerLogger.e 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 @@ -68,7 +67,12 @@ import kotlinx.coroutines.flow.map class TaxiCurrentTaskFragment : BaseFragment(), View.OnClickListener, ICommonNaviChangedCallback { - private lateinit var mViewModel: TaxiCurrentTaskViewModel + private val mViewModel: TaxiCurrentTaskViewModel by lazy { + ViewModelProvider( + this, + ViewModelProvider.NewInstanceFactory() + )[TaxiCurrentTaskViewModel::class.java] + } private var mPrepareTasCountDownTimer: CountDownTimer? = null @@ -91,14 +95,6 @@ class TaxiCurrentTaskFragment : BaseFragment(), return this.javaClass.simpleName } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - mViewModel = ViewModelProvider( - this, - ViewModelProvider.NewInstanceFactory() - )[TaxiCurrentTaskViewModel::class.java] - } - override fun initViews() { initOnClickListener() initContainerView(false) @@ -311,11 +307,7 @@ class TaxiCurrentTaskFragment : BaseFragment(), } fun onCarTakeOrderStatusChanged() { - if (this::mViewModel.isInitialized) { - mViewModel.sendUiIntent(TaskUiIntent.StartOrEndTakeOrder) - } else { - e(TAG, "onCarTakeOrderStatusChanged: mViewModel is not Initialized") - } + mViewModel.sendUiIntent(TaskUiIntent.StartOrEndTakeOrder) } /** 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 e08f21d5a1..7df5e66270 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 @@ -50,6 +50,12 @@ class TaxiCurrentTaskViewModel : BaseViewModel(), TaxiTaskModel.setCarServiceCallback(this) } + override fun onCleared() { + TaxiTaskModel.removeTaskWithOrderListener(TAG) + TaxiTaskModel.removeCarServiceCallback() + super.onCleared() + } + override fun initUiState(): UnmannedState { return UnmannedState(TaskWithOrderUIState.Init) } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index 3b98559aed..9b3f681ffc 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -177,6 +177,10 @@ object TaxiTaskModel { mTaxiCarServiceCallback = callback } + fun removeCarServiceCallback() { + mTaxiCarServiceCallback = null + } + private fun getCurTaskStatus(): Int? { if (mCurrentTaskWithOrder == null) TaskStatusEnum.None return mCurrentTaskWithOrder?.currentStatus @@ -700,6 +704,8 @@ object TaxiTaskModel { mQueryTaskWithOrderDisposable?.dispose() mQueryTaskWithOrderDisposable = null } + mCurrentTaskWithOrder = null + mDriveToNearestStationTask = null } /** @@ -725,16 +731,16 @@ object TaxiTaskModel { return } val result: QueryCurrentTaskRespBean.Result? = data.data - d( - TAG, - "queryCurrentTaskOnce onSuccess:result=${GsonUtil.jsonFromObject(result)}" - ) d( TAG, "queryCurrentTaskOnce onSuccess:mCurrentTaskWithOrder=${ GsonUtil.jsonFromObject(mCurrentTaskWithOrder) }" ) + d( + TAG, + "queryCurrentTaskOnce onSuccess:result=${GsonUtil.jsonFromObject(result)}" + ) //本地根据订单 orderNo 去查询下(乘客取消订单) if (mCurrentTaskWithOrder != null