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:
@@ -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)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user