diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index d80612b0dc..f9feb2a41c 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -9,6 +9,7 @@ import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.commons.context.ContextHolderUtil;
import com.mogo.commons.debug.DebugConfig;
@@ -23,6 +24,7 @@ import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.main.service.MogoMainService;
+import com.mogo.module.main.utils.DisplayEffectsHelper;
import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
@@ -46,7 +48,7 @@ import java.util.List;
*
* 描述:加载各个模块
*/
-public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView,
+public class MainActivity extends MvpActivity implements MainView,
IMogoLocationListener,
IMogoADASControlStatusChangedListener,
FragmentStackTransactionListener {
@@ -71,18 +73,20 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected ImageView mWarningRight;
protected ImageView mWarningBottom;
+ protected ConstraintLayout clSpecialEffect;
+
@Override
protected int getLayoutId() {
- if ( !DebugConfig.isMapBased() ) {
+ if (!DebugConfig.isMapBased()) {
return R.layout.module_main_activity_main_no_map;
}
return R.layout.module_main_activity_main;
}
@Override
- protected void beforeSetContentView( Bundle savedInstanceState ) {
+ protected void beforeSetContentView(Bundle savedInstanceState) {
init();
- installSkinManager( savedInstanceState );
+ installSkinManager(savedInstanceState);
}
/**
@@ -90,135 +94,137 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
*
* @param savedInstanceState
*/
- private void installSkinManager( Bundle savedInstanceState ) {
- mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance( this );
- mServiceApis.getSkinSupportInstallerApi().install( getApplication() );
- mServiceApis.getSkinSupportInstallerApi().onCompensateActivityCreated( this, savedInstanceState );
+ private void installSkinManager(Bundle savedInstanceState) {
+ mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance(this);
+ mServiceApis.getSkinSupportInstallerApi().install(getApplication());
+ mServiceApis.getSkinSupportInstallerApi().onCompensateActivityCreated(this, savedInstanceState);
}
@Override
protected void initViews() {
- getWindow().setBackgroundDrawable( null );
+ getWindow().setBackgroundDrawable(null);
- mApps = findViewById( R.id.module_main_id_apps_fragment_container );
- mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container );
- mEventPanel = findViewById( R.id.module_main_id_event_panel_fragment_container );
- mFloatingLayout = findViewById( R.id.module_main_id_floating_view );
- mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame );
- mCoverUpLayout = findViewById( R.id.module_main_id_cover_up );
- mLeftPanelLayout = findViewById( R.id.module_main_id_left_panel_fragment_container );
- mHistoryMessagePanel = findViewById( R.id.module_main_id_message_history_fragment_container );
+ mApps = findViewById(R.id.module_main_id_apps_fragment_container);
+ mEntrance = findViewById(R.id.module_main_id_entrance_fragment_container);
+ mEventPanel = findViewById(R.id.module_main_id_event_panel_fragment_container);
+ mFloatingLayout = findViewById(R.id.module_main_id_floating_view);
+ mLeftShadowFrame = findViewById(R.id.module_main_id_map_left_shadow_frame);
+ mCoverUpLayout = findViewById(R.id.module_main_id_cover_up);
+ mLeftPanelLayout = findViewById(R.id.module_main_id_left_panel_fragment_container);
+ 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);
- // 避免事件穿透导致地图被滑动
- mLeftShadowFrame.setOnClickListener( view -> {
- } );
- FloatingViewHandler.init( mFloatingLayout );
+ clSpecialEffect = findViewById(R.id.cl_special_effect);
- mServiceApis.getOnlineCarPanelApi().initContainer( R.id.module_main_id_message_history_fragment_container, this );
- if ( CallChatApi.getInstance().getApiProvider() != null ) {
- CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer( "init", R.id.module_main_id_message_history_fragment_container, this );
+ // 避免事件穿透导致地图被滑动
+ mLeftShadowFrame.setOnClickListener(view -> {
+ });
+ FloatingViewHandler.init(mFloatingLayout);
+
+ mServiceApis.getOnlineCarPanelApi().initContainer(R.id.module_main_id_message_history_fragment_container, this);
+ if (CallChatApi.getInstance().getApiProvider() != null) {
+ CallChatApi.getInstance().getApiProvider().initVehicleTeamContainer("init", R.id.module_main_id_message_history_fragment_container, this);
}
}
// 隐藏布局
protected void hideLayout() {
- mEntrance.setVisibility( View.GONE );
- mEventPanel.setVisibility( View.GONE );
- mFloatingLayout.setVisibility( View.GONE );
+ mEntrance.setVisibility(View.GONE);
+ mEventPanel.setVisibility(View.GONE);
+ mFloatingLayout.setVisibility(View.GONE);
}
// 显示布局
protected void showLayout() {
- mEntrance.setVisibility( View.VISIBLE );
- mEventPanel.setVisibility( View.VISIBLE );
- mFloatingLayout.setVisibility( View.VISIBLE );
+ mEntrance.setVisibility(View.VISIBLE);
+ mEventPanel.setVisibility(View.VISIBLE);
+ mFloatingLayout.setVisibility(View.VISIBLE);
}
@Override
- protected void onCreate( @Nullable Bundle savedInstanceState ) {
- super.onCreate( savedInstanceState );
- ContextHolderUtil.holdContext( this );
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ContextHolderUtil.holdContext(this);
mPresenter.postLoadModuleMsg();
- NetworkUtils.listenNetStrength( this );
+ NetworkUtils.listenNetStrength(this);
}
private void init() {
- if ( mServiceApis == null ) {
+ if (mServiceApis == null) {
mServiceApis = MogoApisHandler.getInstance().getApis();
}
- mServiceApis.getShareManager().resetContext( this );
- mServiceApis.getAuthManagerApi().showAuth( this );
+ mServiceApis.getShareManager().resetContext(this);
+ mServiceApis.getAuthManagerApi().showAuth(this);
mMogoStatusManager = mServiceApis.getStatusManagerApi();
- mMogoStatusManager.setMainPageLaunchedStatus( TAG, true );
- AutopilotServiceManage.getInstance().init( getContext() );
+ mMogoStatusManager.setMainPageLaunchedStatus(TAG, true);
+ AutopilotServiceManage.getInstance().init(getContext());
}
@Override
public void loadModules() {
final long start = System.currentTimeMillis();
- MogoModulesManager.getInstance().init( this );
+ MogoModulesManager.getInstance().init(this);
loadSplash();
- if ( DebugConfig.isMapBased() ) {
- if ( mServiceApis.getMapServiceApi() != null ) {
- mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostMapListener( EventDispatchCenter.getInstance() );
- mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostNaviListener( EventDispatchCenter.getInstance() );
- mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostAimlessModeListener( EventDispatchCenter.getInstance() );
- mServiceApis.getMapServiceApi().getHostListenerRegister().registerMarkerClickListener( EventDispatchCenter.getInstance() );
+ if (DebugConfig.isMapBased()) {
+ if (mServiceApis.getMapServiceApi() != null) {
+ mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostMapListener(EventDispatchCenter.getInstance());
+ mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostNaviListener(EventDispatchCenter.getInstance());
+ mServiceApis.getMapServiceApi().getHostListenerRegister().registerHostAimlessModeListener(EventDispatchCenter.getInstance());
+ mServiceApis.getMapServiceApi().getHostListenerRegister().registerMarkerClickListener(EventDispatchCenter.getInstance());
}
}
- if ( DebugConfig.isSkinSupported() ) {
+ if (DebugConfig.isSkinSupported()) {
initAdasControlStatusListener();
}
- if ( DebugConfig.isMapBased() ) {
- EventDispatchCenter.getInstance().setMapLoadedCallback( () -> {
- Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
+ if (DebugConfig.isMapBased()) {
+ EventDispatchCenter.getInstance().setMapLoadedCallback(() -> {
+ Logger.d(TAG, "map loaded." + Thread.currentThread().getName());
resetMapCenterPoint();
resetMapUiStyle();
loadOthersModules();
- Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
- } );
- MogoModulesManager.getInstance().loadMapModule( R.id.module_main_id_map_fragment_container );
+ Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
+ });
+ MogoModulesManager.getInstance().loadMapModule(R.id.module_main_id_map_fragment_container);
} else {
loadOthersModules();
}
mMogoFragmentManager = mServiceApis.getFragmentManagerApi();
- mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
- mMogoFragmentManager.initMessageHistoryContainerId( R.id.module_main_id_message_history_fragment_container );
- mMogoFragmentManager.registerMainFragmentStackTransactionListener( this );
+ mMogoFragmentManager.init(this, R.id.module_main_id_search_fragment);
+ mMogoFragmentManager.initMessageHistoryContainerId(R.id.module_main_id_message_history_fragment_container);
+ mMogoFragmentManager.registerMainFragmentStackTransactionListener(this);
}
@Override
- public void onTransaction( int size ) {
- if ( size == 0 ) {
+ public void onTransaction(int size) {
+ if (size == 0) {
showLayout();
- } else if ( size == 1 ) {
+ } else if (size == 1) {
hideLayout();
}
}
- private void resetMapUiStyle(){
+ private void resetMapUiStyle() {
final EnumMapUI mapUI = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getCurrentSkinMode();
- mServiceApis.getMapServiceApi().getMapUIController().changeMapMode( mapUI );
+ mServiceApis.getMapServiceApi().getMapUIController().changeMapMode(mapUI);
}
private void resetMapCenterPoint() {
// 右移地图中心点
MapCenterPointStrategy.init();
- MapCenterPointStrategy.setMapCenterPointByScene( mServiceApis.getMapServiceApi().getMapUIController(), Scene.AIMLESS );
+ MapCenterPointStrategy.setMapCenterPointByScene(mServiceApis.getMapServiceApi().getMapUIController(), Scene.AIMLESS);
}
protected void loadOthersModules() {
@@ -233,60 +239,60 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
}
private void initAdasControlStatusListener() {
- mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
- AdasConfigApiController.getInstance().registerAdasSettingUiListener( EventDispatchCenter.getInstance() );
- AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener( EventDispatchCenter.getInstance() );
- AdasConfigApiController.getInstance().init( getApplicationContext() );
- LoggerController.setPrinterLog( DebugConfig.isDebug() );
+ mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener(TAG, this);
+ AdasConfigApiController.getInstance().registerAdasSettingUiListener(EventDispatchCenter.getInstance());
+ AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener(EventDispatchCenter.getInstance());
+ AdasConfigApiController.getInstance().init(getApplicationContext());
+ LoggerController.setPrinterLog(DebugConfig.isDebug());
}
private void startBaseService() {
- Intent intent = new Intent( this, MogoMainService.class );
- startService( intent );
+ Intent intent = new Intent(this, MogoMainService.class);
+ startService(intent);
}
protected void loadContainerModules() {
- MogoModulesManager.getInstance().loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
- MogoModulesManager.getInstance().loadEventPanelModule( R.id.module_main_id_event_panel_fragment_container );
- MogoModulesManager.getInstance().loadLeftPanelModule( R.id.module_main_id_left_panel_fragment_container );
+ MogoModulesManager.getInstance().loadEntrancesModule(R.id.module_main_id_entrance_fragment_container);
+ MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container);
+ MogoModulesManager.getInstance().loadLeftPanelModule(R.id.module_main_id_left_panel_fragment_container);
}
@Override
public void hideCoverUpLayout() {
- getWindow().setBackgroundDrawable( null );
- mCoverUpLayout.setVisibility( View.GONE );
+ getWindow().setBackgroundDrawable(null);
+ mCoverUpLayout.setVisibility(View.GONE);
mServiceApis.getAdasControllerApi().showADAS();
}
@Override
public void loadCardModules() {
- List< IMogoModuleProvider > providers = MogoModulesManager.getInstance().loadCardsModule();
+ List providers = MogoModulesManager.getInstance().loadCardsModule();
}
@Override
public void loadSplash() {
- MogoModulesManager.getInstance().loadSplashModule( R.id.module_main_id_splash_container );
+ MogoModulesManager.getInstance().loadSplashModule(R.id.module_main_id_splash_container);
}
@NonNull
@Override
protected MainPresenter createPresenter() {
- return new MainPresenter( this );
+ return new MainPresenter(this);
}
@Override
- public void onLocationChanged( MogoLocation location ) {
- EventDispatchCenter.getInstance().onLocationChanged( location );
+ public void onLocationChanged(MogoLocation location) {
+ EventDispatchCenter.getInstance().onLocationChanged(location);
}
@Override
- public void onMapUiModeChanged( EnumMapUI mapUI ) {
- switch ( mapUI ) {
+ public void onMapUiModeChanged(EnumMapUI mapUI) {
+ switch (mapUI) {
case Type_Night:
- mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Night );
+ mServiceApis.getSkinSupportInstallerApi().loadSkin(SkinMode.Night);
break;
case Type_Light:
- mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Light );
+ mServiceApis.getSkinSupportInstallerApi().loadSkin(SkinMode.Light);
break;
}
}
@@ -294,26 +300,26 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onResume() {
super.onResume();
- mMogoStatusManager.setMainPageResumeStatus( TAG, true );
- mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, false );
- if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) {
+ mMogoStatusManager.setMainPageResumeStatus(TAG, true);
+ mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, false);
+ if (mCoverUpLayout.getVisibility() != View.VISIBLE) {
mServiceApis.getAdasControllerApi().showADAS();
}
- if ( mServiceApis.getLauncherApi() != null ) {
- mServiceApis.getLauncherApi().setFloatButtonVisible( false );
+ if (mServiceApis.getLauncherApi() != null) {
+ mServiceApis.getLauncherApi().setFloatButtonVisible(false);
}
}
@Override
protected void onPause() {
super.onPause();
- mMogoStatusManager.setMainPageResumeStatus( TAG, false );
+ mMogoStatusManager.setMainPageResumeStatus(TAG, false);
mServiceApis.getAuthManagerApi().dismiss();
- if ( shouldCloseADASPanelWhenPause() ) {
+ if (shouldCloseADASPanelWhenPause()) {
mServiceApis.getAdasControllerApi().closeADAS();
}
- if ( mServiceApis.getLauncherApi() != null ) {
- mServiceApis.getLauncherApi().setFloatButtonVisible( true );
+ if (mServiceApis.getLauncherApi() != null) {
+ mServiceApis.getLauncherApi().setFloatButtonVisible(true);
}
}
@@ -327,21 +333,21 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onStop() {
super.onStop();
- mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, true );
- if ( shouldCloseADASPanelWhenPause() ) {
+ mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, true);
+ if (shouldCloseADASPanelWhenPause()) {
mServiceApis.getAdasControllerApi().closeADAS();
}
}
@Override
public void onBackPressed() {
- if ( mMogoFragmentManager == null
- || mMogoFragmentManager.getStackSize() <= 0 ) {
- if ( DebugConfig.isLauncher() ) {
+ if (mMogoFragmentManager == null
+ || mMogoFragmentManager.getStackSize() <= 0) {
+ if (DebugConfig.isLauncher()) {
doWhenBackPressed();
return;
} else {
- if ( doWhenBackPressed() ) {
+ if (doWhenBackPressed()) {
return;
}
super.onBackPressed();
@@ -356,14 +362,14 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
}
@Override
- protected void onNewIntent( Intent intent ) {
- super.onNewIntent( intent );
- mPresenter.handleSchemeIntent( intent, true );
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ mPresenter.handleSchemeIntent(intent, true);
}
@Override
public IMogoServiceApis getApis() {
- if ( mServiceApis == null ) {
+ if (mServiceApis == null) {
mServiceApis = MogoApisHandler.getInstance().getApis();
}
return mServiceApis;
@@ -376,9 +382,9 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostAimlessModeListener();
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostNaviListener();
mServiceApis.getMapServiceApi().getHostListenerRegister().unregisterHostMapListener();
- mServiceApis.getRegisterCenterApi().unregisterADASControlStatusChangedListener( TAG );
- mMogoStatusManager.setMainPageLaunchedStatus( TAG, false );
- mMogoStatusManager.setMainPageIsBackgroundStatus( TAG, false );
+ mServiceApis.getRegisterCenterApi().unregisterADASControlStatusChangedListener(TAG);
+ mMogoStatusManager.setMainPageLaunchedStatus(TAG, false);
+ mMogoStatusManager.setMainPageIsBackgroundStatus(TAG, false);
mMogoFragmentManager.unregisterMainFragmentStackTransactionListener();
mMogoFragmentManager.destroy();
mMogoFragmentManager = null;
@@ -386,7 +392,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mServiceApis.getMapServiceApi().getMapUIController().destroy();
AdasConfigApiController.getInstance().release();
mServiceApis.getAdasControllerApi().release();
- Logger.d( TAG, "destroy." );
+ Logger.d(TAG, "destroy.");
mServiceApis.getRefreshStrategyControllerApi().clearAllData();
mServiceApis.getOnlineCarPanelApi().clear();
ContextHolderUtil.releaseContext();
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsHelper.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsHelper.java
new file mode 100644
index 0000000000..683134de62
--- /dev/null
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsHelper.java
@@ -0,0 +1,47 @@
+package com.mogo.module.main.utils;
+
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.view.View;
+
+import com.mogo.module.main.R;
+
+/**
+ * created by wujifei on 2021/3/30 14:05
+ * describe:
+ */
+public class DisplayEffectsHelper {
+ private volatile static DisplayEffectsHelper instance = null;
+ private AnimatorSet animatorSet;
+
+ public static DisplayEffectsHelper getInstance() {
+ if (instance == null) {
+ synchronized (DisplayEffectsHelper.class) {
+ if (instance == null) {
+ instance = new DisplayEffectsHelper();
+ }
+ }
+ }
+ return instance;
+ }
+
+ public void init(View rootView) {
+ View view1 = rootView.findViewById(R.id.iv_wu1);
+ View view2 = rootView.findViewById(R.id.iv_wu2);
+ ObjectAnimator animator1 = ObjectAnimator.ofFloat(view1, "alpha", 0f, 1f, 0f);
+ ObjectAnimator animator2 = ObjectAnimator.ofFloat(view1, "translationX", -500, 100f, 300f);
+ ObjectAnimator animator3 = ObjectAnimator.ofFloat(view1, "scaleX", 1f, 1.5f, 2f);
+ ObjectAnimator animator4 = ObjectAnimator.ofFloat(view1, "scaleY", 1f, 1.5f, 2f);
+ ObjectAnimator animator5 = ObjectAnimator.ofFloat(view2, "alpha", 0f, 1f, 0f);
+ ObjectAnimator animator6 = ObjectAnimator.ofFloat(view2, "translationX", 500, -100f, -300f);
+ ObjectAnimator animator7 = ObjectAnimator.ofFloat(view2, "scaleX", 1f, 1.5f, 2f);
+ ObjectAnimator animator8 = ObjectAnimator.ofFloat(view2, "scaleY", 1f, 1.5f, 2f);
+ animatorSet = new AnimatorSet();
+ animatorSet.playTogether(animator1, animator2, animator3, animator4, animator5, animator6, animator7, animator8);
+ animatorSet.setDuration(5000);
+ }
+
+ public void display() {
+ animatorSet.start();
+ }
+}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsManager.java
new file mode 100644
index 0000000000..2221ab5e3f
--- /dev/null
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/utils/DisplayEffectsManager.java
@@ -0,0 +1,27 @@
+package com.mogo.module.main.utils;
+
+import android.content.Context;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.v2x.DisplayEffectsInterface;
+
+/**
+ * created by wujifei on 2021/3/30 15:45
+ * describe:
+ */
+@Route(path = MogoServicePaths.PATH_MAIN_DISPLAY_EFFECTS_MANAGER)
+public class DisplayEffectsManager implements DisplayEffectsInterface {
+ private Context context;
+
+ @Override
+ public void init(Context context) {
+ this.context = context;
+ }
+
+ @Override
+ public void displayEffects(String type) {
+ DisplayEffectsHelper.getInstance().display();
+ }
+
+}
diff --git a/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu1.png b/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu1.png
new file mode 100644
index 0000000000..e18fa37404
Binary files /dev/null and b/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu1.png differ
diff --git a/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu2.png b/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu2.png
new file mode 100644
index 0000000000..db251b5c86
Binary files /dev/null and b/modules/mogo-module-main/src/main/res/drawable-xhdpi/wu2.png differ
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index b785d02a94..d3e106ad3c 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/module_main_window_background_color"
android:orientation="vertical">
@@ -12,6 +13,30 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
+
+
+
+
+
+
+
+
{
// 设置地图定位监听
V2XServiceManager.getMogoRegisterCenter()
.registerMogoLocationListener(MODULE_NAME, V2XLocationListener.getInstance());
+ V2XServiceManager.getMogoRegisterCenter().registerCarLocationChangedListener( MODULE_NAME, V2XLocationListener.getInstance());
Logger.d(MODULE_NAME, "V2X道路事件:开启V2X地图气泡自动绘制。");
if (refreshHandler == null) {
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java
index 417e971ee9..f6178c986d 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XModuleProvider.java
@@ -303,7 +303,7 @@ public class V2XModuleProvider implements
V2XServiceManager.getV2XMarkerService().startAutoRefresh();
// 锁车就是将地图视图移植中心点,因为行驶中的车和地图要相对的跟随
V2XServiceManager.getMapUIController().recoverLockMode();
- Log.d("liyz", "V2XModuleProvider ------> ");
+ Log.d(V2XConst.LOG_NAME_WARN, "V2XModuleProvider ------> ");
//注册adas数据通道
V2XWaringManager.getInstance().registerAdasSocketMessage(mContext);
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
index d6d01fc4cc..2df6f55679 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XServiceManager.java
@@ -16,6 +16,7 @@ import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.AdasRecognizedResultDrawer;
import com.mogo.module.service.MarkerServiceHandler;
import com.mogo.module.v2x.alarm.V2XCalculateServer;
+import com.mogo.module.v2x.manager.IMoGoPersonWarnPolylineManager;
import com.mogo.module.v2x.manager.IMoGoV2XCloundDataManager;
import com.mogo.module.v2x.manager.IMoGoV2XMarkerManager;
import com.mogo.module.v2x.manager.IMoGoV2XPolylineManager;
@@ -45,6 +46,7 @@ import com.mogo.service.share.IMogoTrafficUploadProvider;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
+import com.mogo.service.v2x.DisplayEffectsInterface;
import com.mogo.service.windowview.IMogoTopViewManager;
import com.mogo.service.windowview.IMogoWindowManager;
import com.zhidao.carchattingprovider.CallChattingProviderConstant;
@@ -76,6 +78,7 @@ public class V2XServiceManager {
private static IMogoGeoSearch mIMogoGeoSearch;
private static IMogoSearchManager mIMogoSearchManager;
private static IMogoTopViewManager mMogoTopViewManager;
+ private static DisplayEffectsInterface displayEffectsManager;
private static IMogoStatusManager mMogoStatusManager;
private static IMogoWindowManager mIMogoWindowManager;
private static IMogoImageloader mImageLoader;
@@ -110,6 +113,7 @@ public class V2XServiceManager {
private static IMoGoV2XPolylineManager moGoV2XPolylineManager;
private static IMoGoV2XStatusManager moGoV2XStatusManager;
private static IMoGoWarnPolylineManager moGoWarnPolylineManager;
+ private static IMoGoPersonWarnPolylineManager moGoPersonWarnPolylineManager;
private static IMoGoV2XCloundDataManager moGoV2XCloundDataManager;
private V2XServiceManager() {
@@ -135,6 +139,7 @@ public class V2XServiceManager {
mMogoEntranceButtonController = mMogoServiceApis.getEntranceButtonController();
mMogoActionManager = mMogoServiceApis.getActionManagerApi();
mMogoTopViewManager = mMogoServiceApis.getTopViewManager();
+ displayEffectsManager = mMogoServiceApis.getDisplayEffectsManager();
mIMogoSearchManager = mMogoServiceApis.getSearchManagerApi();
mIMogoMarkerService = mMogoServiceApis.getMarkerService();
mIMogoShareManager = mMogoServiceApis.getShareManager();
@@ -164,6 +169,7 @@ public class V2XServiceManager {
moGoV2XPolylineManager = (IMoGoV2XPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_POLYLINE_MANAGER).navigation(context);
moGoWarnPolylineManager = (IMoGoWarnPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_POLYLINE_MANAGER).navigation(context);
moGoV2XCloundDataManager = (IMoGoV2XCloundDataManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_CLOUND_DATA_MANAGER).navigation(context);
+ moGoPersonWarnPolylineManager = (IMoGoPersonWarnPolylineManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_PERSON_WARN_POLYLINE_MANAGER).navigation(context);
moGoV2XStatusManager = (IMoGoV2XStatusManager) ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STATUS_MANAGER).navigation(context);
}
@@ -178,6 +184,10 @@ public class V2XServiceManager {
return mMogoTopViewManager;
}
+ public static DisplayEffectsInterface getDisplayEffectsManager(){
+ return displayEffectsManager;
+ }
+
public static IMogoEntranceButtonController getMogoEntranceButtonController() {
return mMogoEntranceButtonController;
}
@@ -332,4 +342,13 @@ public class V2XServiceManager {
public static void setMoGoV2XCloundDataManager(IMoGoV2XCloundDataManager moGoV2XCloundDataManager) {
V2XServiceManager.moGoV2XCloundDataManager = moGoV2XCloundDataManager;
}
+
+ public static IMoGoPersonWarnPolylineManager getMoGoPersonWarnPolylineManager() {
+ return moGoPersonWarnPolylineManager;
+ }
+
+ public static void setMoGoPersonWarnPolylineManager(IMoGoPersonWarnPolylineManager moGoPersonWarnPolylineManager) {
+ V2XServiceManager.moGoPersonWarnPolylineManager = moGoPersonWarnPolylineManager;
+ }
+
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
index 38682e7778..2dc4c068fe 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java
@@ -24,7 +24,6 @@ import static com.mogo.module.v2x.V2XServiceManager.getContext;
public class V2XWaringManager {
List lonLats = new ArrayList<>();
- List resultList = new ArrayList<>();
private Context mContext;
private static V2XWaringManager mV2XWaringManager;
@@ -51,7 +50,7 @@ public class V2XWaringManager {
* 注册长链接消息处理
*/
public void registerAdasSocketMessage(Context context) {
- Logger.d("liyz", "开始注册Socket通道....");
+ Logger.d(V2XConst.LOG_NAME_WARN, "开始注册Socket通道....");
mContext = context;
//根据云端,绘制自车和交点,以及行人或二轮车与交点的绘制
@@ -64,7 +63,7 @@ public class V2XWaringManager {
* 反注册消息通道,不再进行接受
*/
public void unregisterAdasSocketMessage() {
- Logger.w("liyz", "反注册Socket通道....");
+ Logger.w(V2XConst.LOG_NAME_WARN, "反注册Socket通道....");
if (v2XWarnMessageListener != null) {
V2XServiceManager
.getMoGoSocketManager()
@@ -94,9 +93,7 @@ public class V2XWaringManager {
* 处理adas返回的数据
*/
private void handleAdasData() {
- Log.d("liyz", "V2XWaringManager ---- handleAdasData ---0-- ");
- //清理
- V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+ Log.d(V2XConst.LOG_NAME_WARN, "V2XWaringManager ---- handleAdasData ");
// 绘制连接线 TODO 来的是列表数据
DrawLineInfo info1 = new DrawLineInfo();
@@ -104,13 +101,12 @@ public class V2XWaringManager {
MogoLatLng endLatlng1 = new MogoLatLng(40.010906,116.423821);
info1.setStartLocation(startLatlng1);
info1.setEndLocation(endLatlng1);
- V2XServiceManager.getMoGoWarnPolylineManager().drawableWarnPolyline(getContext(), info1);
+ V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info1);
// adas 每隔一秒传递的他车或行人数据
V2XServiceManager.getmIMogoADASController().addAdasRecognizedDataCallback(resultList -> {
// 绘制近景识别到的车辆,行人和二轮车 TODO
AdasRecognizedResultDrawer.getInstance().renderAdasRecognizedResult( resultList );
- Log.d("liyz", "V2XWaringManager ---- handleAdasData ----- ");
//清理
V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
@@ -121,7 +117,7 @@ public class V2XWaringManager {
MogoLatLng endLatlng = new MogoLatLng(39.971089,116.407384);
info.setStartLocation(startLatlng);
info.setEndLocation(endLatlng);
- V2XServiceManager.getMoGoWarnPolylineManager().drawableWarnPolyline(mContext, info);
+ V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(mContext, info);
//更新数据
for (ADASRecognizedResult result : resultList) {
@@ -135,7 +131,7 @@ public class V2XWaringManager {
double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon();
double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat();
- Log.d("liyz", "lon = " + lon + "----lat = " + lat);
+ Log.d(V2XConst.LOG_NAME_WARN, "lon = " + lon + "----lat = " + lat);
//绘制自车数据 liyz
// DrawLineInfo info = new DrawLineInfo();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
index c441c8f48f..f89c9ed6d9 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java
@@ -25,8 +25,11 @@ import com.mogo.module.common.entity.MarkerUserInfo;
import com.mogo.module.common.entity.V2XEventShowEntity;
import com.mogo.module.common.entity.V2XLiveCarInfoEntity;
import com.mogo.module.common.entity.V2XMessageEntity;
+import com.mogo.module.common.entity.V2XPoiTypeEnum;
import com.mogo.module.common.entity.V2XRoadEventEntity;
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;
@@ -55,6 +58,7 @@ 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;
/**
@@ -269,6 +273,11 @@ public class V2XRoadEventVH extends V2XBaseViewHolder {
}
ivEvent.setImageResource(EventTypeUtils.getPoiTypeSrcVr(mNoveltyInfo.getPoiType()));
tvEvent.setText(EventTypeUtils.getPoiTypeStrVr(mNoveltyInfo.getPoiType()));
+ if (mNoveltyInfo.getPoiType() == V2XPoiTypeEnum.FOURS_FOG) {
+
+ }
+ V2XServiceManager.getDisplayEffectsManager().displayEffects(V2XPoiTypeEnum.FOURS_FOG);
+ // MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(ALERT_THE_FRONT_CRASH_WARNING_TOP, MogoReceiver.ACTION_V2X_FRONT_WARNING);
tvEventAddress.setText(mNoveltyInfo.getAddr());
tvEventDistance.setText("距离 " + (int) mNoveltyInfo.getDistance() + "米");
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/CloundWarningInfo.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/CloundWarningInfo.java
index 240c9a269a..cf0c398f82 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/CloundWarningInfo.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/entity/model/CloundWarningInfo.java
@@ -58,12 +58,12 @@ public class CloundWarningInfo {
/**
* 识别物经纬度
* */
- private MogoLatLng startLocation;
+ public MogoLatLng startLocation;
/**
* 行人经纬度交点
*/
- private MogoLatLng endLocation;
+ public MogoLatLng endLocation;
/**
* 停止线的纬度
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java
index f8055356e8..9181b64e38 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java
@@ -1,11 +1,13 @@
package com.mogo.module.v2x.listener;
import android.content.Context;
+import android.location.Location;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.MogoLatLng;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
+import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.map.search.geo.IMogoGeoSearchListener;
import com.mogo.map.search.geo.MogoGeocodeResult;
@@ -48,7 +50,7 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
* desc : V2X中用到的位置监听。处理刷新频率,以及位置改变是否触发道路事件警报
* version: 1.0
*/
-public class V2XLocationListener implements IMogoLocationListener, CarStatusListener {
+public class V2XLocationListener implements IMogoLocationListener, CarStatusListener, IMogoCarLocationChangedListener2 {
private String TAG = "V2XLocationListener";
private MogoLocation mLastCarLocation;
@@ -71,8 +73,31 @@ public class V2XLocationListener implements IMogoLocationListener, CarStatusList
return mV2XLocationListener;
}
+ @Override
+ public void onCarLocationChanged( MogoLatLng latLng ) {
+ // do not impl
+ }
+
+ @Override
+ public void onCarLocationChanged2( Location location ) {
+ MogoLocation loc = new MogoLocation();
+ loc.setTime( loc.getTime());
+ loc.setAccuracy( location.getAccuracy() );
+ loc.setSpeed( location.getSpeed());
+ loc.setLongitude( location.getLongitude() );
+ loc.setLatitude( location.getLatitude() );
+ loc.setAltitude( location.getAltitude() );
+ loc.setBearing( location.getBearing() );
+ loc.setProvider( location.getProvider() );
+// onLocationChangedImpl( loc );
+ }
+
@Override
public void onLocationChanged(MogoLocation location) {
+ onLocationChangedImpl(location);
+ }
+
+ private void onLocationChangedImpl(MogoLocation location){
try {
//Logger.d(V2XConst.MODULE_NAME, "V2X预警--onLocationChanged: " + GsonUtil.jsonFromObject(location));
// 刷新角度
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401013.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401013.java
new file mode 100644
index 0000000000..a197aa0819
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XMessageListener_401013.java
@@ -0,0 +1,21 @@
+package com.mogo.module.v2x.listener;
+
+import com.mogo.module.common.entity.V2XWarningEntity;
+import com.mogo.service.connection.IMogoOnMessageListener;
+
+/**
+ * @author liujing
+ * @description 车路云—场景预警-云下发数据监听 前车/行人/摩托车/盲区碰撞预警
+ * @since: 2021/3/31
+ */
+public class V2XMessageListener_401013 implements IMogoOnMessageListener {
+ @Override
+ public Class target() {
+ return null;
+ }
+
+ @Override
+ public void onMsgReceived(V2XWarningEntity obj) {
+
+ }
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XWarnMessageListener.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XWarnMessageListener.java
index d8cb12895a..a88353cec1 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XWarnMessageListener.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XWarnMessageListener.java
@@ -1,22 +1,22 @@
package com.mogo.module.v2x.listener;
+import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.module.v2x.V2XServiceManager;
-import com.mogo.module.v2x.entity.model.CloundWarningInfo;
import com.mogo.module.v2x.utils.V2XUtils;
import com.mogo.service.connection.IMogoOnMessageListener;
/**
* desc: 下发的云端预警数据
*/
-public class V2XWarnMessageListener implements IMogoOnMessageListener {
+public class V2XWarnMessageListener implements IMogoOnMessageListener {
@Override
- public Class target() {
- return CloundWarningInfo.class;
+ public Class target() {
+ return V2XWarningEntity.class;
}
@Override
- public void onMsgReceived(CloundWarningInfo info) {
+ public void onMsgReceived(V2XWarningEntity info) {
//Logger.d(MODULE_NAME, "V2XMessageListener_401011==V2X地图气泡数据刷新:\n" + GsonUtil.jsonFromObject(response));
V2XUtils.runOnBackgroundThread(() -> {
// 解析不同的Marker类型,然后对应的进行绘制
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoPersonWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoPersonWarnPolylineManager.java
new file mode 100644
index 0000000000..777d1257fa
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoPersonWarnPolylineManager.java
@@ -0,0 +1,27 @@
+package com.mogo.module.v2x.manager;
+
+import android.content.Context;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+import com.mogo.map.overlay.IMogoPolyline;
+import com.mogo.module.v2x.entity.model.DrawLineInfo;
+
+/**
+ * 绘制可变宽度和渐变的线,
+ */
+public interface IMoGoPersonWarnPolylineManager extends IProvider {
+ /**
+ * 绘制连接线,人物和二轮车
+ *
+ * @param context
+ * @param info
+ */
+ void drawPersonWarnPolyline(Context context, DrawLineInfo info);
+
+ /**
+ * 移除连接线
+ */
+ void clearLine();
+
+ IMogoPolyline getMogoPersonWarnPolyline();
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XCloundDataManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XCloundDataManager.java
index e49122aa47..9c00da2a52 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XCloundDataManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XCloundDataManager.java
@@ -1,7 +1,7 @@
package com.mogo.module.v2x.manager;
import com.alibaba.android.arouter.facade.template.IProvider;
-import com.mogo.module.v2x.entity.model.CloundWarningInfo;
+import com.mogo.module.common.entity.V2XWarningEntity;
/**
* desc: V2X 处理云端预警消息
@@ -11,7 +11,7 @@ public interface IMoGoV2XCloundDataManager extends IProvider {
/**
* 处理下发数据
*/
- void analysisV2XCloundDataEvent(CloundWarningInfo cloundWarningInfo);
+ void analysisV2XCloundDataEvent(V2XWarningEntity cloundWarningInfo);
/**
* 清除 所有的 POI
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoWarnPolylineManager.java
index fbdd452138..f06da3a68a 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoWarnPolylineManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoWarnPolylineManager.java
@@ -18,7 +18,7 @@ public interface IMoGoWarnPolylineManager extends IProvider {
* @param context
* @param info
*/
- void drawableWarnPolyline(Context context, DrawLineInfo info);
+ void drawWarnPolyline(Context context, DrawLineInfo info);
/**
* 移除连接线
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java
new file mode 100644
index 0000000000..19c96ecc65
--- /dev/null
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoPersonWarnPolylineManager.java
@@ -0,0 +1,87 @@
+package com.mogo.module.v2x.manager.impl;
+
+import android.content.Context;
+import android.util.Log;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.map.overlay.IMogoPolyline;
+import com.mogo.map.overlay.MogoPolylineOptions;
+import com.mogo.module.v2x.MoGoV2XServicePaths;
+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.manager.IMoGoPersonWarnPolylineManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 当前车辆与道路事件的连接线
+ */
+@Route(path = MoGoV2XServicePaths.PATH_V2X_PERSON_WARN_POLYLINE_MANAGER)
+public class MoGoPersonWarnPolylineManager implements IMoGoPersonWarnPolylineManager {
+ private static IMogoPolyline mMogoPolyline;
+
+
+ @Override
+ public void drawPersonWarnPolyline(Context context, DrawLineInfo info) {
+ try {
+ if (mMogoPolyline != null) {
+ mMogoPolyline.remove();
+ }
+
+ // 连接线参数
+ MogoPolylineOptions options = new MogoPolylineOptions();
+
+ float roadWidth = V2XServiceManager.getMapUIController().getRoadWidth(info.getStartLocation().lon,
+ info.getStartLocation().lat, (float) info.getHeading(), true, true);
+
+ // 渐变色
+ List colors = new ArrayList<>();
+
+ if (info.getType().equals("1")) { //预警 TODO
+ colors.add(0xFFFFA31A);
+ colors.add(0xFFFFA31A);
+ } else {
+ colors.add(0xFFE32F46);
+ colors.add(0xFFE32F46);
+ }
+
+ // 线条粗细,渐变,渐变色值
+ Log.d(V2XConst.LOG_NAME_WARN, "MoGoPersonWarnPolylineManager roadWidth = " + roadWidth);
+ options.width(roadWidth).useGradient(true).colorValues(colors);
+// options.width(60).useGradient(true).colorValues(colors);
+ // 当前车辆位置
+ options.add(info.getStartLocation());
+ // 目标车辆位置
+ options.add(info.getEndLocation());
+
+ // 绘制线的对象
+ mMogoPolyline = V2XServiceManager.getMogoOverlayManager().addPolyline(options);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void clearLine() {
+ if (mMogoPolyline != null) {
+ mMogoPolyline.remove();
+ mMogoPolyline = null;
+ }
+ }
+
+ @Override
+ public void init(Context context) {
+
+ }
+
+ /**
+ * @return 绘制连接线的对象
+ */
+ @Override
+ public IMogoPolyline getMogoPersonWarnPolyline() {
+ return mMogoPolyline;
+ }
+}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
index 72631d7481..420e8da55e 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java
@@ -1,23 +1,31 @@
package com.mogo.module.v2x.manager.impl;
import android.content.Context;
+import android.location.Location;
+import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
+import com.mogo.map.navi.IMogoCarLocationChangedListener2;
+import com.mogo.map.overlay.IMogoPolyline;
+import com.mogo.module.common.drawer.SnapshotSetDataDrawer;
+import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.module.v2x.MoGoV2XServicePaths;
+import com.mogo.module.v2x.V2XConst;
import com.mogo.module.v2x.V2XServiceManager;
-import com.mogo.module.v2x.entity.model.CloundWarningInfo;
import com.mogo.module.v2x.entity.model.DrawLineInfo;
import com.mogo.module.v2x.manager.IMoGoV2XCloundDataManager;
+import java.util.Arrays;
+
import static com.mogo.module.v2x.V2XServiceManager.getContext;
/**
* desc : V2X 服务端下发数据处理 点的绘制
*/
@Route(path = MoGoV2XServicePaths.PATH_V2X_WARN_CLOUND_DATA_MANAGER)
-public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager {
- private static final String TAG = "MoGoV2XCloundDataManager";
+public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMogoCarLocationChangedListener2 {
+ private V2XWarningEntity mCloundWarningInfo;
@Override
public void init(Context context) {
@@ -25,29 +33,43 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager {
}
@Override
- public void analysisV2XCloundDataEvent(CloundWarningInfo cloundWarningInfo) {
- //TODO
- //清理
- V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+ public void analysisV2XCloundDataEvent(V2XWarningEntity cloundWarningInfo) {
+ mCloundWarningInfo = cloundWarningInfo;
- //绘制连接线自车与交汇点连线
- DrawLineInfo info1 = new DrawLineInfo();
- MogoLatLng startLatlng1 = new MogoLatLng(39.968919,116.407642);
- MogoLatLng endLatlng1 = new MogoLatLng(40.010906,116.423821);
- info1.setStartLocation(startLatlng1);
- info1.setEndLocation(endLatlng1);
- V2XServiceManager.getMoGoWarnPolylineManager().drawableWarnPolyline(getContext(), info1);
+ //TODO 根据判断条件,决定是否画线或者删除线
- //绘制识别物与交汇点连线 TODO
+ //绘制识别物与交汇点连线,并且更新连线数据
+ drawOtherObjectLine(cloundWarningInfo);
+ //二轮车和行人的移动和渲染
+// SnapshotSetDataDrawer.getInstance().renderSnapshotData();
- //更新数据连线数据 他车和自车
+ }
-
- //自车的移动
-
-
- //他车的移动
+ /**
+ * 绘制行人和二轮车连线,并且更新数据
+ */
+ private void drawOtherObjectLine(V2XWarningEntity info) {
+ IMogoPolyline polyLine = V2XServiceManager.getMoGoPersonWarnPolylineManager().getMogoPersonWarnPolyline();
+ if (info != null) {
+ if (polyLine != null) {
+ polyLine.setPoints(Arrays.asList(new MogoLatLng(info.getLat(), info.getLon()),
+ new MogoLatLng(info.getCollisionLat(), info.getCollisionLon())));
+ } else {
+ DrawLineInfo lineInfo = new DrawLineInfo();
+// MogoLatLng startLatlng = new MogoLatLng(39.968919,116.407642);
+// MogoLatLng endLatlng = new MogoLatLng(40.010906,116.423821);
+ MogoLatLng startLatlng = new MogoLatLng(info.getLat(), info.getLon());
+ MogoLatLng endLatlng = new MogoLatLng(info.getCollisionLat(), info.getCollisionLon());
+ lineInfo.setStartLocation(startLatlng);
+ lineInfo.setEndLocation(endLatlng);
+ lineInfo.setHeading(info.heading);
+ V2XServiceManager.getMoGoPersonWarnPolylineManager().drawPersonWarnPolyline(getContext(), lineInfo);
+ }
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "mCloundWarningInfo == null");
+ V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine();
+ }
}
@@ -55,4 +77,43 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager {
public void clearALLPOI() {
}
+
+ /**
+ * 自车定位 移动完成需要 3s消失 TODO
+ */
+ @Override
+ public void onCarLocationChanged2(Location latLng) {
+ Log.d(V2XConst.LOG_NAME_WARN, "latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude());
+ //当行人经纬度交点 经纬度不为空,开始画线,否则清理
+ //自车只需要关注移动
+ IMogoPolyline mogoPolyline = V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline();
+ if (mCloundWarningInfo != null) {
+ if (mogoPolyline != null) {
+ mogoPolyline.setPoints(Arrays.asList(new MogoLatLng(latLng.getLatitude(), latLng.getLongitude()),
+ new MogoLatLng(mCloundWarningInfo.getCollisionLat(), mCloundWarningInfo.getCollisionLon())));
+
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline() == null");
+ DrawLineInfo info = new DrawLineInfo(); // 对象 TODO
+// MogoLatLng startLatlng = new MogoLatLng(39.968919, 116.407642);
+// MogoLatLng endLatlng = new MogoLatLng(40.010906, 116.423821);
+ MogoLatLng startLatlng = new MogoLatLng(latLng.getLatitude(), latLng.getLongitude());
+ MogoLatLng endLatlng = new MogoLatLng(mCloundWarningInfo.getCollisionLat(), mCloundWarningInfo.getCollisionLon());
+ info.setHeading(latLng.getBearing());
+ info.setStartLocation(startLatlng);
+ info.setEndLocation(endLatlng);
+ V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(getContext(), info);
+ }
+ } else {
+ Log.e(V2XConst.LOG_NAME_WARN, "mCloundWarningInfo == null");
+ V2XServiceManager.getMoGoWarnPolylineManager().clearLine();
+ }
+ }
+
+ @Override
+ public void onCarLocationChanged(MogoLatLng latLng) {
+
+ }
+
+
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
index 237a54fc30..07cf944aee 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoWarnPolylineManager.java
@@ -10,6 +10,7 @@ import com.mogo.map.overlay.MogoPolylineOptions;
import com.mogo.module.common.entity.V2XPoiTypeEnum;
import com.mogo.module.common.entity.V2XRoadEventEntity;
import com.mogo.module.v2x.MoGoV2XServicePaths;
+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.manager.IMoGoWarnPolylineManager;
@@ -27,7 +28,11 @@ public class MoGoWarnPolylineManager implements IMoGoWarnPolylineManager {
@Override
- public void drawableWarnPolyline(Context context, DrawLineInfo info) {
+ public void drawWarnPolyline(Context context, DrawLineInfo info) {
+ if (info == null) {
+ return;
+ }
+
try {
if (mMogoPolyline != null) {
mMogoPolyline.remove();
@@ -36,19 +41,29 @@ public class MoGoWarnPolylineManager implements IMoGoWarnPolylineManager {
// 连接线参数
MogoPolylineOptions options = new MogoPolylineOptions();
- // 渐变色
+// float roadWidth = V2XServiceManager.getMapUIController().getRoadWidth(info.getStartLocation().lon,
+// info.getStartLocation().lat, (float) info.getHeading(), true, true);
+
List colors = new ArrayList<>();
- if (info.getType().equals("1")) { //预警 TODO
- colors.add(0xFFFFA31A);
- colors.add(0xFFFFA31A);
+ if (info.getType() != null) {
+ if (info.getType().equals("1")) { //预警 TODO
+ colors.add(0xFFFFA31A);
+ colors.add(0xFFFFA31A);
+ } else {
+ colors.add(0xFFE32F46);
+ colors.add(0xFFE32F46);
+ }
} else {
+ Log.e(V2XConst.LOG_NAME_WARN, "info.getType() == null ");
colors.add(0xFFE32F46);
colors.add(0xFFE32F46);
}
+// Log.d(V2XConst.LOG_NAME_WARN, "MoGoWarnPolylineManager roadWidth = " + roadWidth);
// 线条粗细,渐变,渐变色值
options.width(60).useGradient(true).colorValues(colors);
+// options.width(roadWidth).useGradient(true).colorValues(colors);
// 当前车辆位置
options.add(info.getStartLocation());
// 目标车辆位置
@@ -56,7 +71,6 @@ public class MoGoWarnPolylineManager implements IMoGoWarnPolylineManager {
// 绘制线的对象
mMogoPolyline = V2XServiceManager.getMogoOverlayManager().addPolyline(options);
- Log.d("liyz", "MoGoWarnPolylineManager drawableWarnPolyline -----> ");
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/AdasDataBroadcastReceiver.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/AdasDataBroadcastReceiver.java
index df75b1e5aa..62905c22a0 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/AdasDataBroadcastReceiver.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/AdasDataBroadcastReceiver.java
@@ -20,9 +20,9 @@ public class AdasDataBroadcastReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
try {
// ADASRecognizedResult adasResult = (ADASRecognizedResult) intent.getSerializableExtra(V2XConst.BROADCAST_ADAS_EXTRA_KEY);
-// Logger.d("liyz", "AdasDataBroadcastReceiver -->" + GsonUtil.jsonFromObject(adasResult));
+// Logger.d(V2XConst.LOG_NAME_WARN, "AdasDataBroadcastReceiver -->" + GsonUtil.jsonFromObject(adasResult));
String adasResult = (String) intent.getSerializableExtra(V2XConst.BROADCAST_ADAS_EXTRA_KEY);
- Log.d("liyz", "AdasDataBroadcastReceiver -----> ");
+ Log.d(V2XConst.LOG_NAME_WARN, "AdasDataBroadcastReceiver -----> ");
V2XWaringManager.getInstance().registerAdasSocketMessage(context);
} catch (Exception e) {
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java
index d4cd59f9a7..8b8b094354 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/SceneBroadcastReceiver.java
@@ -25,7 +25,6 @@ public class SceneBroadcastReceiver extends BroadcastReceiver {
try {
V2XMessageEntity v2XMessageEntity = (V2XMessageEntity) intent.getSerializableExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY);
//Logger.d(TAG, "v2XMessageEntity:" + GsonUtil.jsonFromObject(v2XMessageEntity));
- Log.d("liyz", "SceneBroadcastReceiver ------->");
V2XScenarioManager.getInstance().handlerMessage(v2XMessageEntity);
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
index ba46da31b6..f365363897 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java
@@ -1,10 +1,7 @@
package com.mogo.module.v2x.scenario.scene.warning;
import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-
-import com.mogo.commons.AbsMogoApplication;
+import com.mogo.map.MogoLatLng;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
@@ -13,9 +10,9 @@ import com.mogo.module.common.drawer.marker.MapMarkerAdapter;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.entity.V2XWarningEntity;
-import com.mogo.module.v2x.R;
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.scenario.view.IV2XMarker;
import com.mogo.utils.WorkThreadHandler;
@@ -41,19 +38,25 @@ public class V2XWarningMarker implements IV2XMarker {
markerShowEntity.setMarkerType(V2XConst.V2X_FRONT_WARNING_MARKER);
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
- V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_WARNING_MARKER);
+ clearPOI();
WorkThreadHandler.getInstance().postDelayed(() -> {
MogoMarkerOptions options = new MogoMarkerOptions()
.object(markerShowEntity)
.latitude(markerShowEntity.getMarkerLocation().getLat())
.longitude(markerShowEntity.getMarkerLocation().getLon());
IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options);
- Bitmap bitmap = BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), R.drawable.v2x_road_front_p_warning);
- options.icon(bitmap);
+ options.icon3DRes(com.mogo.module.service.R.raw.people);
+ options.anchorColor("#FF4040");
IMogoMarker marker = V2XServiceManager.getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options);
iMarkerView.setMarker(marker);
marker.setToTop();
- }, 1000);
+ }, 0);
+
+ //如果有预警碰撞点,识别物与预警碰撞点之间连线,并执行平移动画
+ if (mMarkerEntity.getCollisionLat() > 0 && mMarkerEntity.getCollisionLon() != 0) {
+ drawLine();
+ smooth();
+ }
} else {
}
@@ -63,8 +66,21 @@ public class V2XWarningMarker implements IV2XMarker {
}
- @Override
- public void clearPOI() {
+ public void drawLine() {
+ DrawLineInfo drawLineInfo = new DrawLineInfo();
+ MogoLatLng slatLng = new MogoLatLng(mMarkerEntity.getLat(), mMarkerEntity.getLon());
+ MogoLatLng endLatLng = new MogoLatLng(mMarkerEntity.getCollisionLat(), mMarkerEntity.getCollisionLon());
+ drawLineInfo.setStartLocation(slatLng);
+ drawLineInfo.setEndLocation(endLatLng);
+ V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(mContext, drawLineInfo);
+ }
+
+ public void smooth() {
}
+
+ @Override
+ public void clearPOI() {
+ V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_WARNING_MARKER);
+ }
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java
index 4b609c7777..3983091eaf 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningWindow.java
@@ -69,15 +69,16 @@ public class V2XWarningWindow extends V2XBasWindow implements IV2XWindow {
break;
case 1:
case 2:
- typeImage.setImageResource(R.drawable.v2x_road_front_p_warning);
+ typeImage.setImageResource(R.drawable.v2x_road_front_m_warning);
break;
default:
break;
}
distance.setText(String.valueOf(mV2XWarningEntity.getDistance()) + "米");
- warningTextView.setText(mV2XWarningEntity.getTipContent());
+ warningTextView.setText(mV2XWarningEntity.getWarningContent());
AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice(mV2XWarningEntity.getTts());
}
+ //3秒后移除提示弹框
if (runnableV2XEvent == null) {
runnableV2XEvent = () -> {
EXPIRE_TIMER = EXPIRE_TIMER - COUNT_DOWN_TIMER;
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
index d545155bde..ad2838ce84 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java
@@ -103,6 +103,22 @@ public class EventTypeUtils {
case V2XPoiTypeEnum.FOURS_FOG:
src = R.drawable.v2x_icon_nongwu_vr;
break;
+ // 封路
+ case V2XPoiTypeEnum.ROAD_CLOSED:
+ src = R.drawable.v2x_icon_fenglu_vr;
+ break;
+ // 施工
+ case V2XPoiTypeEnum.FOURS_ROAD_WORK:
+ src = R.drawable.v2x_icon_daolushigong_vr;
+ break;
+ // 事故
+ case V2XPoiTypeEnum.FOURS_ACCIDENT:
+ src = R.drawable.v2x_icon_jiaotongshigu_vr;
+ break;
+ // 交通检查
+ case V2XPoiTypeEnum.TRAFFIC_CHECK:
+ src = R.drawable.v2x_icon_jiaotongjiancha_vr;
+ break;
default:
src = R.drawable.v2x_icon_live_logo;
break;
@@ -125,6 +141,22 @@ public class EventTypeUtils {
case V2XPoiTypeEnum.FOURS_FOG:
str = "浓雾预警";
break;
+ // 封路
+ case V2XPoiTypeEnum.ROAD_CLOSED:
+ str = "前方封路";
+ break;
+ // 施工
+ case V2XPoiTypeEnum.FOURS_ROAD_WORK:
+ str = "前方施工";
+ break;
+ // 事故
+ case V2XPoiTypeEnum.FOURS_ACCIDENT:
+ str = "前方交通事故";
+ break;
+ // 交通检查
+ case V2XPoiTypeEnum.TRAFFIC_CHECK:
+ str = "前方交通检查";
+ break;
default:
str = "其它道路事件";
break;
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_daolushigong_vr.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_daolushigong_vr.png
new file mode 100644
index 0000000000..dffedc1725
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_daolushigong_vr.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_fenglu_vr.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_fenglu_vr.png
new file mode 100644
index 0000000000..05903f6e61
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_fenglu_vr.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongjiancha_vr.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongjiancha_vr.png
new file mode 100644
index 0000000000..a940b46a7a
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongjiancha_vr.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongshigu_vr.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongshigu_vr.png
new file mode 100644
index 0000000000..b3420a00d7
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_icon_jiaotongshigu_vr.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json
index 5e70ce79e8..d514923ffe 100644
--- a/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json
+++ b/modules/mogo-module-v2x/src/main/res/raw/scenario_warning_event_data.json
@@ -1,14 +1,18 @@
{
"type":0,
- "targetType": "1",
- "lat":39.977121,
- "lon":116.417537,
+ "lat":39.977148,
+ "lon":116.417478,
"distance": 2.22,
- "collisionLat": 39.9760799115429,
- "collisionLon": 116.411360351446,
+ "collisionLat": 39.977131,
+ "collisionLon": 116.417741,
"from": 1,
"angle": 120,
"direction": 10014,
- "speed":11.108121
-
+ "speed":11.108121,
+ "targetColor": "#FF4040",
+ "stopLineDistance":20,
+ "stopLineLat": 39.977123,
+ "stopLineLon": 116.417537,
+ "warningContent": "小心行人",
+ "heading": 30
}
\ No newline at end of file
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
index 07eaec56f8..9b94367304 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
@@ -38,6 +38,7 @@ import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
import com.mogo.service.share.IMogoTanluProvider;
import com.mogo.service.share.IMogoTanluUiProvider;
+import com.mogo.service.v2x.DisplayEffectsInterface;
import com.mogo.service.v2x.IV2XProvider;
import com.mogo.service.windowview.IMogoTopViewManager;
import com.mogo.service.windowview.IMogoWindowManager;
@@ -212,6 +213,14 @@ public interface IMogoServiceApis extends IProvider {
*/
IMogoTopViewManager getTopViewManager();
+
+ /**
+ * 浓雾等极端事件特殊效果管理类
+ *
+ * @return
+ */
+ DisplayEffectsInterface getDisplayEffectsManager();
+
/**
* 其他模块调用公共的marker打点
*
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
index 9bf3af095d..3bb2845be5 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
@@ -179,6 +179,12 @@ public class MogoServicePaths {
@Deprecated
public static final String PATH_EXTENSIONS_TOP_VIEW_MANAGER = "/topview/api";
+ /**
+ * 浓雾等极端事件特殊效果
+ */
+ @Deprecated
+ public static final String PATH_MAIN_DISPLAY_EFFECTS_MANAGER = "/displayeffects/api";
+
/**
* 其他模块调用公共的marker打点
*/
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/v2x/DisplayEffectsInterface.java b/services/mogo-service-api/src/main/java/com/mogo/service/v2x/DisplayEffectsInterface.java
new file mode 100644
index 0000000000..e89e7dfdc0
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/v2x/DisplayEffectsInterface.java
@@ -0,0 +1,15 @@
+package com.mogo.service.v2x;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+
+/**
+ * created by wujifei on 2021/3/30 15:41
+ * describe:
+ */
+public interface DisplayEffectsInterface extends IProvider {
+ /**
+ * 展示浓雾等极端事件特殊效果
+ * @param type 效果类型
+ */
+ void displayEffects(String type);
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
index 71b91d31df..b7b9906439 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
@@ -47,6 +47,7 @@ import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider;
import com.mogo.service.strategy.IMogoRefreshStrategyController;
import com.mogo.service.share.IMogoTanluProvider;
import com.mogo.service.share.IMogoTanluUiProvider;
+import com.mogo.service.v2x.DisplayEffectsInterface;
import com.mogo.service.v2x.IV2XProvider;
import com.mogo.service.windowview.IMogoTopViewManager;
import com.mogo.service.windowview.IMogoWindowManager;
@@ -189,6 +190,11 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance(IMogoTopViewManager.class, MogoServicePaths.PATH_EXTENSIONS_TOP_VIEW_MANAGER);
}
+ @Override
+ public DisplayEffectsInterface getDisplayEffectsManager() {
+ return getApiInstance(DisplayEffectsInterface.class, MogoServicePaths.PATH_MAIN_DISPLAY_EFFECTS_MANAGER);
+ }
+
@Override
public IMogoMarkerService getMarkerService() {
return getApiInstance(IMogoMarkerService.class, MogoServicePaths.PATH_MARKER_SERVICE);
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/v2x/V2XManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/v2x/V2XManager.java
index d27ca128e8..7b7c867a67 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/v2x/V2XManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/v2x/V2XManager.java
@@ -29,11 +29,11 @@ public class V2XManager implements IV2XProvider {
@Override
public void registerIntentListener(String intent, IV2XListener listener) {
if (listener == null || intent == null) {
- Log.d("V2XManager","listener == null || intent == null");
+ Log.d("V2XManager", "listener == null || intent == null");
return;
}
if (!mListeners.containsKey(intent)) {
- Log.d("V2XManager","intent=="+intent+"listener"+listener);
+ Log.d("V2XManager", "intent==" + intent + "listener" + listener);
mListeners.put(intent, new CopyOnWriteArrayList<>());
}
mListeners.get(intent).add(listener);