diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt index b40641a452..1059480c1b 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingView.kt @@ -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) diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/RightBarView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/RightBarView.kt index 8fca708bb8..58ba72db1f 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/RightBarView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/RightBarView.kt @@ -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 { diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt index 9ad878e2e2..5e7e0814dc 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -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?) {