From 3a9d6e702aad1f22fc89a1b2706552586b61b1e8 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 20 Mar 2024 20:20:16 +0800 Subject: [PATCH] =?UTF-8?q?[6.3.0]=20[=E5=8C=85=E8=BD=A6=E9=9F=B3=E4=B9=90?= =?UTF-8?q?=20=E9=83=A8=E5=88=86=E9=97=AE=E9=A2=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/charter/passenger/model/MusicModel.kt | 13 +++++++++++++ .../ui/music/list/MusicListItemAdapter.kt | 13 +++++++++++++ .../passenger/ui/music/list/MusicListView.kt | 5 +++++ .../ui/music/list/MusicListViewModel.kt | 7 +++++++ .../ui/music/playing/MusicPlayingView.kt | 16 +++++++++++++++- .../ui/music/playing/MusicPlayingViewModel.kt | 11 ++++++++++- .../drawable/charter_p_music_seekbar_thumb.xml | 3 +++ .../res/layout/charter_p_music_playing.xml | 3 ++- .../ui/music/playing/MusicPlayingViewModel.kt | 15 +++++++++++---- .../src/main/java/com/mogo/tts/pad/ZhiTTS.java | 18 +++++++++++++++++- 10 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 OCH/charter/passenger/src/main/res/drawable/charter_p_music_seekbar_thumb.xml 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 index cf9cc4d332..bfbbf2244c 100644 --- 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 @@ -5,6 +5,7 @@ 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.manager.auditionmanager.PlayState import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable @@ -27,6 +28,12 @@ object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener { CharterPassengerModel.getCurrentOrderInfo()?.let { RxUtils.disposeSubscribe(stopMusicDisposable) SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) + AuditionManager.musicList.forEach {music-> + if(music.state==PlayState.Pause){ + AuditionManager.toggle(music) + return + } + } if(!AuditionManager.isPlaying()) { AuditionManager.playFirst() } @@ -36,6 +43,12 @@ object MusicModel : IMoGoAutopilotStatusListener, IOrderStatusChangeListener { if (it.orderNo != string) { RxUtils.disposeSubscribe(stopMusicDisposable) SharedPrefsMgr.getInstance().putString(startMusicWithOrderKey, it.orderNo) + AuditionManager.musicList.forEach {music-> + if(music.state==PlayState.Pause){ + AuditionManager.toggle(music) + return + } + } if(!AuditionManager.isPlaying()) { AuditionManager.playFirst() } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt index a06d0d941f..570ef5f028 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListItemAdapter.kt @@ -114,6 +114,19 @@ class MusicListItemAdapter( } } + fun setSelect(nextMusicData: MusicData, preMusicData: MusicData?) { + dataList.forEachIndexed { index, musicDataIn -> + if(musicDataIn.id==nextMusicData.id){ + musicDataIn.select = true + notifyItemChanged(index,0) + } + if(musicDataIn.id == preMusicData?.id){ + musicDataIn.select = false + notifyItemChanged(index,0) + } + } + } + inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) { var musicName: TextView var tvTag: TextView diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt index ee326654b2..a3144ae018 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListView.kt @@ -42,6 +42,7 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb val viewModel = findViewTreeViewModelStoreOwner()?.let { ViewModelProvider(it).get(MusicListViewModel::class.java) } + CallerLogger.d(TAG,viewModel.toString()) viewModel?.setDistanceCallback(this) } @@ -68,6 +69,10 @@ class MusicListView : ConstraintLayout, MusicListViewModel.IMusicListViewCaLillb CallerLogger.d(TAG,"${Thread.currentThread().name}----更新数据${oldData}-----${musicData}") } + override fun upDateSelectMusic(nextMusicData: MusicData, preMusicData: MusicData?) { + lineAdapter.setSelect(nextMusicData,preMusicData) + } + override fun clickItem(musicData: MusicData,position: Int) { // 通知主页面去显示详情 this.checkListener?.checkItem(musicData) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt index ec00328ea4..e88f40c48c 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/list/MusicListViewModel.kt @@ -33,6 +33,7 @@ class MusicListViewModel : ViewModel(), fun addAllData(data:MutableList) fun addOneData(it: MusicData) fun updateMusicData(oldData: MusicData?,musicData: MusicData) + fun upDateSelectMusic(nextMusicData: MusicData, preMusicData: MusicData?) } override fun addOneData(it: MusicData) { @@ -54,4 +55,10 @@ class MusicListViewModel : ViewModel(), viewCallback?.updateMusicData(musicData, musicData) }, UiThreadHandler.MODE.QUEUE) } + + fun selectMusic(currentMusicData: MusicData, preMusicData: MusicData?) { + UiThreadHandler.post({ + viewCallback?.upDateSelectMusic(currentMusicData,preMusicData) + }, UiThreadHandler.MODE.QUEUE) + } } \ No newline at end of file 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 a982c8d708..17b959847c 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 @@ -13,9 +13,11 @@ import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.bumptech.glide.Glide import com.bumptech.glide.request.RequestOptions +import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TimeTransformUtils import com.mogo.och.charter.passenger.R +import com.mogo.och.charter.passenger.ui.music.list.MusicListViewModel import com.mogo.och.common.module.manager.auditionmanager.MusicData import com.mogo.och.common.module.manager.auditionmanager.PlayState import com.mogo.och.common.module.utils.DateTimeUtil @@ -44,6 +46,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) private var viewModel: MusicPlayingViewModel?=null + private var viewListModel: MusicListViewModel?=null private var animator:ObjectAnimator?=null @@ -52,7 +55,9 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi private fun initView() { LayoutInflater.from(context).inflate(R.layout.charter_p_music_playing, this, true) - + setOnClickListener { + CallerLogger.d(TAG,"-----------") + } iv_toggle.setOnClickListener { viewModel?.toggle() } @@ -62,6 +67,7 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi iv_show_next.setOnClickListener { viewModel?.showNextMusic() } + sb_musuc_progess.thumb.mutate().alpha = 0 sb_musuc_progess.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{ var seekToProgress = 0 override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { @@ -93,6 +99,10 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi viewModel = findViewTreeViewModelStoreOwner()?.let { ViewModelProvider(it).get(MusicPlayingViewModel::class.java) } + viewListModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(MusicListViewModel::class.java) + } + CallerLogger.d("MusicListView",viewListModel.toString()) viewModel?.setDistanceCallback(this) } @@ -183,6 +193,10 @@ class MusicPlayingView : ConstraintLayout, MusicPlayingViewModel.IMusicPlayingVi tv_playing_during.text = TimeTransformUtils.stringForTime(duration.toInt()) } + override fun setSelect(currentMusicData: MusicData,preMusicData: MusicData?) { + viewListModel?.selectMusic(currentMusicData,preMusicData) + } + fun listenerPlaying(){ } diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt index 37979f592d..aded9fbd34 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/music/playing/MusicPlayingViewModel.kt @@ -56,7 +56,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen checkMusicData?.let { val playing = AuditionManager.isPlaying() val nextMusicData = AuditionManager.getPreMusicData(it) + val preTempMusic = checkMusicData setMusicData(nextMusicData) + viewCallback?.setSelect(nextMusicData,preTempMusic) if(playing){ AuditionManager.play(nextMusicData) } @@ -67,7 +69,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen checkMusicData?.let { val playing = AuditionManager.isPlaying() val nextMusicData = AuditionManager.getNextMusicData(it) + val preTempMusic = checkMusicData setMusicData(nextMusicData) + viewCallback?.setSelect(nextMusicData,preTempMusic) if(playing){ AuditionManager.play(nextMusicData) } @@ -78,6 +82,7 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen fun setViewData(musicData: MusicData) fun setPlayOrpause(it: MusicData) fun setProgress(currentPlay: Long, duration: Long) + fun setSelect(currentMusicData: MusicData,preMusicData: MusicData?) } override fun updateState(oldData:MusicData?,musicData: MusicData) { @@ -109,8 +114,12 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen viewCallback?.setPlayOrpause(it) } } + val nextMusicData = AuditionManager.getNextMusicData(it) + val preTempMusic = checkMusicData + setMusicData(nextMusicData) + viewCallback?.setSelect(nextMusicData,preTempMusic) + AuditionManager.play(nextMusicData) } - showNextMusic() } fun seekTo(progress: Int) { diff --git a/OCH/charter/passenger/src/main/res/drawable/charter_p_music_seekbar_thumb.xml b/OCH/charter/passenger/src/main/res/drawable/charter_p_music_seekbar_thumb.xml new file mode 100644 index 0000000000..6ba4b229f3 --- /dev/null +++ b/OCH/charter/passenger/src/main/res/drawable/charter_p_music_seekbar_thumb.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/res/layout/charter_p_music_playing.xml b/OCH/charter/passenger/src/main/res/layout/charter_p_music_playing.xml index 8c528e1aa7..1400d33495 100644 --- a/OCH/charter/passenger/src/main/res/layout/charter_p_music_playing.xml +++ b/OCH/charter/passenger/src/main/res/layout/charter_p_music_playing.xml @@ -78,7 +78,8 @@ android:paddingStart="@dimen/dp_0" android:paddingEnd="@dimen/dp_0" android:id="@+id/sb_musuc_progess" - android:thumb="@null" + android:thumb="@drawable/charter_p_music_seekbar_thumb" + android:duplicateParentState="true" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_author" 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 742efccef3..1e4410dbf5 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 @@ -63,13 +63,19 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen } } + fun play(){ + checkMusicData?.let { + AuditionManager.play(it) + } + } + fun showPreMusic() { checkMusicData?.let { val playing = AuditionManager.isPlaying() val nextMusicData = AuditionManager.getPreMusicData(it) setMusicData(nextMusicData) if(playing){ - toggle() + play() } } } @@ -80,7 +86,7 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen val nextMusicData = AuditionManager.getNextMusicData(it) setMusicData(nextMusicData) if(playing){ - toggle() + play() } } } @@ -121,8 +127,9 @@ class MusicPlayingViewModel : ViewModel(), AuditionManager.MusicDataChangeListen } } } - showNextMusic() - toggle() + val nextMusicData = AuditionManager.getNextMusicData(musicData) + setMusicData(nextMusicData) + play() } fun seekTo(progress: Int) { diff --git a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java index 8e92540aec..274311a6ee 100644 --- a/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java +++ b/tts/tts-zhi/src/main/java/com/mogo/tts/pad/ZhiTTS.java @@ -5,6 +5,7 @@ import android.os.Build; import android.os.IBinder; import android.os.RemoteException; import android.provider.Settings; +import android.util.Log; import androidx.annotation.MainThread; @@ -19,6 +20,7 @@ import com.mogo.tts.base.MultiLangTtsEntity; import com.mogo.tts.base.PreemptType; import com.mogo.tts.base.zhi.AvatarManager; import com.mogo.tts.base.zhi.IActionCallback; +import com.mogo.xiaozhi.sdk.base.BaseManager; import com.mogo.xiaozhi.sdk.engine.DMStatusListener; import com.mogo.xiaozhi.sdk.engine.RecorderDMManager; import com.mogo.xiaozhi.sdk.engine.tts.AILocalTTS; @@ -46,6 +48,8 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener { private AtomicBoolean initStatus = new AtomicBoolean(false); + private IGlobalTtsCallback mGlobalTtsCallback = null; + public void release() { CallerLogger.d(TAG, "release"); } @@ -87,6 +91,18 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener { CallerLogger.d(TAG, "RecorderDMManager---onError---code"+code+"--info"+info); } }); + ZDTtsManager.getInstance().setCallback(new BaseManager.ActionCallback() { + + @Override + public String onActionCallback(String callback, String data) { + if ("mos.action.tts.status".equals(callback)) { + CallerLogger.d(TAG, "callback:"+callback+"-----data"+data); + return ""; + } else { + return null; + } + } + }); } @@ -268,7 +284,7 @@ public class ZhiTTS implements IMogoTTS, OnTtsListener { @Override public void registerTtsListener(IGlobalTtsCallback callback) { - + mGlobalTtsCallback = callback; }