package com.mogo.launcher; import android.content.Context; import android.content.Intent; import android.util.Log; import com.alibaba.android.arouter.launcher.ARouter; import com.auto.zhidao.logsdk.CrashSystem; import com.bytedance.boost_multidex.BoostMultiDex; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.carchatting.card.CallChatConstant; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.main.service.MogoMainService; import com.mogo.module.media.MediaConstants; import com.mogo.module.push.base.PushUIConstants; import com.mogo.module.service.ServiceConst; import com.mogo.module.tanlu.constant.TanluConstants; import com.mogo.module.v2x.V2XConst; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.passport.IMogoTicketCallback; import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.LogLevel; import com.mogo.utils.logger.Logger; import com.zhidao.boot.persistent.lib.PersistentManager; import com.zhidao.mogo.module.event.panel.EventPanelConstants; import com.zhidao.mogo.module.left.panel.LeftPanelConst; /** * @author congtaowang * @since 2019-12-18 *

* Launcher application */ public class MogoApplication extends AbsMogoApplication { private static final String TAG = "MogoApplication"; @Override public void onCreate() { initDebugConfig(); super.onCreate(); // Crash 日志收集 final long start = System.currentTimeMillis(); CrashSystem crashSystem = CrashSystem.getInstance( this ); crashSystem.init(); //设置debug模式,日志不上传 crashSystem.setDebug( BuildConfig.DEBUG ); Logger.init( BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF ); // MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME)); MogoModulePaths.addModule( new MogoModule( AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) ); //运营位卡片,需要默认显示,放在第一个加载 if ( DebugConfig.isLauncher() ) { MogoModulePaths.addModule( new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE ) ); } MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) ); MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) ); MogoModulePaths.addModule( new MogoModule( EventPanelConstants.PATH_NAME, EventPanelConstants.MODULE_NAME ) ); MogoModulePaths.addModule( new MogoModule( LeftPanelConst.PATH_NAME, LeftPanelConst.MODULE_NAME ) ); MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) ); MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI ) ); MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) ); if ( !DebugConfig.isLauncher() ) { PersistentManager.getInstance().initManager( this ); Intent intent = new Intent( this, MogoMainService.class ); startService( intent ); } Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); } private void initDebugConfig() { DebugConfig.setNetMode( BuildConfig.NET_ENV ); DebugConfig.setDebug( BuildConfig.DEBUG ); DebugConfig.setAIType( BuildConfig.AIType ); DebugConfig.setLaunchLocationService( BuildConfig.LAUNCH_LOCATION_SERVICE ); DebugConfig.setUseCustomNavi( BuildConfig.USE_CUSTOM_NAVI ); DebugConfig.setLauncher( BuildConfig.IS_LAUNCHER ); DebugConfig.setActiveAIAssistFlag( BuildConfig.AI_ASSIST_ACTIVE_STAUTS ); DebugConfig.setCarMachineType( BuildConfig.CAR_MACHINE_TYPE ); } @Override protected void init() { super.init(); UiThreadHandler.postDelayed( () -> { final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class ); apis.getSocketManagerApi( getApplicationContext() ).init( getApplicationContext(), "com.mogo.launcher" ); apis.getPassportManagerApi().requestTicket( new IMogoTicketCallback() { @Override public void onSuccess( String ticket ) { Logger.d( TAG, "ticket = %s", ticket ); } @Override public void onError( int code, String msg ) { Logger.w( TAG, "code = %s, msg = %s", code, msg ); } } ); apis.getLocationInfoApi().start(); apis.getMapServiceApi().getSingletonLocationClient( getApplicationContext() ).addLocationListener( location -> { apis.getLocationInfoApi().provideLocation( location ); } ); }, 2_000L ); } @Override protected void attachBaseContext( Context base ) { super.attachBaseContext( base ); BoostMultiDex.install( base ); } }