拆分换肤逻辑
This commit is contained in:
@@ -283,7 +283,8 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.carcall
|
||||
|
||||
implementation rootProject.ext.dependencies.mogologlib
|
||||
implementation "com.zhidao.adasconfig:adasconfig:1.0.5"
|
||||
compileOnly rootProject.ext.dependencies.adasapi
|
||||
compileOnly rootProject.ext.dependencies.adasconfigapi
|
||||
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
implementation rootProject.ext.dependencies.mogocommons
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
project.dependencies {
|
||||
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
implementation rootProject.ext.dependencies.skinsupport
|
||||
|
||||
bydautoImplementation rootProject.ext.dependencies.skinsupportnoop
|
||||
|
||||
f8xxImplementation rootProject.ext.dependencies.skinsupportimpl
|
||||
@@ -25,8 +23,6 @@ project.dependencies {
|
||||
d80xImplementation rootProject.ext.dependencies.skinsupportlight
|
||||
em3Implementation rootProject.ext.dependencies.skinsupportlight
|
||||
} else {
|
||||
implementation project(":skin:mogo-skin-support")
|
||||
|
||||
bydautoImplementation project(':skin:mogo-skin-support-noop')
|
||||
|
||||
f8xxImplementation project(':skin:mogo-skin-support-impl')
|
||||
|
||||
@@ -27,15 +27,9 @@ import com.mogo.module.widgets.MogoWidgetsProvider;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.passport.IMogoTicketCallback;
|
||||
import com.mogo.skin.support.MogoSkinManager;
|
||||
import com.mogo.skin.support.SkinMode;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.LogLevel;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.adasconfig.api.AdasConfigApiController;
|
||||
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
|
||||
import com.zhidao.adasconfig.listener.IAdasSettingUIListener;
|
||||
import com.zhidao.adasconfig.listener.IAdasSkinStyleListener;
|
||||
import com.zhidao.boot.persistent.lib.PersistentManager;
|
||||
import com.zhidao.mogo.module.left.panel.LeftPanelConst;
|
||||
import com.zhidao.mogo.tanlu.api.TanluApiConst;
|
||||
@@ -92,7 +86,6 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
Intent intent = new Intent( this, MogoMainService.class );
|
||||
startService( intent );
|
||||
}
|
||||
listenerADASConfigChanged( this );
|
||||
Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
}
|
||||
|
||||
@@ -125,8 +118,8 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
* 基础服务:passport、location、socket
|
||||
*/
|
||||
private void prepareBaseService( long delay ) {
|
||||
final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class );
|
||||
UiThreadHandler.postDelayed( () -> {
|
||||
final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class );
|
||||
// 第三方平台的sn是服务端生成的,所以必须在返回后才能开启
|
||||
if ( TextUtils.isEmpty( Utils.getSn() ) ) {
|
||||
preparePassportEnvironment( apis, () -> {
|
||||
@@ -137,6 +130,7 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
prepareSocketAndLocationServices( apis );
|
||||
}
|
||||
}, delay );
|
||||
installSkinManager( this, apis );
|
||||
}
|
||||
|
||||
private void preparePassportEnvironment( IMogoServiceApis apis, Runnable after ) {
|
||||
@@ -168,35 +162,8 @@ public class MogoApplication extends AbsMogoApplication {
|
||||
} );
|
||||
}
|
||||
|
||||
private void listenerADASConfigChanged( Application application ) {
|
||||
MogoSkinManager.getInstance().getInstaller().install( application );
|
||||
AdasConfigApiController.getInstance().registerAdasSettingUiListener( new IAdasSettingUIListener() {
|
||||
|
||||
@Override
|
||||
public void northModel() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void carHeadUp() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switchCarChat( EnumCarChatIncognitoMode enumCarChatIncognitoMode ) {
|
||||
|
||||
}
|
||||
} );
|
||||
AdasConfigApiController.getInstance().registerAdasSettingSkinModelListener( new IAdasSkinStyleListener() {
|
||||
@Override
|
||||
public void whiteModel() {
|
||||
MogoSkinManager.getInstance().getInstaller().loadSkin( SkinMode.Light );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void blackModel() {
|
||||
MogoSkinManager.getInstance().getInstaller().loadSkin( SkinMode.Night );
|
||||
}
|
||||
} );
|
||||
AdasConfigApiController.getInstance().init( application );
|
||||
private void installSkinManager( Application application, IMogoServiceApis apis ) {
|
||||
apis.getSkinSupportInstallerApi().install( application );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -160,6 +160,7 @@ targetSdkVersion : 22,
|
||||
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
|
||||
|
||||
adasapi : "com.zhidao.autopilot.support:adas:1.0.1",
|
||||
adasconfigapi : "com.zhidao.adasconfig:adasconfig:1.0.5",
|
||||
|
||||
// 个人中心的SDK
|
||||
personalsdk : "com.zhidaoauto.person.info:data:1.0.1",
|
||||
|
||||
@@ -162,7 +162,6 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
// mMapView.setRouteOverlayVisible( false );
|
||||
// mMapView.setCarOverlayVisible( false );
|
||||
changeMapMode( EnumMapUI.CarUp_2D );
|
||||
changeMapMode( EnumMapUI.Type_Night );
|
||||
setTrafficEnabled( true );
|
||||
mMapView.getMap().moveCamera( CameraUpdateFactory.zoomTo( mDefaultZoomLevel ) );
|
||||
}
|
||||
|
||||
@@ -186,17 +186,19 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
||||
mMove2CurrentLocation.setOnClickListener(view -> {
|
||||
final MogoLocation location = mMogoLocationClient.getLastKnowLocation();
|
||||
if (location != null) {
|
||||
if (!mStatusManager.isV2XShow()) {
|
||||
mStatusManager.setUserInteractionStatus(TAG, true, false);
|
||||
mMApUIController.setLockZoom(16);
|
||||
mMApUIController.changeZoom(16.0f);
|
||||
}
|
||||
if (mStatusManager.isDisplayOverview()) {
|
||||
mStatusManager.setDisplayOverview(TAG, false);
|
||||
UiThreadHandler.removeCallbacks(mLockCarRunnable);
|
||||
}
|
||||
mStatusManager.setUserInteractionStatus(TAG, true, false);
|
||||
mMApUIController.recoverLockMode();
|
||||
UiThreadHandler.postDelayed( ()->{
|
||||
if (!mStatusManager.isV2XShow()) {
|
||||
mStatusManager.setUserInteractionStatus(TAG, true, false);
|
||||
mMApUIController.setLockZoom(16);
|
||||
mMApUIController.changeZoom(16.0f);
|
||||
}
|
||||
}, 1_000L );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
||||
compileOnly rootProject.ext.dependencies.adasapi
|
||||
compileOnly rootProject.ext.dependencies.adasconfigapi
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
api rootProject.ext.dependencies.mogocommons
|
||||
|
||||
@@ -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" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.mogo.map.uicontroller.MapControlResult;
|
||||
import com.mogo.module.common.map.CustomNaviInterrupter;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.adas.IMogoADASControlStatusChangedListener;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.service.launcher.IMogoLauncher;
|
||||
@@ -50,9 +51,11 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
IMogoIntentListener,
|
||||
IMogoVoiceCmdCallBack,
|
||||
IMogoNaviListener2,
|
||||
OnMapControlCallback {
|
||||
OnMapControlCallback,
|
||||
IMogoADASControlStatusChangedListener {
|
||||
|
||||
private static final String TAG = "MapPresenter";
|
||||
private IMogoServiceApis mApis;
|
||||
private IMogoMapService mMogoMapService;
|
||||
private IMogoIntentManager mMogoIntentManager;
|
||||
private IMogoSearchManager mSearchManager;
|
||||
@@ -79,6 +82,7 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
|
||||
public MapPresenter( MapView view ) {
|
||||
super( view );
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -89,11 +93,18 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
@Override
|
||||
public void onCameraModeChanged( EnumMapUI mode ) {
|
||||
mView.getUIController().changeMapMode( mode );
|
||||
mApis.getAdasControllerApi().changeAdasControlMode( mode );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDayNightModeChanged( EnumMapUI mode ) {
|
||||
mView.getUIController().changeMapMode( mode );
|
||||
mApis.getAdasControllerApi().changeAdasControlMode( mode );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapUiModeChanged( EnumMapUI mapUI ) {
|
||||
mView.getUIController().changeMapMode( mapUI );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -237,16 +248,16 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
public void onCreate( @NonNull LifecycleOwner owner ) {
|
||||
super.onCreate( owner );
|
||||
|
||||
IMogoServiceApis apis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
|
||||
mMogoMapService = apis.getMapServiceApi();
|
||||
mMogoIntentManager = apis.getIntentManagerApi();
|
||||
mSearchManager = apis.getSearchManagerApi();
|
||||
mRefreshStrategyController = apis.getRefreshStrategyControllerApi();
|
||||
mStatusManager = apis.getStatusManagerApi();
|
||||
mRegisterCenter = apis.getRegisterCenterApi();
|
||||
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
|
||||
mMogoMapService = mApis.getMapServiceApi();
|
||||
mMogoIntentManager = mApis.getIntentManagerApi();
|
||||
mSearchManager = mApis.getSearchManagerApi();
|
||||
mRefreshStrategyController = mApis.getRefreshStrategyControllerApi();
|
||||
mStatusManager = mApis.getStatusManagerApi();
|
||||
mRegisterCenter = mApis.getRegisterCenterApi();
|
||||
mRegisterCenter.registerMogoNaviListener( TAG, this );
|
||||
mLauncher = apis.getLauncherApi();
|
||||
mMogoSearchManager = apis.getSearchManagerApi();
|
||||
mLauncher = mApis.getLauncherApi();
|
||||
mMogoSearchManager = mApis.getSearchManagerApi();
|
||||
|
||||
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
|
||||
mogoNavi.setCalculatePathDisplayBounds( new Rect(
|
||||
@@ -270,6 +281,10 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
initBroadcast();
|
||||
mCustomVoiceCommandHandler = new MapControlCommandHandler();
|
||||
mCustomVoiceCommandHandler.setCallback( this );
|
||||
mRegisterCenter.registerADASControlStatusChangedListener( TAG, this );
|
||||
|
||||
final EnumMapUI mapUI = mApis.getAdasControllerApi().getCurrentSkinMode();
|
||||
mMogoMapService.getMapUIController().changeMapMode( mapUI );
|
||||
}
|
||||
|
||||
private void initBroadcast() {
|
||||
@@ -296,6 +311,8 @@ public class MapPresenter extends Presenter< MapView > implements
|
||||
if ( mAutoNaviReceiver != null ) {
|
||||
mAutoNaviReceiver.unregister( mMogoIntentManager );
|
||||
}
|
||||
mRegisterCenter.unregisterMogoNaviListener( TAG );
|
||||
mRegisterCenter.unregisterADASControlStatusChangedListener( TAG );
|
||||
}
|
||||
|
||||
private void registerVoiceCmd() {
|
||||
|
||||
@@ -43,9 +43,11 @@ dependencies {
|
||||
api rootProject.ext.dependencies.fresco
|
||||
api rootProject.ext.dependencies.obusdk
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
implementation rootProject.ext.dependencies.mogomapapi
|
||||
api rootProject.ext.dependencies.mogomapapi
|
||||
api rootProject.ext.dependencies.skinsupport
|
||||
} else {
|
||||
api project(":libraries:mogo-map-api")
|
||||
api project(":skin:mogo-skin-support")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.mogo.service.tanlu.IMogoTanluProvider;
|
||||
import com.mogo.service.tanlu.IMogoTanluUiProvider;
|
||||
import com.mogo.service.windowview.IMogoTopViewManager;
|
||||
import com.mogo.service.windowview.IMogoWindowManager;
|
||||
import com.mogo.skin.support.IMogoSkinSupportInstaller;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -263,4 +264,10 @@ public interface IMogoServiceApis extends IProvider {
|
||||
* @return
|
||||
*/
|
||||
IMogoTanluUiProvider getTanluUiApi();
|
||||
|
||||
/**
|
||||
* 皮肤管理接口
|
||||
* @return
|
||||
*/
|
||||
IMogoSkinSupportInstaller getSkinSupportInstallerApi();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.mogo.service.adas;
|
||||
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/8/31
|
||||
*
|
||||
* adas 控制状态变化监听
|
||||
*/
|
||||
interface IMogoADASControlStatusChangedListener {
|
||||
|
||||
/**
|
||||
* 地图模式切换
|
||||
*
|
||||
* @param mapUI
|
||||
*/
|
||||
default void onMapUiModeChanged( EnumMapUI mapUI ) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 隐身模式设置
|
||||
*
|
||||
* @param visible true 可见、false 不可见
|
||||
*/
|
||||
default void onCarStatusChanged( boolean visible ) {
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.mogo.service.adas;
|
||||
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -46,4 +47,25 @@ public interface IMogoADASController extends IProvider {
|
||||
void setUseAlgorithm( boolean open );
|
||||
|
||||
void release();
|
||||
|
||||
/**
|
||||
* 反向设置 adas 导航车头/正北朝向、黑夜白天模式
|
||||
* <p>
|
||||
* 导航车头仅支持 NorthUP_2D 和 车头朝上2D
|
||||
*/
|
||||
void changeAdasControlMode( EnumMapUI ui );
|
||||
|
||||
/**
|
||||
* 反向设置 adas 对可见性的控制
|
||||
*
|
||||
* @param visible
|
||||
*/
|
||||
void changeAdasControlVisibleMode( boolean visible );
|
||||
|
||||
/**
|
||||
* 获取当前皮肤状态
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
EnumMapUI getCurrentSkinMode();
|
||||
}
|
||||
|
||||
@@ -7,6 +7,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.obu.IMogoObuDataChangedListener;
|
||||
|
||||
import java.util.Iterator;
|
||||
@@ -149,4 +150,25 @@ public interface IMogoRegisterCenter extends IProvider {
|
||||
* @param tag 传入与注册时相同的tag
|
||||
*/
|
||||
void unregisterObuDataListener(String tag);
|
||||
|
||||
/**
|
||||
* adas 控制状态变更监听
|
||||
* @param tag
|
||||
* @param listener
|
||||
*/
|
||||
void registerADASControlStatusChangedListener( String tag, IMogoADASControlStatusChangedListener listener );
|
||||
|
||||
|
||||
/**
|
||||
* 注销 adas 控制状态变更监听
|
||||
* @param tag
|
||||
*/
|
||||
void unregisterADASControlStatusChangedListener( String tag );
|
||||
|
||||
/**
|
||||
* 获取adas控制状态监听
|
||||
* @return
|
||||
*/
|
||||
Iterator<IMogoADASControlStatusChangedListener> getAdasControlStatusChangedListeners();
|
||||
|
||||
}
|
||||
|
||||
@@ -40,7 +40,8 @@ dependencies {
|
||||
|
||||
implementation rootProject.ext.dependencies.arouter
|
||||
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
||||
api rootProject.ext.dependencies.adasapi
|
||||
implementation rootProject.ext.dependencies.adasapi
|
||||
implementation rootProject.ext.dependencies.adasconfigapi
|
||||
if (Boolean.valueOf(RELEASE)) {
|
||||
api rootProject.ext.dependencies.mogomap
|
||||
implementation rootProject.ext.dependencies.mogomapapi
|
||||
|
||||
@@ -43,6 +43,9 @@ import com.mogo.service.tanlu.IMogoTanluProvider;
|
||||
import com.mogo.service.tanlu.IMogoTanluUiProvider;
|
||||
import com.mogo.service.windowview.IMogoTopViewManager;
|
||||
import com.mogo.service.windowview.IMogoWindowManager;
|
||||
import com.mogo.skin.support.IMogoSkinSupportInstaller;
|
||||
import com.mogo.skin.support.MogoSkinManager;
|
||||
import com.mogo.skin.support.SkinSupportInstallerConstants;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
@@ -224,7 +227,12 @@ public class MogoServiceApis implements IMogoServiceApis {
|
||||
return getApiInstance(IMogoTanluUiProvider.class, MogoServicePaths.PATH_TANLU_UI_API);
|
||||
}
|
||||
|
||||
private static < T extends IProvider > T getApiInstance(Class< T > clazz, String path ) {
|
||||
@Override
|
||||
public IMogoSkinSupportInstaller getSkinSupportInstallerApi() {
|
||||
return getApiInstance( IMogoSkinSupportInstaller.class, SkinSupportInstallerConstants.PATH);
|
||||
}
|
||||
|
||||
private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {
|
||||
T inst = SingletonsHolder.get( clazz );
|
||||
if ( inst == null ) {
|
||||
synchronized ( sLock ) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.util.Log;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.commons.AbsMogoApplication;
|
||||
import com.mogo.map.MogoOverlayManager;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.module.common.utils.CarSeries;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.adas.IMogoADASController;
|
||||
@@ -18,8 +19,13 @@ import com.mogo.service.impl.MogoServiceApis;
|
||||
import com.mogo.service.impl.singleton.SingletonsHolder;
|
||||
import com.mogo.service.impl.statusmanager.MogoStatusManager;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.skin.support.SkinMode;
|
||||
import com.mogo.utils.UiThreadHandler;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
import com.zhidao.adasconfig.api.AdasConfigApiController;
|
||||
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
|
||||
import com.zhidao.adasconfig.common.config.EnumCarHeading;
|
||||
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
|
||||
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
|
||||
import com.zhidao.autopilot.support.api.IAutopilotServiceStatusListener;
|
||||
|
||||
@@ -197,6 +203,47 @@ public class MogoADASController implements IMogoADASController {
|
||||
AutopilotServiceManage.getInstance().setUseAlgorithm( open );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeAdasControlMode( EnumMapUI ui ) {
|
||||
|
||||
Logger.d( TAG, "new Mode: " + ui.name() );
|
||||
switch ( ui ) {
|
||||
case CarUp_2D:
|
||||
case CarUp_3D:
|
||||
AdasConfigApiController.getInstance().setUserCarHeading( EnumCarHeading.CAR_HEADING_UP );
|
||||
break;
|
||||
case NorthUP_2D:
|
||||
AdasConfigApiController.getInstance().setUserCarHeading( EnumCarHeading.NORTH_UP );
|
||||
break;
|
||||
case Type_Light:
|
||||
AdasConfigApiController.getInstance().setUserSkinModel( EnumSkinStyle.WHITE );
|
||||
break;
|
||||
case Type_Night:
|
||||
AdasConfigApiController.getInstance().setUserSkinModel( EnumSkinStyle.BLACK );
|
||||
break;
|
||||
case Type_AUTO_LIGHT_Night:
|
||||
AdasConfigApiController.getInstance().setUserSkinModel( EnumSkinStyle.AUTO );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeAdasControlVisibleMode( boolean visible ) {
|
||||
Logger.d( TAG, "new visibility: " + visible );
|
||||
AdasConfigApiController.getInstance().setUserCarChatIncognitoModel( visible ? EnumCarChatIncognitoMode.OPEN : EnumCarChatIncognitoMode.CLOSE );
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumMapUI getCurrentSkinMode() {
|
||||
EnumSkinStyle skinStyle = AdasConfigApiController.getInstance().getUserSkinModel();
|
||||
if ( skinStyle == EnumSkinStyle.BLACK ) {
|
||||
return EnumMapUI.Type_Night;
|
||||
} else if ( skinStyle == EnumSkinStyle.WHITE ) {
|
||||
return EnumMapUI.Type_Light;
|
||||
}
|
||||
return EnumMapUI.Type_AUTO_LIGHT_Night;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void release() {
|
||||
mIsReleased = true;
|
||||
|
||||
@@ -6,4 +6,8 @@
|
||||
|
||||
2. 按照现有模块,定义 src/main/module-模块名称-res 资源包,以区分不同模块
|
||||
|
||||
3. 资源名称按照 module_模块名称_功能名称_light 结构定义
|
||||
3. 资源名称按照 module_模块名称_功能名称_light 结构定义
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 没必要添加原模块所有的资源,哪个元素需要白天模式,就定义对应的白天模式资源就行了
|
||||
@@ -46,8 +46,6 @@ dependencies {
|
||||
implementation 'skin.support:skin-support-cardview:4.0.5' // skin-support-cardview CardView 控件支持[可选]
|
||||
implementation 'skin.support:skin-support-constraint-layout:4.0.5' // skin-support-constraint-layout ConstraintLayout 控件支持[可选]
|
||||
|
||||
implementation "com.zhidao.adasconfig:adasconfig:1.0.1"
|
||||
|
||||
if( Boolean.valueOf(RELEASE) ){
|
||||
implementation rootProject.ext.dependencies.skinsupport
|
||||
compileOnly rootProject.ext.dependencies.modulecommon
|
||||
|
||||
Reference in New Issue
Block a user