合并黑夜白天模式等需求

This commit is contained in:
wangcongtao
2020-09-10 16:27:01 +08:00
940 changed files with 19301 additions and 2446 deletions

View File

@@ -20,8 +20,12 @@ import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.navi.MogoTraffic;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.main.registercenter.MogoRegisterCenterHandler;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
import com.mogo.service.obu.IMogoObuDataChangedListener;
import com.mogo.utils.logger.Logger;
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
import com.zhidao.adasconfig.listener.IAdasSettingUIListener;
import com.zhidao.adasconfig.listener.IAdasSkinStyleListener;
import com.zhidao.smartv2x.model.obu.CarEventInfo;
import com.zhidao.smartv2x.model.obu.CarLocationInfo;
import com.zhidao.smartv2x.model.obu.TrafficLightInfo;
@@ -42,7 +46,9 @@ public class EventDispatchCenter implements
IMogoMapListener,
IMogoNaviListener2,
IMogoLocationListener,
IMogoObuDataChangedListener {
IMogoObuDataChangedListener,
IAdasSettingUIListener,
IAdasSkinStyleListener {
private static volatile EventDispatchCenter sInstance;
@@ -523,4 +529,99 @@ public class EventDispatchCenter implements
iterator.next().showCarEventInfo( info );
}
}
@Override
public void northModel() {
Iterator< IMogoADASControlStatusChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoADASControlStatusChangedListener listener = iterator.next();
if ( listener == null ) {
continue;
}
try {
listener.onMapUiModeChanged( EnumMapUI.NorthUP_2D );
} catch ( Exception e ) {
Logger.e( TAG, e, "onMapUiModeChanged" );
}
}
}
@Override
public void carHeadUp() {
Iterator< IMogoADASControlStatusChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoADASControlStatusChangedListener listener = iterator.next();
if ( listener == null ) {
continue;
}
try {
listener.onMapUiModeChanged( EnumMapUI.CarUp_2D );
} catch ( Exception e ) {
Logger.e( TAG, e, "onMapUiModeChanged" );
}
}
}
@Override
public void switchCarChat( EnumCarChatIncognitoMode enumCarChatIncognitoMode ) {
Iterator< IMogoADASControlStatusChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoADASControlStatusChangedListener listener = iterator.next();
if ( listener == null ) {
continue;
}
try {
listener.onCarStatusChanged( enumCarChatIncognitoMode == EnumCarChatIncognitoMode.OPEN );
} catch ( Exception e ) {
Logger.e( TAG, e, "onMapUiModeChanged" );
}
}
}
@Override
public void whiteModel() {
Iterator< IMogoADASControlStatusChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoADASControlStatusChangedListener listener = iterator.next();
if ( listener == null ) {
continue;
}
try {
listener.onMapUiModeChanged( EnumMapUI.Type_Light );
} catch ( Exception e ) {
Logger.e( TAG, e, "onMapUiModeChanged" );
}
}
}
@Override
public void blackModel() {
Iterator< IMogoADASControlStatusChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
if ( iterator == null ) {
return;
}
while ( iterator.hasNext() ) {
IMogoADASControlStatusChangedListener listener = iterator.next();
if ( listener == null ) {
continue;
}
try {
listener.onMapUiModeChanged( EnumMapUI.Type_Night );
} catch ( Exception e ) {
Logger.e( TAG, e, "onMapUiModeChanged" );
}
}
}
}

View File

