[自主算路验证] fix: 进行模式切换后 无人化页面 不能刷新问题,原因为Model,ViewModel,Fragment的绑定问题,当Fragment重建后绑定了新ViewModel, 同时Model是单例,但是Model绑定的ViewModel还是上一个,就会导致数据传递到ViewModel后不能正确传递给新Fragment;

refactor: TaskWithOrder equals 时字段问题;
refactor: 模式切换 和 登出 类似,有些变量需要同等重置;
This commit is contained in:
aibingbing
2023-12-01 21:45:52 +08:00
parent cede3cf1cd
commit 04e7e20c37
4 changed files with 24 additions and 19 deletions

View File

@@ -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
}

View File

@@ -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)
}
/**

View File

@@ -50,6 +50,12 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
TaxiTaskModel.setCarServiceCallback(this)
}
override fun onCleared() {
TaxiTaskModel.removeTaskWithOrderListener(TAG)
TaxiTaskModel.removeCarServiceCallback()
super.onCleared()
}
override fun initUiState(): UnmannedState {
return UnmannedState(TaskWithOrderUIState.Init)
}

View File

@@ -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 onSuccessresult=${GsonUtil.jsonFromObject(result)}"
)
d(
TAG,
"queryCurrentTaskOnce onSuccessmCurrentTaskWithOrder=${
GsonUtil.jsonFromObject(mCurrentTaskWithOrder)
}"
)
d(
TAG,
"queryCurrentTaskOnce onSuccessresult=${GsonUtil.jsonFromObject(result)}"
)
//本地根据订单 orderNo 去查询下(乘客取消订单)
if (mCurrentTaskWithOrder != null