diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index 511770f1ee..dcb7e4cb5c 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -19,6 +19,7 @@ import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.main.MainActivity; import com.mogo.module.main.cards.MogoModulesManager; +import com.mogo.module.main.utils.DisplayEffectsHelper; import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.och.IMogoOCH; import com.mogo.service.intent.IMogoIntentListener; @@ -54,6 +55,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis mServiceApis.getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_FRONT_WARNING, this); mServiceApis.getStatusManagerApi().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this); + DisplayEffectsHelper.getInstance().init(clSpecialEffect); } @Override @@ -175,6 +177,14 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis mApps.setVisibility(View.VISIBLE); } mEntrance.setLayoutParams(entranceParams); + if (descriptor == StatusDescriptor.VR_MODE) { + if (isTrue) { + clSpecialEffect.setVisibility(View.VISIBLE); + } else { + clSpecialEffect.setVisibility(View.GONE); + } + + } } @Override 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 e76a035b56..5ed8184b5e 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 @@ -8,7 +8,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.text.TextUtils; -import android.util.Log; import android.util.TypedValue; import android.view.LayoutInflater; import android.view.MotionEvent; @@ -37,8 +36,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.IMogoLocationListener; -import com.mogo.map.location.MogoLocation; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.navi.IMogoAimlessModeListener; import com.mogo.map.navi.IMogoCarLocationChangedListener2; @@ -204,7 +201,6 @@ public class EntranceFragment extends MvpFragment - + + + 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" /> + + + + + + + + { } 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/utils/EventTypeUtils.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/utils/EventTypeUtils.java index d545155bde..c60f27ef9c 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,18 @@ 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; default: src = R.drawable.v2x_icon_live_logo; break; @@ -125,6 +137,18 @@ 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; 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_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/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);