@@ -2,7 +2,6 @@ package com.mogo.module.main;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
@@ -18,23 +17,25 @@ import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.module.common.map.MapCenterPointStrategy;
import com.mogo.module.common.map.Scene;
import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.module.main.service.MogoMainService;
import com.mogo.module.main.windowview.FloatingViewHandler;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.monitor.IMogoMonitorProvider;
import com.mogo.service.obu.IMogoObuManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.skin.support.SkinMode;
import com.mogo.utils.logger.Logger;
import com.zhidao.adasconfig.api.AdasConfigApiController;
import com.zhidao.adasconfig.common.log.LoggerController;
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import java.util.List;
@@ -47,7 +48,8 @@ import java.util.List;
*/
public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView,
IMogoLocationListener,
IMogoMarkerClickListener {
IMogoMarkerClickListener,
IMogoADASControlStatusChangedListener {
protected static final String TAG = MainActivity.class.getSimpleName();
@@ -61,6 +63,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
protected View mApps;
protected View mEntrance;
protected View mEventPanel;
protected View mHistoryMessagePanel;
protected FrameLayout mFloatingLayout;
protected View mCoverUpLayout;
protected FrameLayout mLeftPanelLayout;
@@ -71,6 +74,23 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
return R.layout.module_main_activity_main;
}
@Override
protected void beforeSetContentView( Bundle savedInstanceState ) {
init();
installSkinManager( savedInstanceState );
}
/**
* 安装皮肤支持
*
* @param savedInstanceState
*/
private void installSkinManager( Bundle savedInstanceState ) {
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance( this );
mServiceApis.getSkinSupportInstallerApi().install( getApplication() );
mServiceApis.getSkinSupportInstallerApi().onCompensateActivityCreated( this, savedInstanceState );
}
@Override
protected void initViews() {
@@ -84,6 +104,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
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 );
// 避免事件穿透导致地图被滑动
mLeftShadowFrame.setOnClickListener( view -> {
@@ -110,7 +131,6 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void onCreate( @Nullable Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
init();
mPresenter.postLoadModuleMsg();
}
@@ -144,6 +164,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
obuManager.registerObuDataChangedListener(EventDispatchCenter.getInstance());
}
initAdasControlStatusListener();
EventDispatchCenter.getInstance().setMapLoadedCallback( () -> {
Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
@@ -166,6 +187,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
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( ( size ) -> {
if ( size == 0 ) {
showLayout();
@@ -177,7 +199,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
// 初始化MonitorModule
// IMogoMonitorProvider monitorProvider = (IMogoMonitorProvider) ARouter.getInstance().build(MogoServicePaths.PATH_MOGO_MONITOR).navigation(this);
// monitorProvider.resetActivityContext(this);
mServiceApis.getMogoMonitorApi().resetActivityContext(this);
mServiceApis.getMogoMonitorApi().resetActivityContext( this );
}
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() );
}
private void startBaseService() {
@@ -200,12 +230,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
public void loadCardModules() {
List< IMogoModuleProvider > providers = MogoModulesManager.getInstance().loadCardsModule();
// mCardModulesAdapter = new CardModulesAdapter( this, providers );
// mCardsContainer.setOffscreenPageLimit( providers.size() );
// mCardsContainer.setPageTransformer( true, mTransformer );
// mCardsContainer.setAdapter( mCardModulesAdapter );
}
@Override
@@ -230,6 +255,18 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
return false;
}
@Override
public void onMapUiModeChanged( EnumMapUI mapUI ) {
switch ( mapUI ) {
case Type_Night:
mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Night );
break;
case Type_Light:
mServiceApis.getSkinSupportInstallerApi().loadSkin( SkinMode.Light );
break;
}
}
@Override
protected void onResume() {
super.onResume();
@@ -251,7 +288,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
}
}
protected boolean shouldCloseADASPanelWhenPause(){
protected boolean shouldCloseADASPanelWhenPause() {
// m4 系列因为按home键会造成页面pause后resume造成adas panel 闪烁
// f 系列加上上滑返回桌面后会走 mIsHomeKeyDown = true但是不会造成页面pause
// 独立 app 任何情况下都需要隐藏 adas
@@ -306,6 +343,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
mMogoMapService = null;
mMogoMapUIController = null;
mMogoFragmentManager = null;
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().destroy();
AdasConfigApiController.getInstance().release();
mServiceApis.getAdasControllerApi().release();
Logger.d( TAG, "destroy." );
mServiceApis.getRefreshStrategyControllerApi().clearAllData();

View File

@@ -37,6 +37,8 @@ public class SchemeIntent implements IMogoStatusChangedListener {
public static final String TYPE_NAVI = "navi";
public static final String TYPE_SEARCH_ROAD_CONDITION = "search-road-condition";
public static final String TYPE_LAUNCH = "launch";
private IMogoServiceApis mApis;
@@ -122,10 +124,24 @@ public class SchemeIntent implements IMogoStatusChangedListener {
case TYPE_LAUNCH:
handleLaunchIntent( target );
break;
case TYPE_SEARCH_ROAD_CONDITION:
handleSearchRoadCondition(target);
break;
default:
break;
}
}
private void handleSearchRoadCondition(Uri target) {
if (mApis == null) {
return;
}
mApis.getTanluUiApi().searchRoadCondition(target.getQueryParameter("intentStr"),
target.getQueryParameter("data"), target.getQueryParameter("city"),
target.getQueryParameter("keywords"));
}
private void handleSwitchCardIntent( String type ) {
CardSwitchLiveData.getInstance().postValue( new CardInfo( type, true ) );
}

View File

@@ -185,7 +185,7 @@ public class MogoModulesManager implements MogoModulesHandler {
return;
}
mActivity.getSupportFragmentManager().beginTransaction()
.add( containerId, fragment, provider.getModuleName() )
.replace( containerId, fragment, provider.getModuleName() )
.commitAllowingStateLoss();
}
}

View File

@@ -10,6 +10,7 @@ import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.obu.IMogoObuDataChangedListener;
@@ -92,7 +93,7 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
@Override
public void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
MogoRegisterCenterHandler.getInstance().registerCarLocationChangedListener( tag, listener);
MogoRegisterCenterHandler.getInstance().registerCarLocationChangedListener( tag, listener );
}
@Override
@@ -101,13 +102,28 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
}
@Override
public void registerObuDataListener(String tag, IMogoObuDataChangedListener listener) {
MogoRegisterCenterHandler.getInstance().registerObuDataListener(tag, listener);
public void registerObuDataListener( String tag, IMogoObuDataChangedListener listener ) {
MogoRegisterCenterHandler.getInstance().registerObuDataListener( tag, listener );
}
@Override
public void unregisterObuDataListener(String tag) {
MogoRegisterCenterHandler.getInstance().unregisterObuDataListener(tag);
public void unregisterObuDataListener( String tag ) {
MogoRegisterCenterHandler.getInstance().unregisterObuDataListener( tag );
}
@Override
public void registerADASControlStatusChangedListener( String tag, IMogoADASControlStatusChangedListener listener ) {
MogoRegisterCenterHandler.getInstance().registerADASControlStatusChangedListener( tag, listener );
}
@Override
public void unregisterADASControlStatusChangedListener( String tag ) {
MogoRegisterCenterHandler.getInstance().unregisterADASControlStatusChangedListener( tag );
}
@Override
public Iterator< IMogoADASControlStatusChangedListener > getAdasControlStatusChangedListeners() {
return MogoRegisterCenterHandler.getInstance().getAdasControlStatusChangedListeners();
}
@Override

View File

@@ -8,6 +8,7 @@ import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoAimlessModeListener;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoRegisterCenter;
import com.mogo.service.obu.IMogoObuDataChangedListener;
@@ -33,7 +34,8 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
private Map< String, IMogoMarkerClickListener > mMarker = new HashMap<>();
private Map< String, IMogoAimlessModeListener > mAimless = new HashMap<>();
private Map< String, IMogoCarLocationChangedListener > mCarLocations = new HashMap<>();
private Map<String, IMogoObuDataChangedListener> mObus = new HashMap<>();
private Map< String, IMogoObuDataChangedListener > mObus = new HashMap<>();
private Map< String, IMogoADASControlStatusChangedListener > mADAS = new HashMap<>();
private MogoRegisterCenterHandler() {
}
@@ -125,13 +127,23 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
}
@Override
public void registerObuDataListener(String tag, IMogoObuDataChangedListener listener) {
mObus.put(tag, listener);
public void registerObuDataListener( String tag, IMogoObuDataChangedListener listener ) {
mObus.put( tag, listener );
}
@Override
public void unregisterObuDataListener(String tag) {
mObus.remove(tag);
public void unregisterObuDataListener( String tag ) {
mObus.remove( tag );
}
@Override
public void registerADASControlStatusChangedListener( String tag, IMogoADASControlStatusChangedListener listener ) {
mADAS.put( tag, listener );
}
@Override
public void unregisterADASControlStatusChangedListener( String tag ) {
mADAS.remove( tag );
}
@Override
@@ -170,9 +182,10 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
return mNavi.values().iterator();
}
public Iterator<IMogoObuDataChangedListener> getObuDataChangedListeners(){
public Iterator< IMogoObuDataChangedListener > getObuDataChangedListeners() {
return mObus.values().iterator();
}
@Override
public Iterator< IMogoLocationListener > getLocationListeners() {
return mLocation.values().iterator();
@@ -191,4 +204,8 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
return mCarLocations.values().iterator();
}
@Override
public Iterator<IMogoADASControlStatusChangedListener > getAdasControlStatusChangedListeners(){
return mADAS.values().iterator();
}
}

View File

@@ -42,11 +42,11 @@ class MogoMainService extends Service implements IMogoLocationListener {
Logger.d(TAG, "基本服务启动");
mServiceApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation();
initAndStartLocation();
initGpsSimulatorListener();
UiThreadHandler.postDelayed(() -> {
loadBaseModules();
startTanluService();
initADAS();
initGpsSimulatorListener();
}, 2_000L
);
}