[6.2.0]
[charter] [m1] [美化模式分发]
This commit is contained in:
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user