From 788644b94491d1ce83cc30bf0ce5cf88551548e7 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 2 Nov 2020 15:41:32 +0800 Subject: [PATCH 1/3] =?UTF-8?q?crash=20fix:=20try-catch=E4=BD=8FTopViewHel?= =?UTF-8?q?per=E9=87=8C=E9=9D=A2=E4=B8=80=E4=B8=AAClassCastException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/utils/TopViewAnimHelper.java | 113 ++++++++++-------- 1 file changed, 61 insertions(+), 52 deletions(-) diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java index e3299f92b7..69768084e3 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewAnimHelper.java @@ -366,68 +366,77 @@ public class TopViewAnimHelper { statusListenerMap.get(view).beforeViewAddAnim(view); } topContainer.setChildAddedListener(child -> { - topContainer.setChildAddedListener(null); - if (naviBg.getVisibility() == View.VISIBLE) { - remainDistanceGroup.setVisibility(View.GONE); - remainTimeGroup.setVisibility(View.GONE); - arriveTimeGroup.setVisibility(View.GONE); - } + try { + topContainer.setChildAddedListener(null); + if (naviBg.getVisibility() == View.VISIBLE) { + remainDistanceGroup.setVisibility(View.GONE); + remainTimeGroup.setVisibility(View.GONE); + arriveTimeGroup.setVisibility(View.GONE); + } - constraintSet.clone(topMotionLayout); + constraintSet.clone(topMotionLayout); - constraintSet.clear(R.id.module_entrance_id_top_container, - ConstraintSet.BOTTOM); - constraintSet.connect(R.id.module_entrance_id_top_container, ConstraintSet.TOP, - R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); + constraintSet.clear(R.id.module_entrance_id_top_container, + ConstraintSet.BOTTOM); + constraintSet.connect(R.id.module_entrance_id_top_container, + ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP); // if (CarSeries.getSeries() == CarSeries.CAR_SERIES_F80X) { - TransitionManager.beginDelayedTransition(topMotionLayout, transition); + TransitionManager.beginDelayedTransition(topMotionLayout, transition); // } - checkCameraModePosition(false); - if (naviBg.getVisibility() == View.VISIBLE) { - // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() - // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 - constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, - ivTurnIcon.getId(), ConstraintSet.BOTTOM); - constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.LEFT, - naviBg.getId(), ConstraintSet.LEFT, - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_marginLeft)); + checkCameraModePosition(false); + if (naviBg.getVisibility() == View.VISIBLE) { + // 约束设置需要在applyTo()方法之前执行,visiable设置需要在applyTo() + // 方法之后执行才能生效,所以分开了两个判断,至于为什么这么做才能生效,不得而知 + constraintSet.connect(tvNextDistance.getId(), ConstraintSet.BOTTOM, + ivTurnIcon.getId(), ConstraintSet.BOTTOM); + constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.LEFT, + naviBg.getId(), ConstraintSet.LEFT, + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_marginLeft)); // constraintSet.clear(tvNextRoad.getId(), ConstraintSet.BOTTOM); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BOTTOM, - tvNextDistance.getId(), ConstraintSet.BOTTOM, - (int) getDimen(R.dimen.module_map_id_navi_next_info_road_marginBottom_small)); - constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, - R.id.module_map_id_navi_next_info_turn_info, ConstraintSet.RIGHT, - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.BOTTOM, + tvNextDistance.getId(), ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.module_map_id_navi_next_info_road_marginBottom_small)); + constraintSet.connect(tvNextRoad.getId(), ConstraintSet.LEFT, + R.id.module_map_id_navi_next_info_turn_info, + ConstraintSet.RIGHT, + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.dp_46)); - constraintSet.clear(ivTurnIcon.getId(), ConstraintSet.TOP); - constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM, - naviBg.getId(), ConstraintSet.BOTTOM, - (int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom)); + constraintSet.clear(ivTurnIcon.getId(), ConstraintSet.TOP); + constraintSet.connect(ivTurnIcon.getId(), ConstraintSet.BOTTOM, + naviBg.getId(), ConstraintSet.BOTTOM, + (int) getDimen(R.dimen.module_ext_navi_info_turn_icon_margin_bottom)); - constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, - R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, - computeNaviMarginTop(params.height)); + constraintSet.connect(naviBg.getId(), ConstraintSet.TOP, + R.id.module_entrance_id_top_motion_layout, ConstraintSet.TOP, + computeNaviMarginTop(params.height)); - // 动态改变相关字体大小 - tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize_small)); - tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX,getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small)); + // 动态改变相关字体大小 + tvNextDistance.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_textSize_small)); + tvNextDistanceUnit.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getDimen(R.dimen.module_ext_navi_info_panel_next_info_distance_unit_textSize_small)); + } + constraintSet.applyTo(topMotionLayout); + ivTurnIcon.getLayoutParams().height = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); + ivTurnIcon.getLayoutParams().width = + (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); + naviBg.getLayoutParams().height = + (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); + int scene = 0; + if (naviBg.getVisibility() == View.VISIBLE) { + scene = Scene.NAVI_WITH_ROAD_EVENT; + } else { + scene = Scene.AIMLESS_WITH_ROAD_EVENT; + } + Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); + MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); + } catch (Exception e) { + Logger.e(TAG, e, "添加view异常"); + e.printStackTrace(); } - constraintSet.applyTo(topMotionLayout); - ivTurnIcon.getLayoutParams().height = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_height); - ivTurnIcon.getLayoutParams().width = - (int) getDimen(R.dimen.module_ext_navi_info_panel_turn_icon_small_width); - naviBg.getLayoutParams().height = - (int) topMotionLayout.getContext().getResources().getDimension(R.dimen.module_ext_navi_info_panel_small_height); - int scene = 0; - if (naviBg.getVisibility() == View.VISIBLE) { - scene = Scene.NAVI_WITH_ROAD_EVENT; - } else { - scene = Scene.AIMLESS_WITH_ROAD_EVENT; - } - Logger.d(TAG, "show top setMapCenterPointByScene: " + scene); - MapCenterPointStrategy.setMapCenterPointByScene(mogoMapUIController, scene); }); } } From cbc575ccf313ef89eb1955698b72b847621c4747 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 2 Nov 2020 17:25:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?v2x=E8=A7=86=E9=A2=91=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=99=A8=E7=99=BD=E5=8A=A0=E9=BB=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/window_road_video_layout.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml index ec3e8626d3..4eb87eec93 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video_layout.xml @@ -14,7 +14,7 @@ android:layout_marginTop="@dimen/dp_30" android:layout_marginRight="@dimen/dp_30" android:layout_marginBottom="@dimen/dp_327" - android:background="#D9FFFFFF" + android:background="@drawable/module_v2x_shadow_bkg" app:roundLayoutRadius="@dimen/dp_28"> Date: Mon, 2 Nov 2020 17:49:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=95=85=E9=9A=9C?= =?UTF-8?q?=E6=B1=82=E5=8A=A9=E9=80=9A=E7=9F=A5=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/entrance/EntranceFragment.java | 50 +++++++++++- .../module_ext_icon_seek_help_notice_icon.png | Bin 0 -> 984 bytes .../module_ext_icon_seek_help_notice_icon.png | Bin 0 -> 984 bytes .../module_ext_icon_seek_help_notice_icon.png | Bin 0 -> 1892 bytes ...odule_ext_drawable_seek_help_notice_bg.xml | 10 +++ .../res/layout/include_navi_info_panle.xml | 3 +- ...module_ext_include_seeking_help_notice.xml | 71 ++++++++++++++++++ .../res/layout/module_ext_layout_entrance.xml | 5 ++ .../src/main/res/values-xhdpi/dimens.xml | 8 ++ .../src/main/res/values/dimens.xml | 8 ++ .../module/share/manager/SeekHelpManager.kt | 2 + 11 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_icon_seek_help_notice_icon.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_ext_icon_seek_help_notice_icon.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_icon_seek_help_notice_icon.png create mode 100644 modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_seek_help_notice_bg.xml create mode 100644 modules/mogo-module-extensions/src/main/res/layout/module_ext_include_seeking_help_notice.xml diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 2afba379f1..56f72c9746 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -1,8 +1,10 @@ package com.mogo.module.extensions.entrance; import android.content.Intent; +import android.content.SharedPreferences; import android.graphics.Rect; import android.os.Bundle; +import android.os.Handler; import android.text.TextUtils; import android.util.TypedValue; import android.view.LayoutInflater; @@ -16,6 +18,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintSet; +import androidx.constraintlayout.widget.Group; import com.alibaba.android.arouter.launcher.ARouter; import com.bumptech.glide.request.RequestOptions; @@ -26,7 +29,6 @@ import com.mogo.commons.voice.AIAssist; import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationClient; -import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoAimlessModeListener; import com.mogo.map.navi.IMogoNavi; @@ -51,6 +53,7 @@ import com.mogo.module.extensions.utils.TopViewAnimHelper; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.analytics.IMogoAnalytics; +import com.mogo.service.connection.IMogoOnMessageListener; import com.mogo.service.entrance.ButtonIndex; import com.mogo.service.fragmentmanager.IFragmentProvider; import com.mogo.service.fragmentmanager.IMogoFragmentManager; @@ -174,10 +177,14 @@ public class EntranceFragment extends MvpFragment seekHelpGroup.setVisibility(View.GONE)); + } } } @@ -880,6 +896,36 @@ public class EntranceFragment extends MvpFragment seekHelpNoticeListener = + new IMogoOnMessageListener() { + @Override + public Class target() { + return String.class; + } + + @Override + public void onMsgReceived(String obj) { + if(mStatusManager.isSeekHelping()) { + int seekNum = SharedPrefsMgr.getInstance(getContext()).getInt("seek_help_num", 0); + final int finalSeekNum = seekNum++; + SharedPrefsMgr.getInstance(getContext()).putInt("seek_help_num", seekNum); + handler.post(() -> { + seekHelpGroup.setVisibility(View.VISIBLE); + seekHelpNum.setText("" + finalSeekNum); + }); + } + } + }; + + private Handler handler = new Handler(); + + private void listenSeekNumber(){ + mApis.getSocketManagerApi(getContext()).registerOnMessageListener(SEEK_HELP_NOTICE_NUM_MSG_TYPE, seekHelpNoticeListener); + mStatusManager.registerStatusChangedListener(TAG,StatusDescriptor.SEEK_HELPING,this); + } + @Override public void onDestroy() { super.onDestroy(); @@ -892,11 +938,13 @@ public class EntranceFragment extends MvpFragmentPx&l1W5CR7ee-m0O5TQ547La~b!`ATr85m&pBAMm!)zA;p`NBv0gl2bv_3;*I1% z$ffZ@!V^aFLLNkv%TR=pCUY9c=kxu* z0&SiC!6?|D+o2bw1iD+W$qEt!c-wW_VRS`z$VT!Z5}DK>bqDB@@oxkh@HEft{TiaD3DHDADpVHbVq9NI|Kbj);^TPL&0u}_D7NVI^i?gFPJF zCU5~Ag;;l-i@^6)NBo!V)PlWWV$3XK5Pt}s8*)pxfNEyAE1?iv33ddhWtfTC8-A2U z_I_ms{aGTa)j{$aco#0t?iI6u6(mOzTOkQ)rEFQ_*2D1S;-%awCd6Io>U!3HX zN{bLveBvp<++(2ZLd@Z9?XPn)Sc1L9uVNwS1^jr=fwp8gL7SQe`m~iuY!~o7`kvR? z*$~hJe5aF2pB&*JR~S8AHuyL&6$a+|%9D68_z(jvc$GMV2u#LqOEwYo4mb(C%PIuPNAwct2>jIN(v6*z2)U~vCnbU7I8^SI;f$2XGGbDK**YJ;4K6g9-0000Px&l1W5CR7ee-m0O5TQ547La~b!`ATr85m&pBAMm!)zA;p`NBv0gl2bv_3;*I1% z$ffZ@!V^aFLLNkv%TR=pCUY9c=kxu* z0&SiC!6?|D+o2bw1iD+W$qEt!c-wW_VRS`z$VT!Z5}DK>bqDB@@oxkh@HEft{TiaD3DHDADpVHbVq9NI|Kbj);^TPL&0u}_D7NVI^i?gFPJF zCU5~Ag;;l-i@^6)NBo!V)PlWWV$3XK5Pt}s8*)pxfNEyAE1?iv33ddhWtfTC8-A2U z_I_ms{aGTa)j{$aco#0t?iI6u6(mOzTOkQ)rEFQ_*2D1S;-%awCd6Io>U!3HX zN{bLveBvp<++(2ZLd@Z9?XPn)Sc1L9uVNwS1^jr=fwp8gL7SQe`m~iuY!~o7`kvR? z*$~hJe5aF2pB&*JR~S8AHuyL&6$a+|%9D68_z(jvc$GMV2u#LqOEwYo4mb(C%PIuPNAwct2>jIN(v6*z2)U~vCnbU7I8^SI;f$2XGGbDK**YJ;4K6g9-0000Px+9!W$&R9FeUm}{sNRTRh7wAAcnQDkbSgjvx;dq^5&SR_FRg4GB6&`S~g(3c1z zx~LEpmX(5Oko74F%b*8k5cxgpN>W=1>VDCUO(`Jqr=lu-^<#(2!1r^65&T~{K*p9!U0L+?=7 z2)Q>DvR-piM}$$}q_85l>+!M*_}nnqSerINK>16^a@v&&6vANdY4_+yVVD6<0RzCP zRSd*!DsqKzTmaI_LLVI4Ti{pwd=|VN2087I!I*-sOG9t)P0@gETv3;{F-jX!MOCP% zD+5gj7)}_cAzubQV_@%xUYrj-j?+oV`ON>usbvS-;{@a%Ne4X&3In{*Ml81%PMhwef@ z2+Z!w&m?dN!!^hZLHab^Hk24;(@xT2(dftLH>gr?i_;dq67gH`O_CEk$~X^jX)N%u{9CI@4TgLyy3PmE$-62%-KN7$I)J1#*F2r@83Njb z?IIC(44qSAo|{0jbSA+a#sL)#NFV34lt?~ImI^$7HZjcYo& zSg_}+JY@5VCB)agA7l%`w?frIr$iebGa=sz-XUp6#@@0>AHLqt0xqo>e0Js+(8p`V z#JPe=;$QzD@Zi@LiIly>d~Xk znRtE3;W~dCL@jbLl{_E&QOd;gft$lZ-3*Bihi%AB6S*wbB^6}h%gECiie@-@uEcK* zh>5e{-C(GSJAk{`%Zh7PzPi<7iIGfv7B~l(^L*gCY>DXm3j$sO*3%!D!^xOy!R}TK zQLF{80zILV3Gy;3yzR=>^@J7^6w4~&C;In~0T!##89K}ecfor?QLqyc=uyGc@FPoO zKY8NbYCXwq`w)VEp~c$CARPM>(CGG!TPgjC)~A+voB-j`)G|?nlb9{m9G%Ya&tNo& z8Buo?*Z^8025GJbS_-P~Jh8;I$z$Yluo1L_&EQM$VTto`Rm7#2edM5V#|Oegz)@m&pG@ z_62gU1+=Brr3GME4)%b3-~jLi$B%j^YF(E0tCBuuf--9ShCsy4z#{#M_z%dEuWu)8 z#?1w?uY}pY{6IOm?g)zpoXfseW)rTY;g_S9$QWR3BU;!}(yTLCeFxjyD0_+RcXXl^ zvXACxG+SgnnS|rPnpUbfj<318zYNstIHUJT)MKJE<9&^~9gGBCPy&d(Iy3kQ`CYJ) e + + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml index 289e64c9d9..3bea94c0eb 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle.xml @@ -2,7 +2,8 @@ + tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout" + > + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index 290f28af62..5e92507d0d 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -9,6 +9,11 @@ + + 31px 10px + + 44px + 1060px + 100px + 30px + 34px + 20px + 40px \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index bc7e325604..2c1cfff501 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -162,4 +162,12 @@ 14px 8px + + 25px + 25px + 16px + 56px + 18px + 10px + 22px \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt index 8eb55c6bf3..d1b6bf781b 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt @@ -170,6 +170,8 @@ object SeekHelpManager { // 接口请求成功,内部同步v2x状态,通知adas,改变自车图标 ServiceApisManager.serviceApis.statusManagerApi.setSeekHelping("ShareDialog", true) SharedPrefsMgr.getInstance(context!!).putLong("seek_help_time", System.currentTimeMillis()) + SharedPrefsMgr.getInstance(context!!).putInt("seek_help_num", 0) + isSeekHelp = true aiAssist?.speakTTSVoice("已发布求助信息,将为你通知其他车主") toast("已发布求助信息,将为你通知其他车主")