拆分换肤逻辑

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

@@ -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 ) {

View File

@@ -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;