From dc503f7f4dc7b98d6aa207f3c782cf016a5fd010 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 14 Dec 2020 17:48:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E7=95=8C=E9=9D=A2=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E6=A8=A1=E5=BC=8F=E5=92=8Cvr=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extensions/entrance/EntranceFragment.java | 38 ++-- .../extensions/navi/AnimNavInfoView.java | 8 +- .../extensions/navi/VrModeNavInfoView.java | 99 +++++++++- .../extensions/utils/TopViewAnimHelper.java | 44 +++-- .../utils/TrafficLightPanelManager.java | 175 ------------------ .../main/res/layout/include_navi_in_vr.xml | 3 +- .../res/layout/module_ext_layout_entrance.xml | 1 + 7 files changed, 149 insertions(+), 219 deletions(-) delete mode 100644 modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TrafficLightPanelManager.java 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 f5b6f63acd..7ee3279e7b 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 @@ -30,6 +30,8 @@ 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.IMogoLocationListener; +import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoAimlessModeListener; import com.mogo.map.navi.IMogoNavi; @@ -43,14 +45,11 @@ import com.mogo.module.common.dialog.WMDialog; import com.mogo.module.common.glide.SkinAbleBitmapTarget; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.module.common.map.MapCenterPointStrategy; -import com.mogo.module.common.map.MyLocationUtil; import com.mogo.module.common.map.Scene; import com.mogo.module.common.view.OnPreventFastClickListener; -import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.extensions.R; import com.mogo.module.extensions.navi.AnimNavInfoView; import com.mogo.module.extensions.navi.BaseNaviInfoView; -import com.mogo.module.extensions.navi.NaviInfoView; import com.mogo.module.extensions.navi.VrModeNavInfoView; import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.utils.AdasNoticeHelper; @@ -58,8 +57,6 @@ import com.mogo.module.extensions.utils.CameraLiveNoticeHelper; import com.mogo.module.extensions.utils.EntranceViewHolder; import com.mogo.module.extensions.utils.NoMapTopViewShaderHelper; import com.mogo.module.extensions.utils.TopViewAnimHelper; -import com.mogo.module.extensions.utils.TopViewNoLinkageAnimHelper; -import com.mogo.module.extensions.utils.TrafficLightPanelManager; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.analytics.IMogoAnalytics; @@ -115,7 +112,8 @@ public class EntranceFragment extends MvpFragment seekHelpNoticeListener = + private final IMogoOnMessageListener seekHelpNoticeListener = new IMogoOnMessageListener() { @Override - public Class target() { + public Class target() { return String.class; } @@ -1206,7 +1204,7 @@ public class EntranceFragment extends MvpFragment - * 导航信息内容通过{@link com.mogo.module.extensions.navi.VrModeNavInfoView} 在{@link com.mogo.module.extensions.entrance.EntranceFragment}进行控制 - * 此处仅控制导航信息的显示与隐藏 - * - * @author tongchenfei - */ -public class TrafficLightPanelManager implements Handler.Callback, View.OnClickListener { - private static final String TAG = "TrafficLightPanelManager"; - - private TrafficLightPanelManager() { - } - - private final static TrafficLightPanelManager INSTANCE = new TrafficLightPanelManager(); - - public static TrafficLightPanelManager getInstance() { - return INSTANCE; - } - - private Group speedGroup, navGroup, extraGroup; - private TextView tvLimitSpeed; - private VerticalTrafficLightView turnAroundLight, turnLeftLight, straightLight, turnRightLight; - - private Handler handler = new Handler(this); - - private boolean isInit = false; - - public void initPanel(View root) { - speedGroup = root.findViewById(R.id.module_ext_id_group_navi_in_vr_speed); - navGroup = root.findViewById(R.id.module_ext_id_group_navi_in_vr_nav_info); - extraGroup = root.findViewById(R.id.module_ext_id_group_traffic_light_panel_extra); - tvLimitSpeed = root.findViewById(R.id.module_ext_id_tv_limit_speed); - turnAroundLight = root.findViewById(R.id.module_ext_id_traffic_light_turn_around); - turnLeftLight = root.findViewById(R.id.module_ext_id_traffic_light_turn_left); - straightLight = root.findViewById(R.id.module_ext_id_traffic_light_straight); - turnRightLight = root.findViewById(R.id.module_ext_id_traffic_light_turn_right); - isInit = true; - - // debug -// root.findViewById(R.id.module_ext_id_navi_in_vr_speed_bg).setOnClickListener(this); -// root.findViewById(R.id.module_ext_id_navi_in_vr_traffic_bg).setOnClickListener(this); - } - - public void showNavPanel() { - if (!isInit) { - Logger.e(TAG, "nav panel 未初始化"); - return; - } -// extraGroup.setVisibility(View.VISIBLE); -// if (isNav) { -// navGroup.setVisibility(View.VISIBLE); -// speedGroup.setVisibility(View.GONE); -// } else { -// speedGroup.setVisibility(View.VISIBLE); -// navGroup.setVisibility(View.GONE); -// } -// tvLimitSpeed.setVisibility(View.VISIBLE); - } - - public void hideNavPanel() { - if (!isInit) { - Logger.e(TAG, "nav panel 未初始化"); - return; - } -// extraGroup.setVisibility(View.GONE); -// speedGroup.setVisibility(View.GONE); -// tvLimitSpeed.setVisibility(View.GONE); - - } - - private boolean isNav = false; - - public void startNav() { - isNav = true; -// navGroup.setVisibility(View.VISIBLE); -// speedGroup.setVisibility(View.GONE); - } - - public void stopNav() { - isNav = false; -// speedGroup.setVisibility(View.VISIBLE); -// navGroup.setVisibility(View.GONE); - } - - public void refreshLimitSpeed(int limitSpeed) { - handler.removeMessages(MSG_HIDE_LIMIT_SPEED); - tvLimitSpeed.setVisibility(View.VISIBLE); - tvLimitSpeed.setText(String.valueOf(limitSpeed)); - handler.sendEmptyMessageDelayed(MSG_HIDE_LIMIT_SPEED, HIDE_LIMIT_SPEED_DELAY); - } - - /** - * 刷新红绿灯显示状态 - * - * @param laneLight 固定数组长度为4的车道类型灯,从0-3依次代表 掉头,左转,执行,右转 - * @param surplusTime 固定数组长度为4的剩余时长数组,从0-3依次代表 掉头,左转,执行,右转 - */ - public void refreshTrafficLightStatus(int[] laneLight, String[] surplusTime) { - turnAroundLight.setTrafficLightStatus(laneLight[0], surplusTime[0]); - turnLeftLight.setTrafficLightStatus(laneLight[1], surplusTime[1]); - straightLight.setTrafficLightStatus(laneLight[2], surplusTime[2]); - turnRightLight.setTrafficLightStatus(laneLight[3], surplusTime[3]); - } - - public void release() { - isInit = false; - speedGroup = null; - navGroup = null; - extraGroup = null; - tvLimitSpeed = null; - turnAroundLight = null; - turnLeftLight = null; - straightLight = null; - turnRightLight = null; - } - - private static final int MSG_HIDE_LIMIT_SPEED = 1001; - private static final long HIDE_LIMIT_SPEED_DELAY = 5000; - - @Override - public boolean handleMessage(Message msg) { - if (!isInit) { - return false; - } - if (msg.what == MSG_HIDE_LIMIT_SPEED) { - tvLimitSpeed.setVisibility(View.GONE); - return true; - } - return false; - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.module_ext_id_navi_in_vr_speed_bg) { - boolean s = new Random().nextBoolean(); - boolean b = new Random().nextBoolean(); - if (s) { - if (b) { - startNav(); - } else { - stopNav(); - } - } else { - refreshLimitSpeed(90); - } - } else { - int[] color = new int[4]; - String[] time = new String[4]; - for (int i = 0; i < 4; i++) { - int s = new Random().nextInt(4); - boolean b = new Random().nextBoolean(); - color[i] = s; - time[i] = b ? "12" : ""; - } - refreshTrafficLightStatus(color, time); - } - - } -} diff --git a/modules/mogo-module-extensions/src/main/res/layout/include_navi_in_vr.xml b/modules/mogo-module-extensions/src/main/res/layout/include_navi_in_vr.xml index 34a47aaadd..e6efac5899 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/include_navi_in_vr.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/include_navi_in_vr.xml @@ -107,6 +107,7 @@ android:gravity="center" android:text="80" android:textColor="#FF9CA8D8" + android:visibility="gone" android:textSize="@dimen/module_ext_navi_in_vr_limit_speed_text_size" app:layout_constraintBottom_toTopOf="@id/module_ext_id_navi_in_vr_traffic_bg" app:layout_constraintRight_toRightOf="@id/module_ext_id_navi_in_vr_bg" @@ -169,7 +170,7 @@ android:id="@+id/module_ext_id_group_traffic_light_panel_extra" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:visibility="gone" + android:visibility="visible" app:constraint_referenced_ids="module_ext_id_navi_in_vr_bg,module_ext_id_navi_in_vr_speed_bg,module_ext_id_navi_in_vr_traffic_bg,module_ext_id_traffic_light_turn_left,module_ext_id_traffic_light_turn_around,module_ext_id_traffic_light_straight,module_ext_id_traffic_light_turn_right" tools:visibility="visible" /> 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 eb8d2bd448..b1610caf4c 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 @@ -20,6 +20,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/module_ext_id_vr_nav_info" + android:visibility="gone" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"/>