diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt new file mode 100644 index 0000000000..833c4b717b --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/MusicModel.kt @@ -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 ->{ + + } + } + } + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlViewModel.kt index 9ce59719b3..647a5976c9 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/MusicControlViewModel.kt @@ -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() { diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt index cf94522caa..fa19e1430f 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/model/music/MusicModel.kt @@ -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() + } + } } } }