From 4ba2088fe078320a3e76fe79dc851660ba5f6c1c Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 13 Mar 2023 12:20:54 +0800 Subject: [PATCH 1/8] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=9B=92=E5=AD=90M1=E3=80=81M2=E4=B9=98=E5=AE=A2=E7=AB=AF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=90=E8=90=A5=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/msgbox/MBoxBubbleView.kt | 2 +- .../hmi/ui/msgbox/MMsgBoxBubbleView.kt | 7 +- .../function/hmi/ui/msgbox/MMsgBoxListView.kt | 11 +- .../function/hmi/ui/msgbox/SharpView.java | 59 ++++ .../ui/msgbox/adapter/MBoxBubbleAdapter.kt | 26 +- .../ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt | 2 +- .../ui/msgbox/adapter/MMsgBoxListAdapter.kt | 8 +- .../hmi/ui/widget/ExpandableTextView.java | 303 ++++++++++++++++++ .../drawable-xhdpi/ic_expand_less_black.png | Bin 0 -> 697 bytes .../drawable-xhdpi/ic_expand_more_black.png | Bin 0 -> 716 bytes .../main/res/layout/item_m_box_operation.xml | 51 +++ .../src/main/res/layout/item_m_box_v2x.xml | 2 +- .../res/layout/item_m_msg_box_operation.xml | 5 +- .../res/layout/item_m_msg_list_operation.xml | 10 +- 14 files changed, 459 insertions(+), 27 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/SharpView.java create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ExpandableTextView.java create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_less_black.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_more_black.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_operation.xml diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 17151d727e..42ff1b43d0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -55,7 +55,7 @@ class MBoxBubbleView @JvmOverloads constructor( UiThreadHandler.post { if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X - || msgBoxList.type == MsgBoxType.OBU){ + || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ MsgBoxConfig.noticeList.add(msgBoxList) if(isShowData){ CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) 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 e382698b28..e6daa2e3ed 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 @@ -52,14 +52,9 @@ class MMsgBoxBubbleView @JvmOverloads constructor( UiThreadHandler.post { if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X - || msgBoxList.type == MsgBoxType.OBU){ + || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ update(msgBoxList) } - if(msgBoxList.type == MsgBoxType.OPERATION){ - if((msgBoxList.bean as OperationMsg).type == 2){ - update(msgBoxList) - } - } } } } 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 e881c94369..726a6dae6d 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 @@ -59,21 +59,12 @@ class MMsgBoxListView @JvmOverloads constructor( UiThreadHandler.post{ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X - || msgBoxList.type == MsgBoxType.OBU){ + || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ noticeList?.add(0,msgBoxList) noticeList?.let { mMsgBoxListAdapter?.setData(it) } } - if(msgBoxList.type == MsgBoxType.OPERATION){ - if((msgBoxList.bean as OperationMsg).type == 2){ - noticeList?.add(0,msgBoxList) - noticeList?.let { - mMsgBoxListAdapter?.setData(it) - } - } - } - } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/SharpView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/SharpView.java new file mode 100644 index 0000000000..af4567c9dd --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/SharpView.java @@ -0,0 +1,59 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.Nullable; + +public class SharpView extends View { + + private int mWidth =0; //三角形的宽度 + private int mHeight =0; //三角形的高度 + private Context mContext; + + public SharpView(Context context) { + super(context); + this.mContext=context; + initView(); + } + + public SharpView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + this.mContext=context; + initView(); + } + + private void initView() { + mWidth = 25; + mHeight = 25; + } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(mWidth,mHeight); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + //创建画笔 + Paint paint = new Paint(); + paint.setColor(Color.parseColor("#FFFFFFFF")); + paint.setAntiAlias(true); //抗锯齿 + paint.setStyle(Paint.Style.FILL);//实线 + //创建路径 + Path path = new Path(); + path.moveTo(0,mHeight); + path.lineTo(mWidth,mHeight); + path.lineTo(mWidth/2,0); + path.close();//闭合路径 + //画在画布上 + canvas.drawPath(path,paint); + } + +} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt index c95913d7e7..83842d19e9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MBoxBubbleAdapter.kt @@ -21,6 +21,7 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter){ @@ -37,6 +38,10 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_box_operation,parent,false) + BubbleOperationHolder(view) + } else -> { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_box_v2x,parent,false) BubbleV2XHolder(view) @@ -61,6 +66,14 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter { + //运营消息 + data?.let { + val operationMsg = it[position].msgBoxBean.bean as OperationMsg + holder.tvMOperationTime.text = TimeUtils.millis2String(it[position].msgBoxBean.timestamp,getHourMinFormat()) + holder.tvMOperationContent.text = operationMsg.content + } + } is BubbleV2XHolder -> { data?.let { val msgBoxBean = it[position] @@ -74,7 +87,7 @@ class MBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter { + mWidth = getWidth(); + if (toExpand) { + setExpandText(); + } else { + setCloseText(); + } + }); + } + + public void toggle() { + toggle(!mIsExpanding); + } + + /** + * 设置TextView可显示的最大行数 + * + * @param maxLines 最大行数 + */ + @Override + public void setMaxLines(int maxLines) { + if (mMaxLines == 0) { + // 这里对mMaxLines记录一次就可以 + this.mMaxLines = maxLines; + } + super.setMaxLines(maxLines); + } + + public void setToDBC(boolean toDBC) { + ToDBC = toDBC; + } + + public int getToExpandImageWidth() { + return mToExpandImageWidth; + } + + public int getToCloseImageWidth() { + return mToCloseImageWidth; + } + + public void setToExpandImageWidth(int mToExpandImageWidth) { + this.mToExpandImageWidth = mToExpandImageWidth; + } + + public void setToCloseImageWidth(int mToCloseImageWidth) { + this.mToCloseImageWidth = mToCloseImageWidth; + } + + public SpannableString getDefaultToExpandSpannableString() { + SpannableString spannableString = new SpannableString("... "); + // 测量文字的高度,用于设置图片大小 + Paint paint = getPaint(); + Paint.FontMetrics fontMetrics = paint.getFontMetrics(); + setToExpandImageWidth((int) (fontMetrics.descent - fontMetrics.ascent)); + // 对图片的宽高设置 + @SuppressLint("UseCompatLoadingForDrawables") + Drawable drawable = getResources().getDrawable(R.drawable.ic_expand_more_black); + drawable.setBounds(0, 0 , getToExpandImageWidth(), getToExpandImageWidth()); + ImageSpan span = new ImageSpan(drawable); + spannableString.setSpan(span, spannableString.length() - 1, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + // 对imageSpan设置点击事件,也可以这里不设置,在Activity对expandTextView整个事件设置点击事件 + return spannableString; + } + + + public SpannableString getDefaultToCloseSpannableString() { + // 因为末尾要插入图片,这里空格是占位符 + SpannableString spannableString = new SpannableString(" "); + // 测量文字的高度,用于设置图片大小 + Paint paint = getPaint(); + Paint.FontMetrics fontMetrics = paint.getFontMetrics(); + setToCloseImageWidth((int) (fontMetrics.descent - fontMetrics.ascent)); + // 对图片的宽高设置 + @SuppressLint("UseCompatLoadingForDrawables") + Drawable drawable = getResources().getDrawable(R.drawable.ic_expand_less_black); + drawable.setBounds(0, 0 , getToCloseImageWidth(), getToCloseImageWidth()); + ImageSpan span = new ImageSpan(drawable); + spannableString.setSpan(span, spannableString.length() - 1, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return spannableString; + } + + /** + * 设置文本收起 + */ + public void setCloseText() { + mIsExpanding = false; + setMaxLines(mMaxLines); + + boolean needAppend = false; + String workingText = originText; + + if (mMaxLines != 0) { + Layout originLayout = createWorkingLayout(originText); + mOriginTextLines = originLayout.getLineCount(); + // 原始文本的行数 大于 最大能显示行数 + if (mOriginTextLines > mMaxLines) { + // 获取mMaxLines行的文本 + workingText = originText.substring(0, originLayout.getLineEnd(mMaxLines - 1)).trim(); + // 计算mMaxLines行的文本的宽度 + float allWidth = getPaint().measureText(workingText); + // 当前显示需要的宽度 + float realWidth = getPaint().measureText(workingText + SPAN_TO_EXPAND) + mToExpandImageWidth; + + while (realWidth > allWidth) { + int lastSpace = workingText.length() - 1; + if (lastSpace == -1) { + break; + } + workingText = workingText.substring(0, lastSpace); + realWidth = getPaint().measureText(workingText + SPAN_TO_EXPAND) + mToExpandImageWidth; + } + + needAppend = true; + } + } + setText(workingText); + if (needAppend) { + // 必须使用append,不能在上面使用+连接,否则spannable会无效 + append(SPAN_TO_EXPAND); + } + setMovementMethod(LinkMovementMethod.getInstance()); + } + + /** + * 设置文本展开 + */ + public void setExpandText() { + if (mOriginTextLines <= mMaxLines) { + return; + } + mIsExpanding = true; + setMaxLines(Integer.MAX_VALUE); + + Layout originLayout = createWorkingLayout(originText); + Layout compareLayout = createWorkingLayout(originText + SPAN_TO_CLOSE); + if (compareLayout.getLineCount() > originLayout.getLineCount()) { + setText(originText + "\n"); + } else { + setText(originText); + } + append(SPAN_TO_CLOSE); + setMovementMethod(LinkMovementMethod.getInstance()); + } + + /** + * 返回textview的显示区域的layout + */ + private Layout createWorkingLayout(String workingText) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { + return StaticLayout.Builder.obtain(workingText, 0, workingText.length(), getPaint(), mWidth).build(); + } else { + return new StaticLayout(workingText, getPaint(), mWidth - getPaddingLeft() - getPaddingRight(), + Layout.Alignment.ALIGN_NORMAL, getLineSpacingMultiplier(), getLineSpacingExtra(), false); + } + } + + /** + * 屏蔽长按事件,防止崩溃 + */ + @Override + public void setLongClickable(boolean longClickable) { + super.setLongClickable(false); + } + + /** + * 转全角 + */ + private static String toDBC(String input) { + char[] c = input.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (c[i] == '\n') { + + } else if (c[i] == ' ') { + c[i] = '\u3000'; + } else if (c[i] < '\177') { + c[i] = (char) (c[i] + 65248); + } + } + return new String(c); + } + + /** + * 转半角 + */ + public static String ToDBC(String input) { + char[] c = input.toCharArray(); + for (int i = 0; i < c.length; i++) { + if (c[i] == '\u3000') { + c[i] = ' '; + } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { + c[i] = (char) (c[i] - 65248); + + } + } + return new String(c); + } + + /** + * 用于生成 文本末尾要追加的SpannableString + */ + public interface CreateAppenderListener { + SpannableString getDefaultToCloseSpannableString(); + SpannableString getDefaultToExpandSpannableString(); + } + +} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_less_black.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_less_black.png new file mode 100644 index 0000000000000000000000000000000000000000..233b1c27ffc17893d6b86d5023dd8fa1633ca9af GIT binary patch literal 697 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uwtyMI1}T(LG>&3mU{dyUaSX8# z+&a}ZTO?4V?Y{BM2U;E*x_6tIX)#g^K*V1rt=6|7FpVVus!U< zcg7%PmVc?hu45Z>9g1ySKc8JxD|f@2`ETk<{U=lXV`E-2U!Rb?=nb#Q;VLE*wd@^# za}HMR+sG}GemZeG`|d!VWA?ji25$l`Mo-JHwcOZZt? zgfnIQTvc*Cz%gQiM3U!Swrqd**nN|n1)X(n`Y!*kd-!)Edum(iv5=WHS}fB_!roH@5XQ5fB!h?!%3kt;T4mQ_(&|NmJ&bQwsc1J-L3kozrTGfVQ~J{ z=8C3mvlG}}d~$DHP(0W5^^S&blWfzUg)VnLmf3h${A)CicJ>;(4ekpUZ%!%SVaxBl zdwKZw{MK}hWi58LRcz*5&IT)e9xy#zdmv^7)9c&(PY>_oI;VI3cG!!8U$3LLoqS?> z$b8OO>FYsSxpu+xCT^_Qe)I6zmEAUN`#FAhCfzrBwL{)*@6<~dpQM--T&Z*@y)QQV z|I4c}CnvkC?Oz|;uiBTR?tRAP@09$E9-a=B4%38B#!2>1r>${GD$fyf)=@3^7yQrr zwn$WM$lnt4soKZiAAMBlUDx@5o&RA;(vE$LnXj(z+<2;x_uj>>wFPYE|6ZT}!oFE? V^TrUFzvn>7#?#f$Wt~$(69CIcAf*5R literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_more_black.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/ic_expand_more_black.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2b5e9fddea9196a0de23d945e5ea80a030ae48 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fjKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uwtyMI1}T(LG>&3mU^4S`aSX8# z+&Xn*wuqz1vHd&WJoF6M*j=8<^6^Vklm^R`h9B$_x=LkQDhXDsiV0JXDMds?WGJdF zjp*38)l<7;k>d5JyNVGfOsgiHw%h;yOitOgyE5V>4{lVxul{`7{PVMWRw6yYpUWyX zw`Vdhlf3j`{Vv&C%kmeq?9p_Oh^>FL@3~^kwaUVaTJh04q?x%5WKO+me0$*`_q1bK z6|1?P~FUbZ6@FDTHSMehDRpdU-@f))eoZ$0g+x4&o;g5F4(d} z`|J4yRg(FWW(Z!sZp+K2y(^9Hb>rp(1#O>G=J=l8vue7sRmsn0#}^wfa;>Yad9#nz z>6nFK`tjs;=`%(WJ~>WDKmT7Ld(q(E;%;$c{oIt}lIQ&HZw^fR)^(wI;ic`X{zgw! zKEN~GZvW9{8{d6-?B_Y=YFuK?6Yp%%pEGCk>d3uz+2tI2=Y3uNX4`?YQy#B>DYhYK z{`OtsQk%_K+uQG*tNwJtT!y>A*i7d+tBPHF+RmPnJKC8Gd-!84re#=8o^*Jv$J+k- z34Ghb?wsW5y{9(Mc$pQ)sk!-*jyaZX5x0Hbb^i@ntFNA? zFx3(#Mj!lN5hUEcDs9>U(I5i^i-MmyblO{m6T- rUCsTW?7yA2k54i5)r-0NHu;yd&HW>y8(J^Bf>M&FtDnm{r-UW|bOSK1 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_operation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_operation.xml new file mode 100644 index 0000000000..7e563fa97f --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_operation.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_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_v2x.xml index 60eab23068..80d40787cb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_box_v2x.xml @@ -44,7 +44,7 @@ android:ellipsize="end" android:textColor="#FF203555" android:textSize="@dimen/dp_18" - android:layout_marginStart="@dimen/dp_20" + android:layout_marginStart="@dimen/dp_18" android:layout_marginEnd="@dimen/dp_18" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_operation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_operation.xml index de8d8eae24..716146b2a1 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_operation.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_operation.xml @@ -41,10 +41,11 @@ android:gravity="start" android:textColor="#FF203555" android:textSize="20dp" + android:textStyle="bold" android:layout_marginStart="@dimen/dp_13" android:layout_marginEnd="@dimen/dp_13" + android:maxLines="2" + android:ellipsize="end" /> - - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_operation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_operation.xml index a064113ef4..075ede3c2a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_operation.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_operation.xml @@ -1,7 +1,7 @@ - From cceb92531be1bc08b282255e76b510f530b80275 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 13 Mar 2023 15:13:41 +0800 Subject: [PATCH 2/8] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[=201?= =?UTF-8?q?=E3=80=81=E7=BB=9F=E4=B8=80=E9=99=8D=E4=BD=8E=E5=AE=9A=E4=BD=8D?= =?UTF-8?q?=E5=9B=9E=E8=B0=83=E7=9A=84=E9=A2=91=E7=8E=87=E4=B8=BA5Hz?= =?UTF-8?q?=E5=8D=B3200ms=E4=B8=80=E6=AC=A1=EF=BC=8C=E6=9D=A5=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E5=9B=A0=E9=A2=91=E6=94=BE=E5=9B=9E=E8=B0=83hreadUtil?= =?UTF-8?q?s.runOnUiThread=20=E3=80=81UiThreadHandler.post=E5=AF=BC?= =?UTF-8?q?=E8=87=B4UI=E5=8D=A1=E6=AD=BB=E9=97=AE=E9=A2=98=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../mogo/eagle/core/function/view/MapBizView.kt | 2 +- .../CallerChassisLocationGCJ02ListenerManager.kt | 14 +++++++++++++- .../CallerChassisLocationWGS84ListenerManager.kt | 14 +++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt index 6a108df146..8f0933ac44 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/MapBizView.kt @@ -32,7 +32,7 @@ class MapBizView(context: Context?, attrs: AttributeSet?) : MogoMapView(context, initMapView() CallerSkinModeListenerManager.addListener(TAG, this) - CallerChassisLocationWGS84ListenerManager.addListener(TAG, this) + CallerChassisLocationWGS84ListenerManager.addListener(TAG, 20,this) CallerChassisLamplightListenerManager.addListener(TAG, this) } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index 0c20a62a84..13693d165d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -73,7 +73,19 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase 0) { + // 计算是否进入下一次回调周期 + val nowTime = TimeUtils.getNowMills() + if (nowTime - hzLastSendTime > hzTime) { + syncLocationCallback(tag, it, mGnssInfo!!, sourceType) + } + } else { + syncLocationCallback(tag, it, mGnssInfo!!, sourceType) + } } } } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt index a0212d23ee..7c38e0fad2 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationWGS84ListenerManager.kt @@ -59,7 +59,19 @@ object CallerChassisLocationWGS84ListenerManager : CallerBase 0) { + // 计算是否进入下一次回调周期 + val nowTime = TimeUtils.getNowMills() + if (nowTime - hzLastSendTime > hzTime) { + syncLocationCallback(tag, it, mGnssInfo, sourceType) + } + } else { + syncLocationCallback(tag, it, mGnssInfo, sourceType) + } } } } From 07eebc1584e1aec0d26c68c8461b1f37db0199f2 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Mon, 13 Mar 2023 15:18:41 +0800 Subject: [PATCH 3/8] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[=201?= =?UTF-8?q?=E3=80=81=E4=BF=AE=E6=94=B9=E5=BC=95=E5=AF=BC=E7=BA=BF=E7=BB=98?= =?UTF-8?q?=E5=88=B6=E9=A2=91=E7=8E=87=E4=B8=BA20hz=EF=BC=8C=E4=B8=8E?= =?UTF-8?q?=E8=87=AA=E8=BD=A6=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../function/business/routeoverlay/MogoRouteOverlayManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java index a95b51813f..1d275b58ef 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java @@ -44,7 +44,7 @@ public class MogoRouteOverlayManager implements public void init() { CallerPlanningTrajectoryListenerManager.INSTANCE.addListener(TAG, this); CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, this); - CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this); + CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, 20,this); } public static MogoRouteOverlayManager getInstance() { From 35c0e8c98fca92a0b179d5ce5841d63e5d32850a Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 13 Mar 2023 15:34:56 +0800 Subject: [PATCH 4/8] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=B1=BD=E8=BD=A6=E4=BF=A1=E6=81=AF=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9C=A8=E8=B0=83=E8=AF=95=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../binding/BindingCarNetWorkManager.kt | 38 ++++++------------- .../main/res/layout/view_debug_setting.xml | 2 +- 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index a6b0fccc0f..e7a8d157db 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -72,36 +72,26 @@ class BindingCarNetWorkManager private constructor() { override fun onSubscribe(d: Disposable) {} override fun onNext(info: BindingCarInfo) { if (info != null && info.getData() != null) { - d( - SceneConstant.M_BINDING + TAG, - "getBindingCarInfo data =" + info.getData().toString() + d(SceneConstant.M_BINDING + TAG, "getBindingCarInfo data =" + info.getData().toString()) + SharedPrefsMgr.getInstance(context).putString( + SharedPrefsConstants.CAR_INFO, + GsonUtils.toJson(info.getData()) ) - updateCarVrIconRes(info.getData().brandId); when (info.getData().compare) { "0" -> showBindingCarDialog() "3" -> showModifyBindingCarDialog() "null" -> TipToast.shortTip("当前工控机没有入库") } - SharedPrefsMgr.getInstance(context).putString( - SharedPrefsConstants.CAR_INFO, - GsonUtils.toJson(info.getData()) - ) + updateCarVrIconRes(info.getData().brandId); } else { -// SharedPrefsMgr.getInstance(context).putString( -// SharedPrefsConstants.CAR_INFO, "null") - e( - SceneConstant.M_BINDING + TAG, "getBindingCarInfo data = null " - ) + SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, "") + e(SceneConstant.M_BINDING + TAG, "getBindingCarInfo data = null ") } } override fun onError(e: Throwable) { -// SharedPrefsMgr.getInstance(context).putString( -// SharedPrefsConstants.CAR_INFO, e.message.toString()) - e( - SceneConstant.M_BINDING + TAG, - "getBindingCarInfo onError e = " + e.toString() + "---e.getMessage = " + e.message - ) + SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.CAR_INFO, "") + e(SceneConstant.M_BINDING + TAG, "getBindingCarInfo onError e = " + e.toString() + "---e.getMessage = " + e.message) } override fun onComplete() {} @@ -138,19 +128,13 @@ class BindingCarNetWorkManager private constructor() { override fun onNext(info: ModifyBindingcarInfo) { if (info != null) { callBack.invoke(info) - d( - SceneConstant.M_BINDING + TAG, - "modifyBindingCar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString() - ) + d(SceneConstant.M_BINDING + TAG, "modifyBindingCar onNext code = " + info.code + "---msg = " + info.msg + "--info.toString() = " + info.toString()) updateCarVrIconRes(info.data.brandId) } } override fun onError(e: Throwable) { - e( - SceneConstant.M_BINDING + TAG, - "modifyBindingCar onError e = " + e.toString() + "---e.getMessage = " + e.message - ) + e(SceneConstant.M_BINDING + TAG, "modifyBindingCar onError e = " + e.toString() + "---e.getMessage = " + e.message) } override fun onComplete() {} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 8ba6b14009..0ab7cf9f74 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -222,7 +222,7 @@ style="@style/DebugSettingText" android:layout_width="match_parent" android:layout_height="wrap_content" - android:minLines="5" /> + android:minLines="4" /> Date: Mon, 13 Mar 2023 17:29:59 +0800 Subject: [PATCH 5/8] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E6=8E=89=E5=AF=B9=E8=B1=A1=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utilcode/mogo/logger/LoggerPrinter.java | 39 +++++-------------- 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/LoggerPrinter.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/LoggerPrinter.java index ce7fde2c02..e67902356f 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/LoggerPrinter.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/LoggerPrinter.java @@ -132,32 +132,9 @@ final class LoggerPrinter implements Printer { } } - private synchronized void log( String tag, LogLevel logLevel, String msg, Object... args) { + private void log( String tag, LogLevel logLevel, String msg, Object... args) { String message = this.createMessage(msg, args); - int methodCount = this.getMethodCount(); - this.logTopBorder(logLevel, tag); - this.logHeaderContent(logLevel, tag, methodCount); - byte[] bytes = message.getBytes(); - int length = bytes.length; - if (length <= 4000) { - if (methodCount > 0) { - this.logDivider(logLevel, tag); - } - - this.logContent(logLevel, tag, message); - this.logBottomBorder(logLevel, tag); - } else { - if (methodCount > 0) { - this.logDivider(logLevel, tag); - } - - for (int i = 0; i < length; i += 4000) { - int count = Math.min(length - i, 4000); - this.logContent(logLevel, tag, new String(bytes, i, count)); - } - - this.logBottomBorder(logLevel, tag); - } + logContent(logLevel, tag, message); } private void logTopBorder(LogLevel logLevel, String tag) { @@ -198,11 +175,13 @@ final class LoggerPrinter implements Printer { } private void logContent( LogLevel logLevel, String tag, String chunk) { - String[] lines = chunk.split( System.getProperty("line.separator")); - - for ( String line : lines) { - this.logChunk(logLevel, tag, "║ " + line); - } +// String[] lines = chunk.split( System.getProperty("line.separator")); +// +// for ( String line : lines) { +// this.logChunk(logLevel, tag, "║ " + line); +// } +// + logChunk(logLevel, tag, chunk); } private void logChunk( LogLevel logLevel, String tag, String chunk) { From 024235080988869bbbf0c93e58e8b91e8e56ffb3 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 10 Mar 2023 11:23:35 +0800 Subject: [PATCH 6/8] =?UTF-8?q?[Opt]=E6=9B=BF=E6=8D=A2=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E4=B8=AD=E3=80=81=E8=8B=B1=E3=80=81=E9=9F=A9=E5=8F=91=E9=9F=B3?= =?UTF-8?q?=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tts/tts-iflytek/src/main/res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tts/tts-iflytek/src/main/res/values/strings.xml b/tts/tts-iflytek/src/main/res/values/strings.xml index b0dbcd1930..e477a0c3f7 100644 --- a/tts/tts-iflytek/src/main/res/values/strings.xml +++ b/tts/tts-iflytek/src/main/res/values/strings.xml @@ -2,16 +2,16 @@ - xiaoyan + x4_lingxiaoying_en aisjiuxu aisxping aisjinger aisbabyxu - x2_enus_catherine + x2_engam_laura - zhimin + x2_KoKr_Miya \ No newline at end of file From 017a4ca72f58d6ae01ea42801d1614e26757d4ac Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 13 Mar 2023 19:02:17 +0800 Subject: [PATCH 7/8] =?UTF-8?q?[Opt3.0][Fix]=E8=A7=A3=E5=86=B3=E5=85=A8?= =?UTF-8?q?=E8=A7=88=E5=9C=B0=E5=9B=BE=E7=94=BB=E7=BA=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt index 1b8eb5302d..44d265137d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt @@ -111,8 +111,8 @@ object MarkerDrawerManager { ) if (baseDiffDis > diff) { baseDiffDis = diff - // 距离最近的时候判断是否走过,且车行驶是线性连续的1s不会跳点过多 - if (DrivingDirectionUtils.getDegreeOfCar2Poi2(realLon, realLat, latLng.longitude, latLng.latitude, heading) >= 90 && i - lastArrivedIndex < 3) { + // 距离最近的时候判断是否走过 + if (DrivingDirectionUtils.getDegreeOfCar2Poi2(realLon, realLat, latLng.longitude, latLng.latitude, heading) >= 90) { currentIndex = i } } From 7119060d21f17eb40686c14bf33d9b6f7fe09b4b Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 14 Mar 2023 10:56:07 +0800 Subject: [PATCH 8/8] [m1-p-1.1.0] change the speed limit loc to wgs84 --- .../core/function/business/SpeedLimitDataManager.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java index 7d77a80af3..8f02b7a311 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/SpeedLimitDataManager.java @@ -5,7 +5,9 @@ import androidx.annotation.Nullable; import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Listener; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -19,7 +21,7 @@ import java.util.TimerTask; * * @author mogoauto */ -public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener { +public class SpeedLimitDataManager implements IMoGoChassisLocationWGS84Listener { private final static String TAG = "SpeedLimitDataManager"; private static volatile SpeedLimitDataManager instance; @@ -40,7 +42,7 @@ public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener } @Override - public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { + public void onChassisLocationWGS84(@Nullable MogoLocation gnssInfo) { mLocation = gnssInfo; } @@ -65,7 +67,7 @@ public class SpeedLimitDataManager implements IMoGoChassisLocationGCJ02Listener } public void start() { - CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG, this); + CallerChassisLocationWGS84ListenerManager.INSTANCE.addListener(TAG, this); Timer mTimer = new Timer(); mTimer.schedule(new SpeedTimerTask(), 3000, 1000); }