From efd96a1e8189745939375a72d40cc6a1e2cc6e72 Mon Sep 17 00:00:00 2001 From: aibingbing Date: Tue, 26 Mar 2024 13:54:01 +0800 Subject: [PATCH] =?UTF-8?q?[v630]=20fix:=20taxi=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E8=A1=8C=E7=A8=8B=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E9=A9=BE=E5=90=8E=E6=92=AD=E6=94=BE=E9=9F=B3=E4=B9=90=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E8=87=AA=E5=8A=A8=E6=92=AD=E6=94=BE=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E9=A6=96=E5=8F=8AUI=E5=A4=84=E7=90=86=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/music/playing/MusicPlayingView.kt | 2 +- .../mogo/och/taxi/passenger/ui/bar/RightBarView.kt | 12 ++++++++++++ .../ui/music/playing/MusicPlayingViewModel.kt | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) 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?) {