From a339ccfb1dbf6fae9c80c0e9aa19f191c35cd85c Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 20 Apr 2023 17:49:04 +0800 Subject: [PATCH] =?UTF-8?q?[dev=5Frobotaxi-d=5F230412=5F2.15.0]=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=AE=A2=E5=8D=95=E5=9B=9E=E8=B0=83+=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=B6=88=E6=81=AF=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/msgbox/DriverMsgBoxBubbleView.kt | 32 ++++++++++++++++--- .../core/function/api/order/IOrderListener.kt | 15 +++++++++ .../call/order/CallerOrderListenerManager.kt | 21 ++++++++++++ 3 files changed, 63 insertions(+), 5 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/order/IOrderListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/order/CallerOrderListenerManager.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index 28c772f1db..36c6ba4a29 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -8,13 +8,16 @@ import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxCountDownBean import com.mogo.eagle.core.data.msgbox.MsgCategory import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.order.IOrderListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.DriverMsgBoxBubbleAdapter import com.mogo.eagle.core.function.msgbox.MsgBoxConfig @@ -30,7 +33,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener,IOrderListener { init { LayoutInflater.from(context).inflate(R.layout.layout_driver_msg_box_bubble, this, true) @@ -42,6 +45,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( private val TAG = "DriverMsgBoxBubbleView" private val dataList :ArrayList = ArrayList() private var isShowData = true + private var isShowSummary = false //是否展示汇总消息 private fun initView() { val linearLayoutManager = LinearLayoutManager(context) @@ -92,10 +96,15 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( } else if(category == MsgCategory.SYS_INFO){ //todo 过滤MAP系统异常报警 } else{ - clMsgBubbleLayout.visibility = View.VISIBLE - val msgBoxCountDownBean = MsgBoxCountDownBean(msgBoxBean) - dataList.add(msgBoxCountDownBean) - driverMsgBoxBubbleAdapter?.setData(dataList) + if(msgBoxBean.sourceType == DataSourceType.SUMMARY){ + //在一次订单中汇总消息只展示一次 + if(isShowSummary){ + showData(msgBoxBean) + isShowSummary = false + } + }else{ + showData(msgBoxBean) + } } } }, UiThreadHandler.MODE.QUEUE) @@ -104,11 +113,24 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() CallerMsgBoxListenerManager.addListener(TAG,this) + CallerOrderListenerManager.addListener(TAG,this) } override fun onDetachedFromWindow() { super.onDetachedFromWindow() CallerMsgBoxListenerManager.removeListener(TAG) + CallerOrderListenerManager.removeListener(TAG) + } + + override fun onUpdateOrderStatus(inOrder: Boolean) { + isShowSummary = inOrder + } + + private fun showData(msgBoxBean: MsgBoxBean){ + clMsgBubbleLayout.visibility = View.VISIBLE + val msgBoxCountDownBean = MsgBoxCountDownBean(msgBoxBean) + dataList.add(msgBoxCountDownBean) + driverMsgBoxBubbleAdapter?.setData(dataList) } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/order/IOrderListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/order/IOrderListener.kt new file mode 100644 index 0000000000..8ad2d1e052 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/order/IOrderListener.kt @@ -0,0 +1,15 @@ +package com.mogo.eagle.core.function.api.order + +/** + * @author XuXinChao + * @date 2023/4/20 + * 订单事件监听回调 + */ +interface IOrderListener { + + /** + * 通知订单状态 + * @param inOrder true:开始订单;false:订单结束 + */ + fun onUpdateOrderStatus(inOrder: Boolean) +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/order/CallerOrderListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/order/CallerOrderListenerManager.kt new file mode 100644 index 0000000000..7b1e5ea234 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/order/CallerOrderListenerManager.kt @@ -0,0 +1,21 @@ +package com.mogo.eagle.core.function.call.order + +import com.mogo.eagle.core.function.api.order.IOrderListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * @author XuXinChao + * @date 2023/4/20 + * 订单监听管理 + */ +object CallerOrderListenerManager: CallerBase() { + + fun invokeOrderStatus(inOrder: Boolean){ + M_LISTENERS.forEach{ + val tag = it.key + val listener = it.value + listener.onUpdateOrderStatus(inOrder) + } + } + +} \ No newline at end of file