场景整合,预警红窗使用hmi

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2021-12-20 17:01:20 +08:00
parent 197da72b55
commit c8ea50abc0
18 changed files with 56 additions and 333 deletions

View File

@@ -2,7 +2,6 @@ package com.mogo.module.extensions.entrance;
import static com.mogo.module.common.utils.SPConst.getSPGuideRecord;
import static com.mogo.module.extensions.ExtensionsModuleConst.TYPE_ENTRANCE;
import static com.mogo.module.service.receiver.MogoReceiver.ACTION_V2X_REMOVE_TIP_WINDOW;
import static com.mogo.module.share.constant.ShareConstants.KEY_CLICK_SHARE_BUTTON;
import static com.mogo.module.share.constant.ShareConstants.KEY_CLICK_SHARE_TIME;
import static com.mogo.module.share.constant.ShareConstants.KEY_SERVER_SHOW_DAY_COUNT;
@@ -387,7 +386,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
.registerCarLocationChangedListener(TAG, this);
localIsVrMode = true;
mApis.getV2XListenerManager().changeTipWindowStatusForListener(ACTION_V2X_REMOVE_TIP_WINDOW);
}
private void exitVrMode() {

View File

@@ -10,7 +10,6 @@ import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -79,11 +78,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
protected FrameLayout mFloatingLayout;
protected View mCoverUpLayout;
protected ImageView mWarningTop;
protected ImageView mWarningLeft;
protected ImageView mWarningRight;
protected ImageView mWarningBottom;
protected ConstraintLayout clSpecialEffect;
private boolean isFirst = false;
@@ -108,11 +102,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
mCoverUpLayout = findViewById(R.id.module_main_id_cover_up);
mHistoryMessagePanel = findViewById(R.id.module_main_id_message_history_fragment_container);
mWarningTop = findViewById(R.id.warning_top);
mWarningLeft = findViewById(R.id.warning_left);
mWarningRight = findViewById(R.id.warning_right);
mWarningBottom = findViewById(R.id.warning_bottom);
clSpecialEffect = findViewById(R.id.cl_special_effect);
FloatingViewHandler.init(mFloatingLayout);

View File

@@ -13,44 +13,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!--四个方向,碰撞预警-->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/warning_top"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_390"
android:background="@drawable/module_main_warning_bkg_top"
android:visibility="gone" />
<ImageView
android:id="@+id/warning_left"
android:layout_width="@dimen/dp_390"
android:layout_height="match_parent"
android:background="@drawable/module_main_warning_bkg_left"
android:visibility="gone" />
<ImageView
android:id="@+id/warning_right"
android:layout_width="@dimen/dp_390"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@drawable/module_main_warning_bkg_right"
android:visibility="gone" />
<ImageView
android:id="@+id/warning_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_390"
android:layout_gravity="bottom"
android:background="@drawable/module_main_warning_bkg_bottom"
android:visibility="gone" />
</FrameLayout>
<!-- 天气动画层 -->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_special_effect"
android:layout_width="match_parent"

View File

@@ -26,7 +26,6 @@ import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.v2x.IV2XProvider;
import com.mogo.utils.logger.Logger;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
import com.zhidao.carchattingprovider.ICarsChattingProvider;
@@ -59,7 +58,6 @@ public class MarkerServiceHandler {
private static IMogoADASController sADASController;
private static IMogoFragmentManager sFragmentManager;
private static ICarsChattingProvider sCarChatting;
private static IV2XProvider sIV2XProvider;
private static IMogoOverlayManager sIMogoOverlayManager;
// private static IMogoGpsSimulatorManager sGpsSimulatorManager;
@@ -88,7 +86,6 @@ public class MarkerServiceHandler {
sADASController = sApis.getAdasControllerApi();
sFragmentManager = sApis.getFragmentManagerApi();
sCarChatting = ( ICarsChattingProvider ) ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation( context );
sIV2XProvider = sApis.getV2XListenerManager();
MapMarkerManager.getInstance().init( context );

View File

@@ -59,10 +59,6 @@ public class MogoReceiver extends BroadcastReceiver {
// 同行者 查询xxx堵不堵发送的广播
public static final String ACTION_TXZ_BLOCK_SEARCH = "com.zhidao.roadcondition.roadinfo";
//车路云—场景预警
public static final String ACTION_V2X_FRONT_WARNING = "ACTION_V2X_FRONT_WARNING";
//v2x预警弹框清除
public static final String ACTION_V2X_REMOVE_TIP_WINDOW = "ACTION_V2X_REMOVE_TIP_WINDOW";
//车辆监控
public static final String ACTION_CHECK_VEHICLE_MONITORING = "ACTION_CHECK_VEHICLE_MONITORING";

View File

@@ -1,5 +1,9 @@
package com.mogo.module.v2x.adapter.holder;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
@@ -16,6 +20,8 @@ import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.enums.WarningDirectionEnum;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.network.utils.GsonUtil;
import com.mogo.module.common.animation.BezierAnimationView;
import com.mogo.module.common.entity.MarkerExploreWay;
@@ -26,8 +32,6 @@ import com.mogo.module.common.entity.V2XMessageEntity;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.common.enums.EventTypeEnum;
import com.mogo.module.common.wm.WindowManagerView;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.v2x.R;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.net.V2XUserInfoRes;
@@ -52,11 +56,6 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_THE_FRONT_CRASH_WARNING_TOP;
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
/**
* author : donghongyu
* e-mail : 1358506549@qq.com
@@ -84,7 +83,6 @@ public class V2XRoadEventVH extends V2XBaseViewHolder<V2XEventShowEntity> {
private ImageView ivEventReportErr;
private HeartLikeView ivEventZan;
private ViewGroup mViewGroup;
private WindowManagerView mWindowManagerView;
// 上传事件的用户信息
@@ -171,7 +169,6 @@ public class V2XRoadEventVH extends V2XBaseViewHolder<V2XEventShowEntity> {
LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_v2x_event_detail, viewGroup, false)
, v2XWindow);
mContext = viewGroup.getContext();
mViewGroup = viewGroup;
init(itemView);
// 设置视图状态监听
itemView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
@@ -280,9 +277,9 @@ public class V2XRoadEventVH extends V2XBaseViewHolder<V2XEventShowEntity> {
}
ivEvent.setImageResource(EventTypeEnum.getPoiTypeSrcVr(mNoveltyInfo.getPoiType()));
tvEvent.setText(EventTypeEnum.getPoiTypeStrVr(mNoveltyInfo.getPoiType()));
if (EventTypeEnum.FOURS_FOG.equals(mNoveltyInfo.getPoiType())) {
if (EventTypeEnum.FOURS_FOG.getPoiType().equals(mNoveltyInfo.getPoiType())) {
V2XServiceManager.getDisplayEffectsManager().displayEffects(EventTypeEnum.FOURS_FOG.getPoiType());
MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(ALERT_THE_FRONT_CRASH_WARNING_TOP, MogoReceiver.ACTION_V2X_FRONT_WARNING);
CallerHmiManager.INSTANCE.showWarning(WarningDirectionEnum.ALERT_WARNING_TOP);
}
tvEventAddress.setText(mNoveltyInfo.getAddr());
tvEventDistance.setText("距离 " + (int) mNoveltyInfo.getDistance() + "");

View File

@@ -5,8 +5,6 @@ import android.util.AttributeSet;
import android.util.Log;
import android.widget.RelativeLayout;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.service.v2x.IV2XWindowManagerListener;
import com.mogo.utils.logger.Logger;
@@ -33,7 +31,6 @@ public class V2XBasWindow extends RelativeLayout implements IV2XWindowManagerLis
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
MogoApisHandler.getInstance().getApis().getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_FRONT_WARNING, this);
Logger.w(TAG, "onAttachedToWindow……");
}

View File

@@ -1,42 +1,39 @@
package com.mogo.module.v2x.scenario.scene.warning;
import android.location.Location;
import android.util.Log;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.V2XWarnDataDrawer;
import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.module.common.utils.Trigonometric;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.model.DrawLineInfo;
import com.mogo.module.v2x.listener.V2XLocationListener;
import com.mogo.module.v2x.scenario.view.IV2XMarker;
import com.mogo.utils.UiThreadHandler;
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_STOP_LINE_DATA;
import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA;
import static com.mogo.module.v2x.V2XConst.V2X_FRONT_WARNING_MARKER;
import static com.mogo.module.v2x.V2XServiceManager.getContext;
import android.util.Log;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.eagle.core.data.enums.WarningDirectionEnum;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.V2XWarnDataDrawer;
import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.module.common.utils.Trigonometric;
import com.mogo.module.v2x.V2XServiceManager;
import com.mogo.module.v2x.entity.model.DrawLineInfo;
import com.mogo.module.v2x.listener.V2XLocationListener;
import com.mogo.module.v2x.scenario.view.IV2XMarker;
import com.mogo.utils.UiThreadHandler;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author liujing
* @description 前方预警marker打点 绘制安全线和预警线 衡阳交付-取消划线需求,只渲染识别物红色模型移动过程,代码保留
* @since: 2021/3/30
*/
public class V2XWarningMarker implements IV2XMarker{
public class V2XWarningMarker implements IV2XMarker {
private static final String TAG = "V2XWarningMarker";
private static String WARNING_ARROWS = "WARNING_ARROWS";
private V2XWarningEntity mCloundWarningInfo;
@@ -133,8 +130,26 @@ public class V2XWarningMarker implements IV2XMarker{
clearAllLine();
}
//预警蒙层
MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection
(mCloundWarningInfo.getDirection(), MogoReceiver.ACTION_V2X_FRONT_WARNING);
WarningDirectionEnum warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_ALL;
switch (mCloundWarningInfo.getDirection()) {
case 0:
warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_NON;
break;
case 1:
warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_TOP;
break;
case 2:
warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_BOTTOM;
break;
case 3:
warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_LEFT;
break;
case 4:
warningDirectionEnum = WarningDirectionEnum.ALERT_WARNING_RIGHT;
break;
}
CallerHmiManager.INSTANCE.showWarning(warningDirectionEnum);
}
/*
@@ -323,7 +338,7 @@ public class V2XWarningMarker implements IV2XMarker{
info.setLocations(locations);
info.setHeading(bearing);
info.setWidth(mCloundWarningInfo.getRoadwidth() * 14 + 5);
if (mCloundWarningInfo.getStopLines() != null){
if (mCloundWarningInfo.getStopLines() != null) {
info.setHasStopLines(mCloundWarningInfo.getStopLines().size() > 0);
}
V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info);