diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index 7732d44741..85bfb5aeb2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -257,10 +257,12 @@ class MoGoHmiFragment : MvpFragment(), viewDriverMsgBoxList.visibility = View.VISIBLE viewDriverMsgBoxList.notifyData() viewDriverMsgBoxBubble.visibility = View.GONE + viewDriverMsgBoxBubble.isShowData(false) CallerHmiManager.updateDriverMsgBoxTipView(false) }else{ viewDriverMsgBoxList.visibility = View.GONE viewDriverMsgBoxBubble.visibility = View.VISIBLE + viewDriverMsgBoxBubble.isShowData(true) } } @@ -269,9 +271,12 @@ class MoGoHmiFragment : MvpFragment(), viewPassengerMsgBoxList.visibility = View.VISIBLE viewPassengerMsgBoxBubble.visibility = View.GONE viewPassengerMsgBoxList.notifyData() + viewPassengerMsgBoxBubble.isShowData(false) + CallerHmiManager.updatePassengerMsgBoxTipView(false) }else{ viewPassengerMsgBoxList.visibility = View.GONE viewPassengerMsgBoxBubble.visibility = View.VISIBLE + viewPassengerMsgBoxBubble.isShowData(true) } } @@ -459,6 +464,14 @@ class MoGoHmiFragment : MvpFragment(), } } + override fun updatePassengerMsgBoxTipView(show: Boolean) { + if(show){ + MsgBoxPTipView.visibility = View.VISIBLE + }else{ + MsgBoxPTipView.visibility = View.GONE + } + } + /** * 设置 红绿灯 代理View */ 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 bc557a33ca..d033119f6f 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 @@ -46,6 +46,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( private val TAG = "DriverMsgBoxBubbleView" private val dataList :ArrayList = ArrayList() + private var isShowData = true private fun initView() { val linearLayoutManager = LinearLayoutManager(context) @@ -65,10 +66,16 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( rvBubbleList.layoutManager = linearLayoutManager } + /** + * 是否展示接收消息,消息盒子打开状态下不再展示气泡消息 + * @param show true 展示;false 不展示 + */ + fun isShowData(show: Boolean){ + isShowData = show + } override fun onDataChanged(category: MsgCategory, msgBoxBean: MsgBoxBean) { UiThreadHandler.post { - CallerHmiManager.updateDriverMsgBoxTipView(true) when (category) { MsgCategory.NOTICE -> { MsgBoxConfig.noticeList.add(msgBoxBean) @@ -80,13 +87,16 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( MsgBoxConfig.recordBagList.add(msgBoxBean) } } - if(category == MsgCategory.RECORD_BAG){ - //弹出被动录包弹窗 - CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean,context as Activity,true) - }else{ - rvBubbleList.visibility = View.VISIBLE - dataList.add(msgBoxBean) - driverMsgBoxBubbleAdapter?.setData(dataList) + if(isShowData){ + CallerHmiManager.updateDriverMsgBoxTipView(true) + if(category == MsgCategory.RECORD_BAG){ + //弹出被动录包弹窗 + CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean,context as Activity,true) + }else{ + rvBubbleList.visibility = View.VISIBLE + dataList.add(msgBoxBean) + driverMsgBoxBubbleAdapter?.setData(dataList) + } } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt index ea7f8bab64..0976bbc761 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt @@ -14,6 +14,7 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory import com.mogo.eagle.core.data.msgbox.OperationMsg import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxBubbleAdapter @@ -36,7 +37,9 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( private val TAG = "PassengerMsgBoxBubbleView" private val dataList :ArrayList = ArrayList() - var passengerMsgBoxBubbleAdapter: PassengerMsgBoxBubbleAdapter ?= null + private var passengerMsgBoxBubbleAdapter: PassengerMsgBoxBubbleAdapter ?= null + private var isShowData = true + init { LayoutInflater.from(context).inflate(R.layout.layout_passenger_msg_box_bubble, this, true) initView() @@ -52,14 +55,25 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( rvPassengerBubbleList.layoutManager = linearLayoutManager } + /** + * 是否展示接收消息,消息盒子打开状态下不再展示气泡消息 + * @param show true 展示;false 不展示 + */ + fun isShowData(show: Boolean){ + isShowData = show + } + override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { UiThreadHandler.post { if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU){ - dataList.add(msgBoxList) - passengerMsgBoxBubbleAdapter?.setData(dataList) MsgBoxConfig.noticeList.add(msgBoxList) + if(isShowData){ + CallerHmiManager.updatePassengerMsgBoxTipView(true) + dataList.add(msgBoxList) + passengerMsgBoxBubbleAdapter?.setData(dataList) + } } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 8e76cc3fdb..6b6cd3a740 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -107,6 +107,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada } holder.tvReportTimeNormal.text = "时间:${TimeUtils.millis2String(it[position].timestamp)}" holder.tvReportTimeOpen.text = "时间:${TimeUtils.millis2String(it[position].timestamp)}" + holder.tvReportTime.text =TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) var resultStr = "类型:" for (result in reportEntity.resultList){ resultStr = "${resultStr}${CallerAutoPilotManager.getReportResultDesc(result)}" @@ -114,6 +115,11 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada holder.tvReportTypeNormal.text = resultStr holder.tvReportTypeOpen.text = resultStr holder.tvReportReasonOpen.text = "原因:${reportEntity.msg}" + var actionStr = "" + for (action in reportEntity.actionsList){ + actionStr = "${actionStr}${CallerAutoPilotManager.getReportActionDesc(action)}" + } + holder.tvReportActionOpen.text = "建议操作:$actionStr" holder.tvStatusSelect.setOnClickListener { if(holder.tvReportLevelNormal.isVisible){ holder.tvStatusSelect.setCompoundDrawablesWithIntrinsicBounds(getDrawable(R.drawable.icon_msg_close),null,null,null) @@ -127,6 +133,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada holder.tvReportTimeOpen.visibility = View.VISIBLE holder.tvReportTypeOpen.visibility = View.VISIBLE holder.tvReportReasonOpen.visibility = View.VISIBLE + holder.tvReportActionOpen.visibility = View.VISIBLE }else{ holder.tvStatusSelect.setCompoundDrawablesWithIntrinsicBounds(getDrawable(R.drawable.icon_msg_open),null,null,null) holder.ivReportImageNormal.visibility = View.VISIBLE @@ -139,6 +146,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada holder.tvReportTimeOpen.visibility = View.GONE holder.tvReportTypeOpen.visibility = View.GONE holder.tvReportReasonOpen.visibility = View.GONE + holder.tvReportActionOpen.visibility = View.GONE } } } @@ -243,11 +251,13 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada var tvReportTimeNormal: TextView = itemView.findViewById(R.id.tvReportTimeNormal) var tvReportTypeNormal: TextView = itemView.findViewById(R.id.tvReportTypeNormal) var tvStatusSelect: TextView = itemView.findViewById(R.id.tvStatusSelect) + var tvReportTime: TextView = itemView.findViewById(R.id.tvReportTime) var ivReportImageOpen: ImageView = itemView.findViewById(R.id.ivReportImageOpen) var tvReportLevelOpen: TextView = itemView.findViewById(R.id.tvReportLevelOpen) var tvReportTimeOpen: TextView = itemView.findViewById(R.id.tvReportTimeOpen) var tvReportTypeOpen: TextView = itemView.findViewById(R.id.tvReportTypeOpen) var tvReportReasonOpen: TextView = itemView.findViewById(R.id.tvReportReasonOpen) + var tvReportActionOpen: TextView = itemView.findViewById(R.id.tvReportActionOpen) } //运营平台 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png new file mode 100644 index 0000000000..c901f3937b Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_p.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_p.png new file mode 100644 index 0000000000..2ae1744cea Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_p.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_p.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_p.xml new file mode 100644 index 0000000000..be20f0e722 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_p.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml index 1017310fd2..e1720c7921 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml @@ -182,7 +182,7 @@ app:layout_goneMarginTop="40dp" tools:visibility="gone" /> - + - - - + + + + + + + + + + + @@ -54,7 +54,7 @@ app:layout_constraintLeft_toLeftOf="@id/tvBubbleOperationTitle" app:layout_constraintRight_toRightOf="@id/tvBubbleOperationTime" app:layout_constraintTop_toBottomOf="@id/tvBubbleOperationTitle" - android:layout_marginTop="20px" + android:layout_marginTop="10px" android:gravity="start" android:maxLines="2" android:ellipsize="end" diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml index 51a11c2d5a..0b83bbd4c6 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml @@ -42,7 +42,7 @@ android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/tvBubbleReportTitle" app:layout_constraintLeft_toLeftOf="@id/tvBubbleReportTitle" - android:layout_marginTop="10px" + android:layout_marginTop="5px" android:textColor="#B3FFFFFF" android:textSize="28px" /> @@ -53,7 +53,7 @@ android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/tvBubbleReportTime" app:layout_constraintLeft_toLeftOf="@id/tvBubbleReportTime" - android:layout_marginTop="10px" + android:layout_marginTop="5px" android:textColor="#B3FFFFFF" android:textSize="28px" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_bubble.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_bubble.xml index d2aca6cd46..c6bc9596fa 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_bubble.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_bubble.xml @@ -10,8 +10,8 @@ android:id="@+id/rvBubbleList" android:layout_width="match_parent" android:layout_height="match_parent" - android:paddingTop="10px" - android:paddingBottom="10px" + android:paddingTop="15px" + android:paddingBottom="15px" android:visibility="gone" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_list.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_list.xml index 7a7c1766d8..9dc41d3ab8 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_list.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_driver_msg_box_list.xml @@ -1,10 +1,10 @@ - + android:background="@drawable/bg_msg_box" + > - \ No newline at end of file + \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt index d5cd45b8ff..12fe7420d7 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt @@ -296,5 +296,13 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy { */ fun updateStatusBarRightView(insert: Boolean, tag: String, viewGroup: ViewGroup) + /** + * 设置司机端消息盒子是否展示 + */ fun updateDriverMsgBoxTipView(show: Boolean) + + /** + * 设置乘客端消息盒子是否展示 + */ + fun updatePassengerMsgBoxTipView(show: Boolean) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 20aab13bd3..c39a10e726 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -476,10 +476,16 @@ object CallerHmiManager : CallerBase() { } /** - * 更新司机端消息盒子是否展示 + * 设置司机端消息盒子是否展示 */ fun updateDriverMsgBoxTipView(show: Boolean = false){ waringProviderApi?.updateDriverMsgBoxTipView(show) } + /** + * 设置乘客端消息盒子是否展示 + */ + fun updatePassengerMsgBoxTipView(show: Boolean = false){ + waringProviderApi?.updatePassengerMsgBoxTipView(show) + } } \ No newline at end of file