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 9f691ddd29..a70c9bfc85 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; @@ -52,6 +54,7 @@ import com.mogo.module.extensions.utils.TopViewNoLinkageAnimHelper; 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; @@ -175,10 +178,14 @@ public class EntranceFragment extends MvpFragment seekHelpGroup.setVisibility(View.GONE)); + } } } @@ -885,6 +901,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(); @@ -897,11 +943,13 @@ public class EntranceFragment extends MvpFragment { - 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); }); } } diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_icon_seek_help_notice_icon.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_icon_seek_help_notice_icon.png new file mode 100644 index 0000000000..df529f009a Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_ext_icon_seek_help_notice_icon.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_ext_icon_seek_help_notice_icon.png b/modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_ext_icon_seek_help_notice_icon.png new file mode 100644 index 0000000000..df529f009a Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-mdpi/module_ext_icon_seek_help_notice_icon.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_icon_seek_help_notice_icon.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_icon_seek_help_notice_icon.png new file mode 100644 index 0000000000..d23e70cbb4 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/module_ext_icon_seek_help_notice_icon.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_seek_help_notice_bg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_seek_help_notice_bg.xml new file mode 100644 index 0000000000..a66e635a90 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_drawable_seek_help_notice_bg.xml @@ -0,0 +1,10 @@ + + + + + + \ 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 9f26af1456..97b5c3903e 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("已发布求助信息,将为你通知其他车主") 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">