拆分换肤逻辑

This commit is contained in:
wangcongtao
2020-08-31 14:55:02 +08:00
parent 722919edec
commit 97ce18650b
22 changed files with 363 additions and 88 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,22 +17,23 @@ 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.statusmanager.IMogoStatusManager;
import com.mogo.skin.support.SkinMode;
import com.mogo.utils.logger.Logger;
import com.zhidao.adasconfig.api.AdasConfigApiController;
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import java.util.List;
@@ -46,7 +46,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();
@@ -176,7 +177,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 );
initAdasControlStatusListener();
}
private void initAdasControlStatusListener() {
mServiceApis.getRegisterCenterApi().registerADASControlStatusChangedListener( TAG, this );
AdasConfigApiController.getInstance().registerAdasSettingUiListener( EventDispatchCenter.getInstance() );
AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener( EventDispatchCenter.getInstance() );
AdasConfigApiController.getInstance().init( getApplicationContext() );
}
private void startBaseService() {
@@ -199,12 +208,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
@@ -229,6 +233,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();
@@ -250,7 +266,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

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();
}
}