Merge branch 'dev_robotaxi-d_240227_6.3.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240227_6.3.0

This commit is contained in:
xinfengkun
2024-03-11 14:25:06 +08:00
8 changed files with 144 additions and 29 deletions

View File

@@ -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)
}
}
}

View File

@@ -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)

View File

@@ -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) {

View File

@@ -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
}
}
}

View File

@@ -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)
}
}

View File

@@ -257,6 +257,7 @@
<!--气泡态消息盒子-->
<com.mogo.eagle.core.function.hmi.ui.msgbox.PassengerMsgBoxBubbleView
android:id="@+id/pmbb_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_50"
@@ -264,6 +265,13 @@
app:layout_constraintBottom_toTopOf="@id/aciv_xiaozhi_normal"
app:layout_constraintEnd_toEndOf="parent" />
<com.mogo.och.taxi.passenger.ui.evaluate.EvaluateView
app:layout_constraintBottom_toTopOf="@+id/pmbb_info"
app:layout_constraintEnd_toEndOf="@+id/aciv_xiaozhi_normal"
android:layout_marginEnd="@dimen/dp_50"
android:layout_width="@dimen/dp_621"
android:layout_height="wrap_content"/>
<com.mogo.och.taxi.passenger.ui.debug.DebugView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -83,7 +83,7 @@
android:layout_width="@dimen/dp_314"
android:layout_height="@dimen/dp_140"
android:src="@drawable/taxt_p_greate_text"
android:visibility="gone"
android:alpha="0"
android:layout_marginStart="@dimen/dp_81"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@@ -8,7 +8,7 @@
<TextView
android:id="@+id/tv_music_title"
tools:text="音乐列表"
android:text="音乐列表"
android:textColor="@color/taxi_p_253A5A"
android:textSize="@dimen/dp_32"
app:layout_constraintTop_toTopOf="parent"