[包车 播放音乐和订单关联起来]
This commit is contained in:
yangyakun
2024-03-18 21:01:54 +08:00
parent fede28930b
commit f5db0fd086
3 changed files with 78 additions and 23 deletions

View File

@@ -0,0 +1,64 @@
package com.mogo.och.charter.passenger.model
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.util.TAG
import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener {
init {
CharterPassengerModel.setStatusChangeListener(TAG,this)
//自动驾驶状态监听
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
}
private var stopMusicDisposable: Disposable? = null
private const val startMusicWithOrderKey = "STARTMUSICWITHORDER"
override fun onAutopilotStatusResponse(state: Int) {
if(state==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
val string = SharedPrefsMgr.getInstance().getString(startMusicWithOrderKey)
CharterPassengerModel.getCurrentOrderInfo()?.orderNo
if (string == null) {
CharterPassengerModel.getCurrentOrderInfo()?.let {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
} else {
CharterPassengerModel.getCurrentOrderInfo()?.let {
if (it.orderNo != string) {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
}
}
}
}
fun load() {
}
override fun onStatusChange(currentStatus: OrderStatusEnum) {
when (currentStatus) {
OrderStatusEnum.NoOrderUse -> {
CharterPassengerModel.getCurrentOrderInfo()?.let {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
}
else ->{
}
}
}
}

View File

@@ -1,18 +1,7 @@
package com.mogo.och.charter.passenger.ui.music
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.common.module.manager.devicemanage.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
import com.mogo.och.charter.passenger.model.MusicModel
class MusicControlViewModel : ViewModel() {
@@ -22,7 +11,7 @@ class MusicControlViewModel : ViewModel() {
init {
MusicModel.load()
}
override fun onCleared() {

View File

@@ -56,20 +56,22 @@ object MusicModel : OrderListener, IMoGoAutopilotStatusListener {
}
}
override fun onAutopilotStatusResponse(state: Int) {
val string = SharedPrefsMgr.getInstance().getString(startMusicWithOrderKey)
if(string==null){
orderInfo?.let {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
}else{
orderInfo?.let {
if (it.orderNo!=string) {
if(state==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
val string = SharedPrefsMgr.getInstance().getString(startMusicWithOrderKey)
if (string == null) {
orderInfo?.let {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
} else {
orderInfo?.let {
if (it.orderNo != string) {
RxUtils.disposeSubscribe(stopMusicDisposable)
SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo)
AuditionManager.playFirst()
}
}
}
}
}