From 7fc2242f13025c63aae9e08e5892bb9af746ff98 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 11 Mar 2024 11:46:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[6.3.0]=20[=E8=AF=84=E8=AE=BA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/xiaozhimanager/ZhiViewmanager.kt | 48 +++++++++++------- .../passenger/ui/evaluate/EvaluateView.kt | 27 ++++++++-- .../ui/evaluate/EvaluateViewModel.kt | 50 +++++++++++++++++++ .../main/res/layout/taxi_p_base_fragment.xml | 8 +++ .../src/main/res/layout/taxi_p_evaluate.xml | 2 +- 5 files changed, 114 insertions(+), 21 deletions(-) create mode 100644 OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt index cbc5d9cfe8..a5cd6fd389 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/xiaozhimanager/ZhiViewmanager.kt @@ -11,14 +11,14 @@ object ZhiViewmanager { private var iViewCallbacks: IViewCallback? = null - val normalAni = AniData(1, R.array.xiaozhi_normal, false, true,true,12) - val listenerAni = AniData(2,R.array.xiaozhi_think,false,true,true,12) + val normalAni = AniData(1, R.array.xiaozhi_normal, false, true,12) + val listenerAni = AniData(2,R.array.xiaozhi_think,false,true,12) - val listener2Normal = AniData(3, R.array.xiaozhi_think_normal, true, false,true,24) - val normal2Listener = AniData(4, R.array.xiaozhi_think_normal, true, true,true,24) + val listener2Normal = AniData(3, R.array.xiaozhi_think_normal, true, false,24) + val normal2Listener = AniData(4, R.array.xiaozhi_think_normal, true, true,24) - val beltAni = AniData(5, R.array.xiaozhi_belt, false, true,true,12) - val loveAni = AniData(6, R.array.xiaozhi_love, false, true,true,12) + val beltAni = AniData(5, R.array.xiaozhi_belt, false, true,12) + val loveAni = AniData(6, R.array.xiaozhi_love, false, true,12) private var initAni = normalAni private var currentAni: AniData? = null @@ -66,7 +66,7 @@ object ZhiViewmanager { iViewCallbacks = null } - fun showListeningAni(aniData: AniData) { + fun showListeningAni(aniData: AniData,immediately:Boolean=true) { var lastAni = readQueue.peek() if(lastAni==null){ lastAni = currentAni @@ -83,9 +83,14 @@ object ZhiViewmanager { readQueue.offer(aniData) CallerLogger.d(TAG, "排队播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") }else{ - iViewCallbacks?.changeAniImmediately(aniData) - currentAni = aniData - CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + if(immediately){ + iViewCallbacks?.changeAniImmediately(aniData) + currentAni = aniData + CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + }else{ + readQueue.offer(aniData) + CallerLogger.d(TAG, "排队播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + } } } 2 -> {// 正在播放倾听中动画 @@ -96,16 +101,26 @@ object ZhiViewmanager { readQueue.offer(aniData) CallerLogger.d(TAG, "排队播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") }else{ - iViewCallbacks?.changeAniImmediately(aniData) - currentAni = aniData - CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + if(immediately){ + iViewCallbacks?.changeAniImmediately(aniData) + currentAni = aniData + CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + }else{ + readQueue.offer(aniData) + CallerLogger.d(TAG, "排队播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + } } } else -> { - iViewCallbacks?.changeAniImmediately(aniData) - currentAni = aniData - CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + if(immediately){ + iViewCallbacks?.changeAniImmediately(aniData) + currentAni = aniData + CallerLogger.d(TAG, "立刻播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + } else { + readQueue.offer(aniData) + CallerLogger.d(TAG, "排队播放${Thread.currentThread().name}--${aniData.id}-${readQueue.size}") + } } } @@ -128,7 +143,6 @@ object ZhiViewmanager { val aniArrayId: Int,// 动画序列号 val isOnce: Boolean,// true 只播一次 false 循环播放 val sequence: Boolean,// true 正向播放 false 倒着播放 - val immediately:Boolean, val fps:Int ) { var aniList = FrameAnimatorContainer.getData(aniArrayId) diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt index d51fb1a765..023585036b 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateView.kt @@ -7,19 +7,25 @@ import android.animation.ValueAnimator import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater +import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.och.common.module.manager.xiaozhimanager.ZhiViewmanager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.R +import com.mogo.och.taxi.passenger.ui.arrived.ArrivedViewModel +import com.mogo.och.taxi.passenger.ui.orderinfo.OrderInfoViewModel import kotlinx.android.synthetic.main.taxi_p_evaluate.view.iv_close import kotlinx.android.synthetic.main.taxi_p_evaluate.view.iv_evaluate_great import kotlinx.android.synthetic.main.taxi_p_evaluate.view.iv_evaluate_low import kotlinx.android.synthetic.main.taxi_p_evaluate.view.iv_taxt_p_greate_text -class EvaluateView : ConstraintLayout { +class EvaluateView : ConstraintLayout, EvaluateViewModel.EvaluateCallback { private val TAG = "EvaluateView" @@ -33,6 +39,8 @@ class EvaluateView : ConstraintLayout { private var isFirat = true + private lateinit var viewModel: EvaluateViewModel + private fun initView() { LayoutInflater.from(context).inflate(R.layout.taxi_p_evaluate, this, true) iv_evaluate_great.onClick { @@ -45,10 +53,12 @@ class EvaluateView : ConstraintLayout { VoiceNotice.showNotice("感谢您的认可,我们会再接再厉", AIAssist.LEVEL2) iv_taxt_p_greate_text.animate().alpha(1f).duration = 1000 // 小智爱心动作 + ZhiViewmanager.showListeningAni(ZhiViewmanager.loveAni) RxUtils.createSubscribe(3_000) { visibility = GONE - iv_taxt_p_greate_text.visibility = GONE + iv_taxt_p_greate_text.alpha = 0f // 小智回归默认动作 + ZhiViewmanager.showListeningAni(ZhiViewmanager.normalAni,false) } } }).duration = 1000 @@ -90,7 +100,10 @@ class EvaluateView : ConstraintLayout { override fun onAttachedToWindow() { super.onAttachedToWindow() - + val viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(EvaluateViewModel::class.java) + } + viewModel?.setViewCallback(this) } @@ -103,5 +116,13 @@ class EvaluateView : ConstraintLayout { } } + override fun showEvaluate(show: Boolean) { + if(show){ + visibility = VISIBLE + }else{ + visibility = GONE + } + } + } \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt new file mode 100644 index 0000000000..37325ac145 --- /dev/null +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/evaluate/EvaluateViewModel.kt @@ -0,0 +1,50 @@ +package com.mogo.och.taxi.passenger.ui.evaluate + +import androidx.lifecycle.ViewModel +import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.StringUtils +import com.mogo.och.common.module.manager.distancemamager.IDistanceListener +import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager +import com.mogo.och.taxi.passenger.model.TaxiPassengerModel + +class EvaluateViewModel : ViewModel(), IDistanceListener { + + private val TAG = EvaluateViewModel::class.java.simpleName + + private val orderShowEvaluate = "SHOWEVALUATE" + + private var viewCallback: EvaluateCallback? = null + + init { + TrajectoryAndDistanceManager.addDistanceListener(TAG, this) + } + + override fun distanceCallback(distance: Float) { + super.distanceCallback(distance) + if(distance<=500) { + TaxiPassengerModel.currentOCHOrder?.let { + val string = SharedPrefsMgr.getInstance().getString(orderShowEvaluate) + if (StringUtils.isEmpty(string) || !string.equals(it.orderNo)) { + this.viewCallback?.showEvaluate(true) + SharedPrefsMgr.getInstance().putString(orderShowEvaluate, it.orderNo) + } + } + } + + } + + fun setViewCallback(viewCallback: EvaluateCallback) { + this.viewCallback = viewCallback + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + } + + + interface EvaluateCallback { + fun showEvaluate(show: Boolean) + + } +} \ No newline at end of file diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index 3049fca12f..b8be0d3d2f 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -257,6 +257,7 @@ + + From a12e10f88cb3c302cbdc6c3b40ab6d9842fe04b1 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 11 Mar 2024 13:59:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[6.3.0]=20[=E8=AE=BE=E7=BD=AE=E5=92=8C?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=99=A8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manager/auditionmanager/Audition.kt | 15 ++++++++----- .../passenger/ui/TaxiPassengerBaseFragment.kt | 21 +++++++++++++++++-- .../src/main/res/layout/taxi_p_music_list.xml | 2 +- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt index 28894fe346..e95f6cd498 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/auditionmanager/Audition.kt @@ -38,12 +38,17 @@ object Audition: MediaPlayer.OnPreparedListener, override fun handleMessage(msg: Message) { super.handleMessage(msg) if (msg.what == 0) { - if (mediaPlayer != null && listener != null) { - val currentPosition = mediaPlayer!!.currentPosition - val duration = mediaPlayer!!.duration - listener!!.onCurrentPosition(currentPosition.toLong(), duration.toLong()) + try { + if (mediaPlayer != null && listener != null) { + val currentPosition = mediaPlayer!!.currentPosition + val duration = mediaPlayer!!.duration + listener!!.onCurrentPosition(currentPosition.toLong(), duration.toLong()) + } + sendEmptyMessageDelayed(0, 500) + }catch (e:Exception){ + e.printStackTrace() } - sendEmptyMessageDelayed(0, 500) + } } } diff --git a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 84da227d97..5a97fa57ca 100644 --- a/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -73,19 +73,36 @@ class TaxiPassengerBaseFragment() : } - private fun initListener() { + private fun settingAndMusicListener() { ck_setting.isChecked = false ck_setting_only.isChecked = false + ck_music.isChecked = false + ck_setting.setOnCheckedChangeListener { _, isChecked -> clSettingView.visibility = if(isChecked) View.VISIBLE else View.GONE + ck_setting_only.isChecked = isChecked + if(isChecked){ + ck_music.isChecked = false + } } ck_setting_only.setOnCheckedChangeListener { _, isChecked -> clSettingView.visibility = if(isChecked) View.VISIBLE else View.GONE + ck_setting.isChecked = isChecked + if(isChecked){ + ck_music.isChecked = false + } } - ck_music.isChecked = false ck_music.setOnCheckedChangeListener { _, isChecked -> mv_music_info.visibility = if(isChecked) View.VISIBLE else View.GONE + if(isChecked){ + ck_setting.isChecked = false + ck_setting_only.isChecked = false + } } + } + + private fun initListener() { + settingAndMusicListener() bottom.setOverMapApplyClick(object : BottomBar.ApplyClickLintener{ override fun onApplyClick(selectItem: BottomBar.SelectView) { when (selectItem) { diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_music_list.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_music_list.xml index bff83514c2..55b874ff7e 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_music_list.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_music_list.xml @@ -8,7 +8,7 @@