diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/ZhiView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/ZhiView.kt index e3c3144fc9..aa4f2c42bd 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/ZhiView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/ZhiView.kt @@ -10,7 +10,6 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.VoiceMsg import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.main.MainPresenter -import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.permissions.PermissionsDialogUtils @@ -24,6 +23,7 @@ import com.mogo.tts.base.zhi.AsrTextBean import com.mogo.tts.base.zhi.AvatarManager import com.mogo.tts.base.zhi.CallbackWidget import com.mogo.tts.base.zhi.ZhiRecordWinUi +import java.util.concurrent.atomic.AtomicBoolean class ZhiView @JvmOverloads constructor( context: Context, @@ -40,6 +40,7 @@ class ZhiView @JvmOverloads constructor( @Volatile private var status = ZhiRecordWinUi.RecordStatus.STATUS_SILENCE private var animalState = AnimalState.Normal + private val enableZhi = AtomicBoolean(true) init { val xiaozhiNormal = currentAnim.getData(R.array.xiaozhi_normal) val xiaozhiThink = currentAnim.getData(R.array.xiaozhi_think) @@ -111,7 +112,9 @@ class ZhiView @JvmOverloads constructor( return@setOnClickListener } if (PermissionUtil.checkPermission(context,Manifest.permission.RECORD_AUDIO)) { - AvatarManager.wakeupXiaoZhi() + if(enableZhi.get()) { + AvatarManager.wakeupXiaoZhi() + } }else{ //申请悬浮窗权限 val shouldShowRequestPermissionRationale = ActivityUtils.getTopActivity() @@ -130,6 +133,16 @@ class ZhiView @JvmOverloads constructor( } } + fun setZhiEnable(enable:Boolean){ + if(enable){// 可用 + enableZhi.set(true) + AvatarManager.enableXiaoZhi(false) + }else{// 不可用 + enableZhi.set(false) + AvatarManager.enableXiaoZhi(true) + } + } + override fun onWindowFocusChanged(hasWindowFocus: Boolean) { super.onWindowFocusChanged(hasWindowFocus) CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "焦点与否:${hasWindowFocus}") 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 da515511b4..1bcf7aa3ca 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 @@ -16,23 +16,18 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_TAXI_P import com.mogo.eagle.core.utilcode.util.DeviceUtils -import com.mogo.eagle.core.utilcode.util.OverlayViewUtils import com.mogo.map.listener.IMogoMapListener import com.mogo.map.uicontroller.VisualAngleMode 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.callback.ITaxiPassengerCommonValueCallback import com.mogo.och.taxi.passenger.presenter.BaseTaxiPassengerPresenter import com.mogo.och.taxi.passenger.ui.arrived.ArrivedView import com.mogo.och.taxi.passenger.ui.bottom.BottomBar -import com.mogo.och.taxi.passenger.ui.check.TaxiPassengerCheckView import com.mogo.och.taxi.passenger.ui.checkstartautopilot.ChekAndStartAutopilotView -import com.mogo.och.taxi.passenger.ui.startautopilot.StartAutopilotView import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.main.taxi_p_base_fragment.* -import java.lang.ref.WeakReference /** * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 @@ -159,6 +154,9 @@ class TaxiPassengerBaseFragment() : CallerLogger.d(M_TAXI_P + TAG, "arrived ${show}") if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ showOrHide(true,"到达目的地页面隐藏") + aciv_xiaozhi_normal.setZhiEnable(true) + }else{ + aciv_xiaozhi_normal.setZhiEnable(false) } } } @@ -167,6 +165,9 @@ class TaxiPassengerBaseFragment() : CallerLogger.d(M_TAXI_P + TAG, "check and startAutopilot ${show}") if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ showOrHide(true,"手机号check+startautopilot页面隐藏") + aciv_xiaozhi_normal.setZhiEnable(true) + }else{ + aciv_xiaozhi_normal.setZhiEnable(false) } } } diff --git a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt index 8d6af1db62..8d3511426d 100644 --- a/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt +++ b/OCH/taxi/unmanned-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.kt @@ -1,7 +1,6 @@ package com.mogo.och.taxi.passenger.ui import android.animation.Animator -import android.animation.AnimatorListenerAdapter import android.animation.AnimatorSet import android.animation.ObjectAnimator import android.annotation.SuppressLint @@ -20,7 +19,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ import com.mogo.eagle.core.utilcode.util.DeviceUtils import com.mogo.map.listener.IMogoMapListener import com.mogo.map.uicontroller.VisualAngleMode -import com.mogo.och.common.module.utils.FrameAnimatorContainer import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.taxi.passenger.R @@ -30,6 +28,7 @@ import com.mogo.och.taxi.passenger.ui.bottom.BottomBar import com.mogo.och.taxi.passenger.ui.checkstartautopilot.ChekAndStartAutopilotView import com.mogo.och.taxi.passenger.ui.statusview.StatusBarView import io.reactivex.disposables.Disposable +import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.aciv_xiaozhi_normal import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.arrivedView import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.bottom import kotlinx.android.synthetic.main.taxt_u_p_base_fragment.chekAndStartAutopilotView @@ -57,8 +56,6 @@ class TaxiPassengerBaseFragment() : MvpFragment(), IMogoMapListener, TaxiPassengerTaxiView { - private var createProgressDialogAnim: FrameAnimatorContainer?=null - private var tipXiaoZhiDelay: Disposable?=null private var statusBarView: StatusBarView? = null @@ -90,12 +87,6 @@ class TaxiPassengerBaseFragment() : } } -// createProgressDialogAnim = FrameAnimatorContainer(R.array.xiaozhi_normal, 20,aciv_xiaozhi_normal) -// createProgressDialogAnim?.setOnAnimStopListener(object : FrameAnimatorContainer.OnAnimationStoppedListener{ -// override fun AnimationStopped() { -// CallerLogger.d(M_TAXI_P + TAG, "动画暂停") -// } -// }) } private fun initListener() { @@ -182,6 +173,9 @@ class TaxiPassengerBaseFragment() : CallerLogger.d(M_TAXI_P + TAG, "arrived ${show}") if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ showOrHide(true) + aciv_xiaozhi_normal.setZhiEnable(true) + }else{ + aciv_xiaozhi_normal.setZhiEnable(false) } } } @@ -190,16 +184,17 @@ class TaxiPassengerBaseFragment() : CallerLogger.d(M_TAXI_P + TAG, "check and startAutopilot ${show}") if(arrivedView.visibility==View.GONE&&chekAndStartAutopilotView.visibility==View.GONE){ showOrHide(true) + aciv_xiaozhi_normal.setZhiEnable(true) + }else{ + aciv_xiaozhi_normal.setZhiEnable(false) } } } view?.viewTreeObserver?.addOnWindowFocusChangeListener { if(it){ CallerLogger.d(M_TAXI_P + TAG, "windows获取焦点") - createProgressDialogAnim?.start() }else{ CallerLogger.d(M_TAXI_P + TAG, "window失去焦点") - createProgressDialogAnim?.stop() } } } @@ -209,8 +204,6 @@ class TaxiPassengerBaseFragment() : mapBizView!!.onResume() overMapView.onResume() CallerLogger.d(M_TAXI_P + TAG, "onResume") - - createProgressDialogAnim?.start() } override fun createPresenter(): BaseTaxiPassengerPresenter { @@ -232,7 +225,6 @@ class TaxiPassengerBaseFragment() : mapBizView!!.onPause() overMapView?.onPause() CallerLogger.d(M_TAXI_P + TAG, "onPause") - createProgressDialogAnim?.stop() } override fun onDestroyView() { @@ -314,7 +306,6 @@ class TaxiPassengerBaseFragment() : } 2 -> { chekAndStartAutopilotView.aniCheckAndStartAutopilot(false,2) - showOrHide(true) chekAndStartAutopilotView.resetCheckView() } else -> {}