[v630] fix: taxi乘客屏开启行程启动自驾后播放音乐不能自动播放下一首及UI处理问题;

This commit is contained in:
aibingbing
2024-03-26 13:54:01 +08:00
parent c8e79fd1a5
commit efd96a1e81
3 changed files with 15 additions and 3 deletions

View File

@@ -35,7 +35,7 @@ import kotlinx.android.synthetic.main.charter_p_music_playing.view.tv_tag
class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingViewCallback {
private val TAG = "ItineraryView"
private val TAG = "MusicPlayingView"
constructor(context: Context) : super(context)

View File

@@ -9,6 +9,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.animation.LinearInterpolator
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.bumptech.glide.Glide
import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.request.target.SimpleTarget
@@ -20,6 +22,7 @@ import com.mogo.och.common.module.manager.auditionmanager.AuditionManager
import com.mogo.och.common.module.manager.auditionmanager.MusicData
import com.mogo.och.common.module.manager.auditionmanager.PlayState
import com.mogo.och.taxi.passenger.common.R
import com.mogo.och.taxi.passenger.ui.music.playing.MusicPlayingViewModel
import kotlinx.android.synthetic.main.taxi_p_rightbar.view.aciv_playing_bg
import kotlinx.android.synthetic.main.taxi_p_rightbar.view.ck_music
import kotlinx.android.synthetic.main.taxi_p_rightbar.view.ck_setting
@@ -145,6 +148,15 @@ class RightBarView : ConstraintLayout, AuditionManager.MusicDataChangeListener {
override fun onAttachedToWindow() {
super.onAttachedToWindow()
// RightBarView启动的时候必须把MusicPlayingViewModel初始化了否则和AuditionManager的回掉及逻辑会有问题
try {
val musicPlayingViewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(MusicPlayingViewModel::class.java)
}
} catch (e: Exception) {
e.printStackTrace()
CallerLogger.e(TAG, e)
}
}
init {

View File

@@ -15,17 +15,17 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen
private var checkMusicData:MusicData?=null
init {
AuditionManager.addDataChangeListener(TAG,this)
}
fun setDistanceCallback(viewCallback: IMusicPlayingViewCallback) {
this.viewCallback = viewCallback
AuditionManager.addDataChangeListener(TAG,this)
}
override fun onCleared() {
super.onCleared()
this.viewCallback = null
AuditionManager.removeDataChangeListener(TAG)
}
fun setMusicData(musicData: MusicData?) {