From 52140c1708887c4519a85d10c794e21778cc5b18 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 13 Feb 2023 14:45:31 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[1.0.0][m1]=E6=B6=88=E6=81=AF=E7=9B=92?= =?UTF-8?q?=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/msgbox/MMsgBoxBubbleView.kt | 80 ++++++++ .../hmi/ui/msgbox/MMsgBoxButtonView.kt | 85 +++++++++ .../function/hmi/ui/msgbox/MMsgBoxListView.kt | 106 +++++++++++ .../ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt | 176 ++++++++++++++++++ .../ui/msgbox/adapter/MMsgBoxListAdapter.kt | 150 +++++++++++++++ .../drawable-xhdpi/icon_msg_box_m_normal.png | Bin 0 -> 23003 bytes .../drawable-xhdpi/icon_msg_box_m_select.png | Bin 0 -> 25166 bytes .../main/res/drawable/rv_divider_line_m.xml | 8 + .../main/res/drawable/selector_msg_box_m.xml | 5 + .../main/res/layout/item_m_msg_box_notice.xml | 84 +++++++++ .../res/layout/item_m_msg_box_summary.xml | 82 ++++++++ .../main/res/layout/item_m_msg_box_v2x.xml | 51 +++++ .../res/layout/item_m_msg_list_notice.xml | 80 ++++++++ .../res/layout/item_m_msg_list_summary.xml | 79 ++++++++ .../main/res/layout/item_m_msg_list_v2x.xml | 46 +++++ .../res/layout/layout_m_msg_box_bubble.xml | 8 + .../main/res/layout/layout_m_msg_box_list.xml | 21 +++ .../res/layout/view_m1_msg_box_button.xml | 31 +++ 18 files changed, 1092 insertions(+) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_select.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_bubble.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt new file mode 100644 index 0000000000..6774246ebe --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt @@ -0,0 +1,80 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.app.Activity +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.MsgCategory +import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +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.MMsgBoxBubbleAdapter +import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxBubbleAdapter +import com.mogo.eagle.core.function.msgbox.MsgBoxConfig +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import kotlinx.android.synthetic.main.layout_m_msg_box_bubble.view.* + +class MMsgBoxBubbleView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener { + + private val TAG = "MMsgBoxBubbleView" + private val dataList :ArrayList = ArrayList() + private var mMsgBoxBubbleAdapter: MMsgBoxBubbleAdapter?= null + private var isShowData = true + + init { + LayoutInflater.from(context).inflate(R.layout.layout_m_msg_box_bubble, this, true) + initView() + } + + private fun initView(){ + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + mMsgBoxBubbleAdapter = MMsgBoxBubbleAdapter(context as Activity) + rvMBubbleList.adapter = mMsgBoxBubbleAdapter + rvMBubbleList.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){ + MsgBoxConfig.noticeList.add(msgBoxList) + if(isShowData){ + CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) + dataList.add(msgBoxList) + mMsgBoxBubbleAdapter?.setData(dataList) + } + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxListenerManager.removeListener(TAG) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt new file mode 100644 index 0000000000..29d36332f3 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt @@ -0,0 +1,85 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.hmi.R +import kotlinx.android.synthetic.main.view_m1_msg_box_button.view.* + +class MMsgBoxButtonView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +): ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener { + + companion object { + const val TAG = "MMsgBoxButtonView" + } + + private var clickListener: ClickListener? = null + + init{ + LayoutInflater.from(context).inflate(R.layout.view_m1_msg_box_button, this, true) + initView() + } + + private fun initView(){ + cbMsgBoxM1.setOnCheckedChangeListener { _, isChecked -> + clickListener?.showMsgBoxList(isChecked) + msgBoxMTipView.visibility = View.GONE + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxEventListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxEventListenerManager.removeListener(TAG) + } + + override fun onSummaryClickEvent() { + + } + + /** + * 更新新消息提醒红点 + * @param isShow true:展示;false:不展示 + */ + override fun onUpdateTipEvent(isShow: Boolean) { + if(isShow){ + msgBoxMTipView.visibility = View.VISIBLE + }else{ + msgBoxMTipView.visibility = View.GONE + } + } + + override fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + override fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + override fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + fun setClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } + + interface ClickListener{ + fun showMsgBoxList(show: Boolean) + } + + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt new file mode 100644 index 0000000000..f5d04d3eb3 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt @@ -0,0 +1,106 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.app.Activity +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.MsgCategory +import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +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.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.MMsgBoxListAdapter +import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxListAdapter +import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import kotlinx.android.synthetic.main.layout_m_msg_box_list.view.* + +class MMsgBoxListView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener, IMsgBoxEventListener { + + private val TAG = "MMsgBoxListView" + var mMsgBoxListAdapter: MMsgBoxListAdapter?= null + private var noticeList: ArrayList ?= null + + init{ + LayoutInflater.from(context).inflate(R.layout.layout_m_msg_box_list, this, true) + initView() + } + + private fun initView(){ + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + val divider = DividerItemDecoration(context, linearLayoutManager.orientation) + getDrawable(R.drawable.rv_divider_line_m)?.let { divider.setDrawable(it) } + mMsgBoxListAdapter = MMsgBoxListAdapter(context as Activity) + rvMList.adapter = mMsgBoxListAdapter + rvMList.layoutManager = linearLayoutManager + rvMList.addItemDecoration(divider) + //获取通知消息列表 + noticeList= CallerMsgBoxManager.getCachedNotifyData() as ArrayList? + noticeList = noticeList?.let { ArrayList(it.reversed()) } + noticeList?.let { + mMsgBoxListAdapter?.setData(it) + } + + } + + 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){ + noticeList?.add(0,msgBoxList) + noticeList?.let { + mMsgBoxListAdapter?.setData(it) + } + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxListenerManager.addListener(TAG,this) + CallerMsgBoxEventListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxListenerManager.removeListener(TAG) + CallerMsgBoxEventListenerManager.removeListener(TAG) + } + + override fun onSummaryClickEvent() { + + } + + override fun onUpdateTipEvent(isShow: Boolean) { + + } + + override fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean) { + + } + + override fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean) { + noticeList?.let { + rvMList.scrollToPosition(it.indexOf(msgBoxBean)) + } + } + + override fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean) { + + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt new file mode 100644 index 0000000000..add1c7f5de --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt @@ -0,0 +1,176 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox.adapter + +import android.app.Activity +import android.os.CountDownTimer +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.* +import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat +import com.mogo.eagle.core.widget.RoundCanClickConstraintLayout + +class MMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter() { + + private var data: ArrayList ?= null + + private val notice: Int = 1 + private val v2x: Int = 2 + private val summary: Int = 3 + + var countDownTimer: CountDownTimer?=null + + fun setData(data: ArrayList){ + this.data = data + if(data.size>3){ + data.removeAt(0) + } + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + return when (viewType) { + notice -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_notice,parent,false) + BubbleNoticeHolder(view) + } + summary -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_summary,parent,false) + BubbleSummaryHolder(view) + } + else -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_v2x,parent,false) + BubbleV2XHolder(view) + } + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is BubbleNoticeHolder -> { + data?.let { + val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg + if(noticeFrCloudMsg.type == 0){ + val noticeNormalData = noticeFrCloudMsg.noticeNormalData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeNormalData?.content + GlideApp.with(activity).load(noticeNormalData?.imageUrl).optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeNormalData?.let { it1 -> CallerHmiManager.showNoticeNormalData(it1) } + } + }else if(noticeFrCloudMsg.type == 1){ + val noticeTrafficStylePushData = noticeFrCloudMsg.trafficPushData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeTrafficStylePushData?.content + GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl).optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeTrafficStylePushData?.let { it1 -> CallerHmiManager.showTrafficBanner(it1) } + } + } + + } + } + is BubbleV2XHolder -> { + data?.let { + val msgBoxBean = it[position] + val v2XMsg = msgBoxBean.bean as V2XMsg + holder.tvMV2XTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMV2XContent.text = v2XMsg.content + holder.ivMV2XImage.setImageDrawable(activity.resources.getDrawable( + EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.clMVeXLayout.setOnClickListener { + CallerMsgBoxEventListenerManager.invokeBubbleV2XListener(msgBoxBean) + } + } + } + is BubbleSummaryHolder -> { + data?.let { + val summaryMsg= it[position].bean as V2XMsg + holder.tvMSummaryTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMSummaryContent.text = summaryMsg.content + holder.tvMSummaryCheck.setOnClickListener { + //跳转全览模式 +// CallerHmiManager.showSmallFragment() + CallerMsgBoxEventListenerManager.invokeSummaryListener() + } + } + } + } + + val msgBoxBean: MsgBoxBean = data!![position] + countDownTimer =object: CountDownTimer(CallerMsgBoxManager.getDismissTime(),1000){ + override fun onTick(p0: Long) { + + } + + override fun onFinish() { + data?.remove(msgBoxBean) + notifyDataSetChanged() +// notifyItemRemoved(index) +// notifyItemRangeChanged(index,recordTypeEntity.size-index) + } + + } + countDownTimer?.start() + } + + override fun getItemCount() = data?.size ?: 0 + + override fun getItemViewType(position: Int): Int { + return if(data!![position].type == MsgBoxType.NOTICE){ + notice + }else if(data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY){ + summary + } else{ + v2x + } + } + + //Notice + class BubbleNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMNoticeImage: ImageView = itemView.findViewById(R.id.ivMNoticeImage) + var tvMNoticeTitle: TextView = itemView.findViewById(R.id.tvMNoticeTitle) + var tvMNoticeContent: TextView = itemView.findViewById(R.id.tvMNoticeContent) + var tvMNoticeCheck: TextView = itemView.findViewById(R.id.tvMNoticeCheck) + var tvMNoticeTime: TextView = itemView.findViewById(R.id.tvMNoticeTime) + } + + //OBU、V2X + class BubbleV2XHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMV2XImage: ImageView = itemView.findViewById(R.id.ivMV2XImage) + var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) + var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) + var clMVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clMVeXLayout) + } + + //汇总消息 + class BubbleSummaryHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvMSummaryContent: TextView = itemView.findViewById(R.id.tvMSummaryContent) + var tvMSummaryCheck: TextView = itemView.findViewById(R.id.tvMSummaryCheck) + var tvMSummaryTime: TextView = itemView.findViewById(R.id.tvMSummaryTime) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt new file mode 100644 index 0000000000..dc29be12d2 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt @@ -0,0 +1,150 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox.adapter + +import android.app.Activity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.NoticeFrCloudMsg +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat +import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp + +class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter() { + + private var data: List ?= null + + private val notice: Int = 1 + private val v2x: Int = 2 + private val summary: Int = 3 + + fun setData(data: List){ + this.data = data + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + return when (viewType) { + notice -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_notice,parent,false) + ListNoticeHolder(view) + } + summary -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_summary,parent,false) + ListSummaryHolder(view) + } + else -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_v2x,parent,false) + ListV2XHolder(view) + } + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is ListNoticeHolder -> { + data?.let { + val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg + if(noticeFrCloudMsg.type == 0){ + val noticeNormalData = noticeFrCloudMsg.noticeNormalData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeNormalData?.content + GlideApp.with(activity).load(noticeNormalData?.imageUrl).optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeNormalData?.let { it1 -> CallerHmiManager.showNoticeNormalData(it1) } + } + }else if(noticeFrCloudMsg.type == 1){ + val noticeTrafficStylePushData = noticeFrCloudMsg.trafficPushData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeTrafficStylePushData?.content + GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl).optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeTrafficStylePushData?.let { it1 -> CallerHmiManager.showTrafficBanner(it1) } + } + } + } + } + is ListV2XHolder -> { + data?.let { + val msgBoxBean = it[position] + val v2XMsg = msgBoxBean.bean as V2XMsg + holder.tvMV2XTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMV2XContent.text = v2XMsg.content + holder.ivMV2XImage.setImageDrawable(activity.resources.getDrawable( + EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + } + } + is ListSummaryHolder -> { + data?.let { + val summaryMsg= it[position].bean as V2XMsg + holder.tvMSummaryTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMSummaryContent.text = summaryMsg.content + holder.tvMSummaryCheck.setOnClickListener { + //跳转全览模式 +// CallerHmiManager.showSmallFragment() + CallerMsgBoxEventListenerManager.invokeSummaryListener() + } + } + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + override fun getItemViewType(position: Int): Int { + return if(data!![position].type == MsgBoxType.NOTICE){ + notice + }else if(data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY){ + summary + } else{ + v2x + } + } + + //Notice + class ListNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMNoticeImage: ImageView = itemView.findViewById(R.id.ivMNoticeImage) + var tvMNoticeTitle: TextView = itemView.findViewById(R.id.tvMNoticeTitle) + var tvMNoticeContent: TextView = itemView.findViewById(R.id.tvMNoticeContent) + var tvMNoticeCheck: TextView = itemView.findViewById(R.id.tvMNoticeCheck) + var tvMNoticeTime: TextView = itemView.findViewById(R.id.tvMNoticeTime) + } + + //OBU、V2X + class ListV2XHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMV2XImage: ImageView = itemView.findViewById(R.id.ivMV2XImage) + var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) + var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) + } + + //汇总消息 + class ListSummaryHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvMSummaryContent: TextView = itemView.findViewById(R.id.tvMSummaryContent) + var tvMSummaryCheck: TextView = itemView.findViewById(R.id.tvMSummaryCheck) + var tvMSummaryTime: TextView = itemView.findViewById(R.id.tvMSummaryTime) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..858ead6571bc29a2524004a0077670aae8afc1f1 GIT binary patch literal 23003 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml new file mode 100644 index 0000000000..6dfeab3203 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml new file mode 100644 index 0000000000..e1cbe83c46 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.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/item_m_msg_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml new file mode 100644 index 0000000000..c25e5ca499 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml new file mode 100644 index 0000000000..4f9b1507ec --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml new file mode 100644 index 0000000000..552a42b559 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml @@ -0,0 +1,51 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml new file mode 100644 index 0000000000..b63bcf7478 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml new file mode 100644 index 0000000000..6c41f48932 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml new file mode 100644 index 0000000000..0c60db148f --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_bubble.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_bubble.xml new file mode 100644 index 0000000000..43bd8f8e43 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_bubble.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml new file mode 100644 index 0000000000..1dfd4cf013 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml new file mode 100644 index 0000000000..8bb164354d --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml @@ -0,0 +1,31 @@ + + + + + + + + + + \ No newline at end of file From 0bc08ef0d805b1ef6374695431f4e2b0848d28c2 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 13 Feb 2023 15:28:47 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[1.0.0][m1]=E6=B6=88=E6=81=AF=E7=9B=92?= =?UTF-8?q?=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt | 1 - .../core/function/hmi/ui/msgbox/MMsgBoxListView.kt | 1 - .../src/main/res/layout/item_m_msg_box_notice.xml | 10 +++++----- .../src/main/res/layout/item_m_msg_box_summary.xml | 10 +++++----- .../src/main/res/layout/item_m_msg_box_v2x.xml | 8 ++++---- .../src/main/res/layout/layout_m_msg_box_list.xml | 2 +- 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt index 6774246ebe..7f26f51f5d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt @@ -14,7 +14,6 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager 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.MMsgBoxBubbleAdapter -import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxBubbleAdapter import com.mogo.eagle.core.function.msgbox.MsgBoxConfig import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_m_msg_box_bubble.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt index f5d04d3eb3..19098003da 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt @@ -17,7 +17,6 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.MMsgBoxListAdapter -import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxListAdapter import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_m_msg_box_list.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml index c25e5ca499..ff62ba2a18 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml @@ -3,7 +3,7 @@ android:layout_width="450dp" android:layout_height="110dp" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@color/color_white" + android:background="#FFFFFFFF" app:roundLayoutRadius="24dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:text="官方公告" android:textColor="#FF203555" - android:textSize="24dp" + android:textSize="25dp" android:layout_marginStart="10dp" app:layout_constraintLeft_toRightOf="@id/ivMNoticeImage" app:layout_constraintTop_toTopOf="parent" @@ -36,7 +36,7 @@ android:id="@+id/tvMNoticeContent" android:layout_width="0dp" android:layout_height="wrap_content" - android:textColor="#FF203555" + android:textColor="#CC203555" android:textSize="20dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="@id/tvMNoticeTitle" @@ -52,7 +52,7 @@ android:layout_width="110dp" android:layout_height="110dp" android:text="查 看" - android:textColor="#1366FB" + android:textColor="#FF1366FB" android:textSize="20dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -73,7 +73,7 @@ android:id="@+id/tvMNoticeTime" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="#4A5B77" + android:textColor="#B34A5B77" android:textSize="18dp" app:layout_constraintTop_toTopOf="@id/tvMNoticeTitle" app:layout_constraintBottom_toBottomOf="@id/tvMNoticeTitle" diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml index 4f9b1507ec..d8b8480c30 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml @@ -3,7 +3,7 @@ android:layout_width="450dp" android:layout_height="110dp" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@color/color_white" + android:background="#FFFFFFFF" app:roundLayoutRadius="24dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" @@ -25,7 +25,7 @@ android:layout_height="wrap_content" android:text="蘑菇小助手" android:textColor="#FF203555" - android:textSize="24dp" + android:textSize="25dp" android:layout_marginStart="10dp" app:layout_constraintLeft_toRightOf="@id/ivMSummaryImage" app:layout_constraintTop_toTopOf="parent" @@ -36,7 +36,7 @@ android:id="@+id/tvMSummaryContent" android:layout_width="0dp" android:layout_height="wrap_content" - android:textColor="#FF203555" + android:textColor="#CC203555" android:textSize="20dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="@id/tvMSummaryTitle" @@ -50,7 +50,7 @@ android:layout_width="110dp" android:layout_height="110dp" android:text="查 看" - android:textColor="#1366FB" + android:textColor="#FF1366FB" android:textSize="20dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintBottom_toBottomOf="parent" @@ -71,7 +71,7 @@ android:id="@+id/tvMSummaryTime" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="#4A5B77" + android:textColor="#B34A5B77" android:textSize="18dp" app:layout_constraintTop_toTopOf="@id/tvMSummaryTitle" app:layout_constraintBottom_toBottomOf="@id/tvMSummaryTitle" diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml index 552a42b559..1714adfa15 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml @@ -4,7 +4,7 @@ android:layout_width="450dp" android:layout_height="110dp" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@color/color_white" + android:background="#FFFFFFFF" app:roundLayoutRadius="24dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp"> @@ -27,7 +27,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" android:textColor="#99203555" - android:textSize="20dp" + android:textSize="18dp" android:layout_marginEnd="20dp" /> @@ -44,8 +44,8 @@ android:ellipsize="end" android:textColor="#FF203555" android:textSize="25dp" - android:layout_marginStart="25dp" - android:layout_marginEnd="25dp" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml index 1dfd4cf013..ffe09f8cfe 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml @@ -1,7 +1,7 @@ Date: Mon, 13 Feb 2023 16:09:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[M2]=201=E3=80=81M2=20UI=E5=88=9D=E6=AD=A5?= =?UTF-8?q?=E8=B0=83=E6=95=B4=202=E3=80=81Date=E6=A0=BC=E5=BC=8F=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../callback/AutoPilotStatusCallback.kt | 14 ++ .../bus/passenger/model/PM2DrivingModel.kt | 41 ++++- .../presenter/PM2DrivingPresenter.kt | 14 +- .../passenger/ui/PM2DrivingInfoFragment.kt | 32 +++- .../m2/res/drawable-nodpi/auto_button_bg.png | Bin 0 -> 3301 bytes .../src/m2/res/drawable-nodpi/clock_bg.png | Bin 0 -> 4486 bytes .../m2/res/drawable-nodpi/img_drive_bg.png | Bin 0 -> 25255 bytes .../src/m2/res/drawable-nodpi/img_line_bg.png | Bin 0 -> 26374 bytes .../src/m2/res/drawable-nodpi/img_time_bg.png | Bin 0 -> 46651 bytes .../drawable-nodpi/m2_line_location_bg.png | Bin 0 -> 4215 bytes .../src/m2/res/drawable/bg_p_m2_auto_bg.xml | 7 + .../res/layout/p_m2_driving_info_fragment.xml | 174 ++++++++++-------- .../src/m2/res/layout/p_m2_hpmap_fragment.xml | 26 +-- .../src/m2/res/layout/p_m2_video_fragment.xml | 3 +- .../src/m2/res/values/colors.xml | 34 +--- .../com/mogo/och/bus/model/OrderModel.java | 2 +- .../och/common/module/utils/DateTimeUtil.java | 15 +- .../ui/TaxiPassengerServingOrderFragment.java | 2 +- .../passenger/ui/leftmenu/LeftMenuOpen.kt | 2 +- .../ui/TaxiBeingServerdOrdersFragment.java | 20 +- .../och/taxi/ui/TaxiGrabOrderFragment.java | 8 +- .../taxi/ui/TaxiPersonalDialogFragment.java | 2 +- .../taxi/ui/TaxiReserveOrdersFragment.java | 4 +- 23 files changed, 242 insertions(+), 158 deletions(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/AutoPilotStatusCallback.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/auto_button_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/clock_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/img_drive_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/img_line_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/img_time_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_line_location_bg.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/AutoPilotStatusCallback.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/AutoPilotStatusCallback.kt new file mode 100644 index 0000000000..efb7410ba2 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/AutoPilotStatusCallback.kt @@ -0,0 +1,14 @@ +package com.mogo.och.bus.passenger.callback + +/** + * @author: wangmingjun + * @date: 2023/2/13 + */ +interface AutoPilotStatusCallback { + /** + * false: 未开启自驾, true : 开启自驾 + */ + fun updateAutoStatus(isOpen: Boolean) + + fun updateAutoStatus(status: Int) +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 0e47a35b16..3b05d79aa0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -4,6 +4,7 @@ import android.content.Context import android.os.Handler import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener @@ -19,6 +20,7 @@ import com.mogo.och.bus.passenger.bean.PM2OperationStatusResponse import com.mogo.och.bus.passenger.bean.PM2RoutesResponse import com.mogo.och.bus.passenger.bean.PM2RoutesResult import com.mogo.och.bus.passenger.bean.PM2Station +import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.PM2ModelLoopManager @@ -39,14 +41,18 @@ class PM2DrivingModel private constructor() { private var mRoutePoints = mutableListOf() private var routesResult: PM2RoutesResult? = null + private var mCurrentAutoStatus = -1 + var mStations = mutableListOf() - private var mNextStationIndex = 0 // 要到达站的index + private var mNextStationIndex = 0 // A-B要到达站的index + private var isGoingToNextStation = false //是否前往下一站过程中 private var mTwoStationsRouts = mutableListOf() private var mPreRouteIndex = 0 private var mWipePreIndex = 0 - private var mDrivingInfoCallback : DrivingInfoCallback? = null //行程信息 + private var mDrivingInfoCallback: DrivingInfoCallback? = null //行程信息 + private var mAutoStatusCallback: AutoPilotStatusCallback? = null //自动驾驶状态 private val handler = Handler(Handler.Callback { msg -> if (msg.what == MSG_QUERY_BUS_P_STATION) { @@ -78,7 +84,7 @@ class PM2DrivingModel private constructor() { CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,5)//设置5hz, 1s返回一次 } - public fun releaseListener(){ + fun releaseListener(){ //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.removeListener(TAG) @@ -90,6 +96,10 @@ class PM2DrivingModel private constructor() { mDrivingInfoCallback = drivingInfoCallback } + fun setAutoStatusCallback(autoPilotStatusCallback: AutoPilotStatusCallback){ + mAutoStatusCallback = autoPilotStatusCallback + } + private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = object : IMoGoChassisLocationGCJ02Listener{ override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { @@ -116,7 +126,22 @@ class PM2DrivingModel private constructor() { override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { super.onAutopilotStatusResponse(autoPilotStatusInfo) - //todo 自动驾驶状态展示, 注意美化模式下的处理 + val status = autoPilotStatusInfo.state + if (mCurrentAutoStatus == status) return + + if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != status){ + //美化模式下且行程中 + if (FunctionBuildConfig.isDemoMode && + mNextStationIndex>= 0 && mNextStationIndex <= mStations.size - 1 + && isGoingToNextStation){ + mAutoStatusCallback?.updateAutoStatus(true) + }else{//非美化模式下 + mAutoStatusCallback?.updateAutoStatus(false) + } + + }else{//自驾状态 2 + mAutoStatusCallback?.updateAutoStatus(true) + } } } @@ -163,6 +188,7 @@ class PM2DrivingModel private constructor() { if (data?.result == null || data.result.sites == null) { routesResult = null mNextStationIndex = 0 + isGoingToNextStation = false startOrStopCalculateRouteInfo(false) mDrivingInfoCallback?.showNoTaskView(true) return @@ -177,6 +203,7 @@ class PM2DrivingModel private constructor() { override fun onFail(code: Int, msg: String?) { if (code == 1003) { routesResult = null + isGoingToNextStation = false startOrStopCalculateRouteInfo(false) queryDriverOperationDelay() return @@ -197,20 +224,22 @@ class PM2DrivingModel private constructor() { mStations.addAll(stations) for (i in stations.indices) { val station: PM2Station = stations[i] - if (station.drivingStatus === BusPassengerConst.STATION_STATUS_STOPPED + if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && station.isLeaving && i + 1 < stations.size) { // mRouteLineInfoCallback.updateStationsInfo(stations, i + 1, false) if (mNextStationIndex != i + 1) { mTwoStationsRouts.clear() startRemainRouteInfo() } + isGoingToNextStation = true mNextStationIndex = i + 1 return - } else if (station.drivingStatus === BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) { + } else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) { if (i == 0) { startOrStopRouteAndWipe(false) } mPreRouteIndex = 0 + isGoingToNextStation = false startOrStopCalculateRouteInfo(false) // mRouteLineInfoCallback.updateStationsInfo(stations, i, true) return diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index 78d188a64e..825ee65c8d 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -3,12 +3,13 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.model.PM2DrivingModel import com.mogo.och.bus.passenger.ui.PM2DrivingInfoFragment class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : - Presenter(view), DrivingInfoCallback { + Presenter(view), DrivingInfoCallback, AutoPilotStatusCallback { init { PM2DrivingModel.INSTANCE.init(context) @@ -22,6 +23,7 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : private fun initListener(){ PM2DrivingModel.INSTANCE.setDrivingInfoCallback(this) + PM2DrivingModel.INSTANCE.setAutoStatusCallback(this) } private fun destroyListener(){ @@ -58,4 +60,14 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : override fun showNoTaskView(isTrue: Boolean) { TODO("Not yet implemented") } + + override fun updateAutoStatus(isOpen: Boolean) { + UiThreadHandler.post { + mView?.updateAutoStatus(isOpen) + } + } + + override fun updateAutoStatus(status: Int) { + TODO("Not yet implemented") + } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 066aeec53a..d7dcdd3041 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -1,9 +1,13 @@ package com.mogo.och.bus.passenger.ui import android.os.Bundle +import androidx.core.content.ContextCompat import com.mogo.commons.mvp.MvpFragment +import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.common.module.utils.DateTimeUtil.* import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* /** @@ -53,7 +57,7 @@ class PM2DrivingInfoFragment : } fun updateCarPlateNum(plateNum : String){ - car_plate_tv.text = plateNum + } fun updateTaskName(name: String){ @@ -65,17 +69,39 @@ class PM2DrivingInfoFragment : } fun updateCurrentTime(){ -// current_time_tv.text = -// current_weekday_tv.text = + current_time_tv.text = formatCalendarToString( + DateTimeUtils.getCurrentDateTime(),HH_mm) + + val date = formatCalendarToString( + DateTimeUtils.getCurrentDateTime(), yyyy_MM_dd) + val weekDay = DateTimeUtils.getWeekDayFromCalendar1(DateTimeUtils.getCurrentDateTime()) + current_weekday_tv.text = "$date $weekDay" + + } fun changeOperationStatus(status:Boolean){ + if (!status){ //暂无路线 + + }else{ + + } } override fun createPresenter(): PM2DrivingPresenter { return PM2DrivingPresenter(this) } + fun updateAutoStatus(isAutoPilot: Boolean) { + if (isAutoPilot){ + context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.m2_p_white_color)) } + context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.auto_button_bg) } + }else{ + context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.m2_button_auto_tv_color)) } + context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.bg_p_m2_auto_bg) } + } + } + companion object { private val TAG = PM2DrivingInfoFragment::class.java.simpleName } diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/auto_button_bg.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/auto_button_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4ddc5279a6afcec112453f74b4329d1a1b5a02 GIT binary patch literal 3301 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 Y|K^6?dowrRZ2$lO07*qoM6N<$f|jY4%m4rY literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/img_drive_bg.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/img_drive_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..3ad9edb85948638bd2a54ddb9423fd41252831a9 GIT binary patch literal 25255 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

~OpWQU`>sTUY|7(b40tn1EdbWH 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 b;{5*sMe;#mLf9lO00000NkvXXu0mjf2gBCg literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_line_location_bg.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_line_location_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..bac60302165aec4bc6283b57ce7f1cccfa4ab08f GIT binary patch literal 4215 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 N002ovPDHLkV1moa(k=i1 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml new file mode 100644 index 0000000000..321b67dfc3 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 12bd19f1e0..6120ab8f89 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -1,144 +1,162 @@ + android:layout_height="@dimen/dp_556"> - + + app:layout_constraintLeft_toLeftOf="@+id/img_drive_bg" + android:layout_marginLeft="@dimen/dp_24" + app:layout_constraintTop_toTopOf="@+id/img_drive_bg" + tools:ignore="SpUsage" /> - + - + + app:layout_constraintTop_toTopOf="@+id/img_line_location_bg" + app:layout_constraintLeft_toLeftOf="@+id/speed_tv" + android:textColor="@color/m2_line_name_tv_color"/> + app:layout_constraintLeft_toLeftOf="@+id/task_name_tv" + app:layout_constraintTop_toBottomOf="@+id/task_name_tv" + android:textColor="@color/m2_line_during_tv_color"/> - + + + + android:text="--" + app:layout_constraintTop_toTopOf="@+id/img_time_clock_bg" + app:layout_constraintLeft_toLeftOf="@+id/speed_tv" + android:textColor="@color/m2_current_time_tv_color"/> - - - - - + app:layout_constraintLeft_toLeftOf="@+id/current_time_tv" + app:layout_constraintTop_toBottomOf="@+id/current_time_tv" + android:textSize="@dimen/dp_18" + android:text="--" + android:textColor="@color/m2_line_during_tv_color"/> - + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml index 5070519a7a..fec8fd6cd4 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml @@ -13,19 +13,19 @@ - - - - - - + - - - - - - - + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_video_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_video_fragment.xml index e21fb3554b..000b849619 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_video_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_video_fragment.xml @@ -1,8 +1,7 @@ + android:layout_height="@dimen/dp_565"> diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml index 141bde1f54..e17de7a855 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml @@ -1,32 +1,12 @@ - #2D3E5F - #CCE9EFFC - #C7D2E1 - #2D3E5F - #0043FF - #2D3E5F - #596A8A - #D8E5F8 - #FFB327 - #2D3E5F - #0043FF - #276AFE - #0043FF - #276AFE - #FFC125 - #FF8131 - #31BFF2 - #3257E9 - #FFFFFF - #CDDBF6 - #2D3E5F - #0043FF - #2D3E5F - #E6E9EFFC - #33394C63 - #2D3E5F - #33394C63 + #FFFFFF + #0B1E38 + #2D3E5F + #B3C0D4ED + #0B1E38 + #5D7199 + #0B1E38 #FFFFA28B #FFDA1100 diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java index 9f75b34091..f2f1ec6931 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java @@ -499,7 +499,7 @@ public class OrderModel { String lineTime = DateTimeUtil.formatLongToString( busRoutesResult.getTaskTime(), - DateTimeUtil.TAXI_HH_mm); + DateTimeUtil.HH_mm); if (arrivingOrArrivedStationIndex == 0 || arrivingOrArrivedStation.getDrivingStatus() == STATION_STATUS_STOPPED diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index 310b8cb3bd..d1a2639515 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -11,11 +11,12 @@ import java.util.Date; * @date: 2022/5/6 */ public class DateTimeUtil { - public static final String TAXI_HH_mm = "HH:mm"; - public static final String TAXI_MM_dd = "MM-dd"; - public static final String TAXI_MM_dd_HH_mm = "MM-dd HH:mm"; - public static final String TAXI_yyyy_MM_dd = "yyyy-MM-dd"; - public static final String TAXI_yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm"; + public static final String HH_mm = "HH:mm"; + public static final String MM_dd = "MM-dd"; + public static final String MM_dd_HH_mm = "MM-dd HH:mm"; + public static final String yyyy_MM_dd = "yyyy-MM-dd"; + public static final String yy_MM_dd = "yy-MM-dd"; + public static final String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm"; public static String formatCalendarToString(Calendar calendar, String format){ if (calendar == null) return ""; @@ -30,8 +31,8 @@ public class DateTimeUtil { public static boolean compareDateIsCurrentDay(Calendar targetCalendar){ Calendar currentCale = DateTimeUtils.getCurrentDateTime(); - String currentDay = formatCalendarToString(currentCale, TAXI_yyyy_MM_dd); - if (currentDay.equals(formatCalendarToString(targetCalendar, TAXI_yyyy_MM_dd))){ + String currentDay = formatCalendarToString(currentCale, yyyy_MM_dd); + if (currentDay.equals(formatCalendarToString(targetCalendar, yyyy_MM_dd))){ return true; }else { return false; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java index 0ddf08b2b7..9d1de00f4f 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerServingOrderFragment.java @@ -334,7 +334,7 @@ public class TaxiPassengerServingOrderFragment extends Calendar beforeTime = Calendar.getInstance(); beforeTime.add(Calendar.MINUTE,time); - String arriveTime = DateTimeUtil.formatCalendarToString(beforeTime,DateTimeUtil.TAXI_HH_mm); + String arriveTime = DateTimeUtil.formatCalendarToString(beforeTime,DateTimeUtil.HH_mm); updateOrderDisAndTimeView(remainDis, disUnit,time, arriveTime); updateDriveProcessLoading(new Long(meters).intValue()); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt index 25e67ec138..47c031144a 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/leftmenu/LeftMenuOpen.kt @@ -429,7 +429,7 @@ object LeftMenuOpen { val beforeTime = Calendar.getInstance() beforeTime.add(Calendar.MINUTE, time) //到达时间 - val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.TAXI_HH_mm) + val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.HH_mm) FloatingDistanceInfoUtils.setDistance(meters,remainDis,disUnit,time,arriveTime) }else{ FloatingDistanceInfoUtils.setSpeed(speed) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java index 6eeca67db6..f03cec0009 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiBeingServerdOrdersFragment.java @@ -22,7 +22,6 @@ import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; @@ -34,7 +33,6 @@ import com.mogo.och.common.module.map.ICommonNaviChangedCallback; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; -import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.common.module.wigets.OCHCommitDialog; import com.mogo.och.taxi.R; @@ -239,8 +237,8 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment mOrderOtherContent3.setVisibility(View.GONE); Calendar currentCale = DateTimeUtils.getCurrentDateTime(); - String currentHM = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_HH_mm); - String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_yyyy_MM_dd); + String currentHM = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.HH_mm); + String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd); String strHtml11 = "已于
" + "" + currentHM + "" + "" + " " + "到达乘客上车地点"; @@ -251,13 +249,13 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment mStationTv32.setText(order.endSiteAddr); currentCale.add(Calendar.MINUTE, 10); String strHtml13 = ""; - if (currentDay.equals(DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_yyyy_MM_dd))) { + if (currentDay.equals(DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd))) { strHtml13 = "免费等待至 " - + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_HH_mm) + ""; + + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.HH_mm) + ""; } else { strHtml13 = "免费等待至" - + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_MM_dd_HH_mm) + ""; + + "" + DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.MM_dd_HH_mm) + ""; } mDistanceAndTime3.setText(Html.fromHtml(strHtml13)); @@ -315,16 +313,16 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment Calendar currentCale = DateTimeUtils.getCurrentDateTime(); Calendar startCale = DateTimeUtil.formatLongToCalendar(order.bookingTime); - String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.TAXI_yyyy_MM_dd); - String startDay = DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.TAXI_yyyy_MM_dd); + String currentDay = DateTimeUtil.formatCalendarToString(currentCale, DateTimeUtil.yyyy_MM_dd); + String startDay = DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.yyyy_MM_dd); String strHtml1 = ""; if (currentDay.equals(startDay)) { strHtml1 = "乘客将于
" - + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.TAXI_HH_mm) + "" + + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.HH_mm) + "" + " 用车"; } else { strHtml1 = "乘客将于
" - + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.TAXI_MM_dd_HH_mm) + "" + + "" + DateTimeUtil.formatCalendarToString(startCale, DateTimeUtil.MM_dd_HH_mm) + "" + " 用车"; } mOrderOtherContent3.setText(Html.fromHtml(strHtml1)); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java index 0634edb51d..bde0c5a017 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiGrabOrderFragment.java @@ -94,12 +94,12 @@ public class TaxiGrabOrderFragment extends BaseTaxiUIFragment implements View.On mGrabResultAnimView.setVisibility(View.GONE); Calendar calendar = DateTimeUtil.formatLongToCalendar(order.bookingTime); if (DateTimeUtil.compareDateIsCurrentDay(calendar)){ - mOrderReserverTime.setText("用车时间:今天 "+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)); - VoiceNotice.showNotice("预约单,今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)+"从" + mOrderReserverTime.setText("用车时间:今天 "+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); + VoiceNotice.showNotice("预约单,今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)+"从" +order.startSiteAddr+"到"+order.endSiteAddr); }else { - mOrderReserverTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd_HH_mm)); - VoiceNotice.showNotice("预约单,"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd)+"从" + mOrderReserverTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd_HH_mm)); + VoiceNotice.showNotice("预约单,"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd)+"从" +order.startSiteAddr+"到"+order.endSiteAddr); } mOrderStartStation.setText(order.startSiteAddr); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java index decb6b1f7f..fe488af13e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java @@ -398,7 +398,7 @@ public class TaxiPersonalDialogFragment extends Button orderStatusBt, Button orderTypeBt, TextView orderNumTv){ Calendar calendar= Calendar.getInstance(); calendar.setTimeInMillis(queryRespBean.createTime); - orderTimeTv.setText(DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)); + orderTimeTv.setText(DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); startStationTv.setText(queryRespBean.startSiteAddr); endStationTv.setText(queryRespBean.endSiteAddr); orderStatusBt.setText(getOrderStatus(queryRespBean.orderStatus,orderStatusBt)); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java index 6df0b8065d..0796ebd2e9 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiReserveOrdersFragment.java @@ -130,9 +130,9 @@ public class TaxiReserveOrdersFragment extends BaseTaxiUIFragment { OrderQueryRespBean.Result order = datas.get(position); Calendar calendar = DateTimeUtil.formatLongToCalendar(order.bookingTime); if (DateTimeUtil.compareDateIsCurrentDay(calendar)){ - viewHolder.orderTime.setText("用车时间:今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_HH_mm)); + viewHolder.orderTime.setText("用车时间:今天"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.HH_mm)); }else { - viewHolder.orderTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.TAXI_MM_dd_HH_mm)); + viewHolder.orderTime.setText("用车时间:"+ DateTimeUtil.formatCalendarToString(calendar, DateTimeUtil.MM_dd_HH_mm)); } viewHolder.orderCancel.setOnClickListener(new View.OnClickListener() { @Override