[charter]
[m1]
[美化模式分发]
This commit is contained in:
yangyakun
2023-11-13 20:34:34 +08:00
parent 04875a220a
commit b6ebaee200
9 changed files with 75 additions and 140 deletions

View File

@@ -1,7 +0,0 @@
package com.magic.mogo.och.charter.callback
import com.magic.mogo.och.charter.manager.BeautifyManager
interface IBeautifyModeCallback {
fun dispatchStatus(typeEnum: BeautifyManager.ChangeTypeEnum)
}

View File

@@ -1,60 +0,0 @@
package com.magic.mogo.och.charter.manager
import com.magic.mogo.och.charter.callback.IBeautifyModeCallback
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.loopmanager.BizLoopManager
import com.mogo.och.common.module.manager.loopmanager.LoopInfo
import java.util.concurrent.ConcurrentHashMap
object BeautifyManager {
private val TAG = BeautifyManager::class.java.simpleName
enum class ChangeTypeEnum{
BEAUTIFY_TYPE,// 美化模式变化
ORDER_STATU_CHANGE,// 订单状态发生变化
ARRIVED_DEST,// 到站
STOPSITE_SUCCESS// 靠边停车成功
}
private val orderStatusChangeListeners = ConcurrentHashMap<String, IBeautifyModeCallback>()
@Volatile
@JvmField
var isBeautifyMode = false
init {
isBeautifyMode = FunctionBuildConfig.isDemoMode
BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::checkDemoMode))
}
private fun checkDemoMode() {
if(isBeautifyMode!=FunctionBuildConfig.isDemoMode){
isBeautifyMode = FunctionBuildConfig.isDemoMode
notifyViewChange(ChangeTypeEnum.BEAUTIFY_TYPE)
}
}
fun setStatusChangeListener(
tag: String,
orderStatusChangeListener: IBeautifyModeCallback?
) {
if (tag.isBlank()) return
if (orderStatusChangeListener == null) {
orderStatusChangeListeners.remove(tag)
return
}
orderStatusChangeListeners[tag] = orderStatusChangeListener
}
fun notifyViewChange(typeEnum: ChangeTypeEnum){
CallerLogger.d(TAG,"美化模式变化原因:${typeEnum}")
orderStatusChangeListeners.forEach {
it.value.dispatchStatus(typeEnum)
}
}
}

View File

@@ -1,21 +1,19 @@
package com.magic.mogo.och.charter.view.autopilot
import androidx.lifecycle.ViewModel
import com.magic.mogo.och.charter.callback.IBeautifyModeCallback
import com.magic.mogo.och.charter.callback.IDriverM1ControllerStatusCallback
import com.magic.mogo.och.charter.constant.CharterConst
import com.magic.mogo.och.charter.manager.BeautifyManager
import com.magic.mogo.och.charter.model.DriverM1Model
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.utils.RxUtils
import java.util.concurrent.atomic.AtomicBoolean
@@ -176,7 +174,10 @@ class AutopilotStatusViewModel: ViewModel(), IDriverM1ControllerStatusCallback,
}
override fun dispatchStatus(typeEnum: BeautifyManager.ChangeTypeEnum) {
setUIMode(CallerAutoPilotStatusListenerManager.getState())
ThreadUtils.runOnUiThread( {
// 自驾状态变更回调(可能成功可能失败)
setUIMode(CallerAutoPilotStatusListenerManager.getState())
},ThreadUtils.MODE.QUEUE)
}
interface IAutopilotStatusCallback{