From 4727b24d4b48b22f8fe89d253272eeb5a6e06d58 Mon Sep 17 00:00:00 2001 From: EmArrow Date: Wed, 10 Jul 2024 14:50:37 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0]=20=E6=97=A0=E4=BA=BA=E5=8C=96=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=85=A8=E6=81=AF=E8=B7=AF=E5=8F=A3=E5=92=8C=E8=B7=AF?= =?UTF-8?q?=E5=8F=A3=E6=A6=82=E8=A7=88=E7=9A=84=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=87=E6=8D=A2tab=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/bus_base_fragment.xml | 10 ----- .../layout/unmanned_taxi_base_fragment.xml | 18 ++++++++ .../res/layout/taxt_u_p_base_fragment.xml | 18 ++++++++ .../roadcross/RoadCrossCameraManager.kt | 12 +++++- .../core/function/view/RoadCrossRoamView.kt | 42 +++++++++++++++++-- .../api/hmi/view/IViewControlListener.kt | 4 ++ .../CallerHmiViewControlListenerManager.kt | 7 ++++ .../call/msgbox/CallerMsgBoxManager.kt | 4 +- .../map/overlay/MoGoOverlayManagerImpl.kt | 1 - 9 files changed, 97 insertions(+), 19 deletions(-) diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index ba88783b21..ef1063f4fc 100644 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -117,16 +117,6 @@ app:layout_goneMarginEnd="40dp" app:layout_goneMarginTop="@dimen/dp_236" /> - - - + + + + + + + + + + + + @@ -51,6 +60,15 @@ class RoadCrossRoamView @JvmOverloads constructor( private var rotationAnim: ObjectAnimator? = null private var lightMode = CallerSkinModeListenerManager.getMode() == 1 + private val handler = object : Handler(Looper.getMainLooper()) { + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + if (msg.what == MSG_HIDE_VIEW) { + detachView() + } + } + } + init { val res = if (lightMode) { R.layout.view_road_cross_roam_light @@ -75,9 +93,17 @@ class RoadCrossRoamView @JvmOverloads constructor( } } + override fun mainPageViewVisible(v: Int) { + super.mainPageViewVisible(v) + if (v == View.GONE && this.visibility == View.VISIBLE) { + detachView() + } + } + override fun onAttachedToWindow() { super.onAttachedToWindow() CallerMapRoadListenerManager.addListener(TAG, this) + CallerHmiViewControlListenerManager.addListener(TAG, this) } private fun updateView(state: Boolean) { @@ -93,11 +119,11 @@ class RoadCrossRoamView @JvmOverloads constructor( override fun onStopLineInfo(info: StopLine) { super.onStopLineInfo(info) - if(info.distance == 0.0 || info.distance > 200){ + if (info.distance == 0.0 || info.distance > 200) { CallerLogger.d("$M_MAP$TAG", "showState return , distance is ${info.distance}") return } - showState = info.distance <= 200 && info.distance > 100 + showState = info.distance in 110.0..200.0 } private fun attachView() { @@ -115,7 +141,10 @@ class RoadCrossRoamView @JvmOverloads constructor( mapRoamView.openRoam() //播放语音 val dis = CallerMapRoadListenerManager.getStopLineDistance()?.toInt() ?: 0 - AIAssist.getInstance(context).speakTTSVoice("前方${dis}米将通过路口,蘑菇为您提供路口全息影像,助力出行") + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + AIAssist.getInstance(context) + .speakTTSVoice("前方${dis}米将通过路口,蘑菇为您提供路口全息影像,助力出行") + } lvRoadCrossRoamTip.adapter = RoadCrossRoamListAdapter(context, lightMode) // 创建横向移动的动画 if (animator == null) { @@ -145,12 +174,16 @@ class RoadCrossRoamView @JvmOverloads constructor( } else { tvRoadRoamTitle.setTextColor(context.getColor(R.color.white)) } + handler.sendEmptyMessageDelayed(MSG_HIDE_VIEW, MSG_HIDE_VIEW_TIME) } private fun detachView() { if (this.visibility == View.GONE) { return } + if(handler.hasMessages(MSG_HIDE_VIEW)){ + handler.removeMessages(MSG_HIDE_VIEW) + } mapRoamView.closeRoam() mapRoamView.visibility = View.GONE CallerMapIdentifyManager.roam = Pair("", false) @@ -169,6 +202,7 @@ class RoadCrossRoamView @JvmOverloads constructor( ivZhiRoadRoamView.clearAnimation() } CallerMapRoadListenerManager.removeListener(TAG) + CallerHmiViewControlListenerManager.removeListener(TAG) } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt index bd06018d0a..0cd7fb81c2 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt @@ -16,6 +16,10 @@ interface IViewControlListener { } + fun mainPageViewVisible(v:Int){ + + } + /** --------- StatusBar --------- **/ /** * 设置状态栏暗夜或明亮模式 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt index e1f0b3a2b2..b7c75a371b 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiViewControlListenerManager.kt @@ -20,6 +20,13 @@ object CallerHmiViewControlListenerManager : CallerBase() M_LISTENERS[tag]?.visible(v) } + fun invokeMainPageViewVisible(v: Int) { + M_LISTENERS.forEach { + val listener = it.value + listener.mainPageViewVisible(v) + } + } + fun setStatusBarDarkOrLight(tag: String, light: Boolean) { M_LISTENERS[tag]?.setStatusBarDarkOrLight(light) } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt index 0ee40a2d7e..2124075422 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt @@ -26,14 +26,14 @@ object CallerMsgBoxManager { */ fun saveMsgBox(bean: MsgBoxBean) { CallerTrace.write(TAG,bean) - providerApi?.saveMsg(bean) + providerApi?.saveMsg(bean) //todo emArrow test } /** * 存储含有pb的数据到消息盒子(区别与上述方法中的trace write) */ fun saveMsgBoxHasPB(bean: MsgBoxBean){ - providerApi?.saveMsg(bean) + providerApi?.saveMsg(bean) //todo emArrow test } /** diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt index 9ec324879b..0854fd3185 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/overlay/MoGoOverlayManagerImpl.kt @@ -5,7 +5,6 @@ import android.view.View import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.utilcode.util.* -import com.mogo.map.MogoMap import com.mogo.map.overlay.point.Point.Options import com.mogo.map.MogoMap.Companion.mapInstance import com.mogo.map.overlay.core.*