diff --git a/app/build.gradle b/app/build.gradle
index bea2e83e38..90e74613ce 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -196,6 +196,7 @@ dependencies {
debugImplementation rootProject.ext.dependencies.gpssimulatordebug
releaseImplementation rootProject.ext.dependencies.gpssimulatornoop
implementation rootProject.ext.dependencies.modulemedia
+ implementation rootProject.ext.dependencies.moduleservice
} else {
launcherImplementation project(':main-extensions:mogo-module-main-launcher')
// launcherImplementation project(':modules:mogo-module-main')
@@ -208,6 +209,7 @@ dependencies {
debugImplementation project(':modules:mogo-module-gps-simulator-debug')
releaseImplementation project(':modules:mogo-module-gps-simulator-noop')
implementation project(':modules:mogo-module-media')
+ implementation project(':modules:mogo-module-service')
}
}
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 7a864b552b..af6fc909f7 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -16,6 +16,7 @@ import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.media.MediaConstants;
import com.mogo.module.push.PushUIConstants;
+import com.mogo.module.service.ServiceConst;
import com.mogo.module.tanlu.constant.TanluConstants;
import com.mogo.module.v2x.V2XConst;
import com.mogo.service.MogoServicePaths;
@@ -35,37 +36,39 @@ public class MogoApplication extends AbsMogoApplication {
@Override
public void onCreate() {
- DebugConfig.setNetMode(BuildConfig.NET_ENV);
- DebugConfig.setDebug(BuildConfig.DEBUG);
- DebugConfig.setAIType(BuildConfig.AIType);
+ 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 );
super.onCreate();
// Crash 日志收集
final long start = System.currentTimeMillis();
- CrashSystem crashSystem = CrashSystem.getInstance(this);
+ CrashSystem crashSystem = CrashSystem.getInstance( this );
crashSystem.init();
//设置debug模式,日志不上传
- crashSystem.setDebug(BuildConfig.DEBUG);
- Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
+ 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));
+ MogoModulePaths.addModule( new MogoModule( AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) );
//运营位卡片,需要默认显示,放在第一个加载
- MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
- if(DebugConfig.isLauncher()) {
- MogoModulePaths.addModule(new MogoModule(MediaConstants.TAG, MediaConstants.MODULE_TYPE));
+ MogoModulePaths.addModule( new MogoModule( AdCardConstants.TAG, AdCardConstants.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( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
- MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SHARE, "ShareControl"));
+ 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.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.TAG, PushUIConstants.TAG));
- Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
+ Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
}
@Override
@@ -73,15 +76,15 @@ public class MogoApplication extends AbsMogoApplication {
super.init();
IMogoSocketManager mMogoSocketManager = ARouter.getInstance().navigation( IMogoSocketManager.class );
if ( mMogoSocketManager != null ) {
- mMogoSocketManager.init(getApplicationContext(), "com.mogo.launcher");
+ mMogoSocketManager.init( getApplicationContext(), "com.mogo.launcher" );
} else {
Logger.e( TAG, "init socket server error." );
}
}
@Override
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- MultiDex.install(base);
+ protected void attachBaseContext( Context base ) {
+ super.attachBaseContext( base );
+ MultiDex.install( base );
}
}
diff --git a/config.gradle b/config.gradle
index ab1742056a..cf04f329b9 100644
--- a/config.gradle
+++ b/config.gradle
@@ -2,12 +2,12 @@ ext {
android = [
// applicationId : "com.mogo.launcher",
// zhidadoApplicationId: "com.zhidao.launcher",
-launcherApplicationId : "com.mogo.launcher",
-independentApplicationId: "com.mogo.launcher.app",
-compileSdkVersion : 28,
-buildToolsVersion : "29.0.2",
-minSdkVersion : 19,
-targetSdkVersion : 22,
+ launcherApplicationId : "com.mogo.launcher",
+ independentApplicationId: "com.mogo.launcher.app",
+ compileSdkVersion : 28,
+ buildToolsVersion : "29.0.2",
+ minSdkVersion : 19,
+ targetSdkVersion : 22,
]
dependencies = [
@@ -147,7 +147,7 @@ targetSdkVersion : 22,
gpssimulatordebug : "com.mogo.module:module-gps-simulator-debug:${MOGO_MODULE_GPS_SIMULATOR_DEBUG_VERSION}",
gpssimulatornoop : "com.mogo.module:module-gps-simulator-noop:${MOGO_MODULE_GPS_SIMULATOR_NOOP_VERSION}",
- adasapi : "com.zhidao.autopilot.support:adas:1.0.1-SNAPSHOT",
+ adasapi : "com.zhidao.autopilot.support:adas:1.0.1",
// 个人中心的SDK
personalsdk : "com.zhidaoauto.person.info:data:1.0.1",
diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
index 63c9099486..92368debb3 100644
--- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
+++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java
@@ -15,10 +15,10 @@ import com.mogo.module.main.MainActivity;
*/
public class MainIndependentActivity extends MainActivity {
@Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
+ protected void onCreate( @Nullable Bundle savedInstanceState ) {
+ super.onCreate( savedInstanceState );
// 独立app需要在onCreate里面增加处理scheme的情况
- mPresenter.handleSchemeIntent(getIntent());
+ mPresenter.handleSchemeIntent( getIntent() );
}
@Override
@@ -34,4 +34,18 @@ public class MainIndependentActivity extends MainActivity {
mApps.setVisibility( View.GONE );
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) {
+ mServiceApis.getAdasControllerApi().setUseAlgorithm( true );
+ }
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ mServiceApis.getAdasControllerApi().setUseAlgorithm( false );
+ }
}
diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
index 4e50009a24..d95de47511 100644
--- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
+++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java
@@ -11,6 +11,7 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.common.utils.CarSeries;
import com.mogo.module.extensions.utils.ExtensionsConfig;
import com.mogo.module.main.MainActivity;
+import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.utils.logger.Logger;
/**
@@ -39,7 +40,7 @@ public class MainLauncherActivity extends MainActivity {
super.loadContainerModules();
// 显示左边遮罩
mLeftShadowFrame.setVisibility( View.VISIBLE );
- mMogoModuleHandler.loadAppsListModule( com.mogo.module.main.R.id.module_main_id_apps_fragment_container );
+ MogoModulesManager.getInstance().loadAppsListModule( com.mogo.module.main.R.id.module_main_id_apps_fragment_container );
}
@Override
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
index 22d5495a51..bf8dcba003 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java
@@ -17,6 +17,9 @@ public class MogoModulePaths {
private static List< MogoModule > mMogoModules = new ArrayList<>();
+ // 不需要启动APP也能运行的模块
+ private static List< MogoModule > mMogoBaseModules = new ArrayList<>();
+
/**
* 地图模块 fragment 路径
*/
@@ -50,7 +53,23 @@ public class MogoModulePaths {
mMogoModules.add( module );
}
+ /**
+ * 添加卡片模块
+ *
+ * @param module
+ */
+ public static void addBaseModule( MogoModule module ) {
+ if ( module == null || TextUtils.isEmpty( module.getPath().replace( " ", "" ) ) ) {
+ throw new IllegalArgumentException( "module path can't be empty or null or blank" );
+ }
+ mMogoBaseModules.add( module );
+ }
+
public static List< MogoModule > getModules() {
return mMogoModules;
}
+
+ public static List< MogoModule > getBaseModules() {
+ return mMogoBaseModules;
+ }
}
diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml
index e490d96a29..90e40ed1eb 100644
--- a/modules/mogo-module-main/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-main/src/main/AndroidManifest.xml
@@ -2,6 +2,13 @@
package="com.mogo.module.main">
+ * 1. v2x
+ * 2. mogo-module-service
+ */
+ void loadBaseModule();
+
/**
* 销毁
*/
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
index 5834ab346d..7ae62ee3a9 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java
@@ -35,8 +35,27 @@ public class MogoModulesManager implements MogoModulesHandler {
private Map< MogoModule, IMogoModuleProvider > mModuleProviders = new HashMap<>();
// 空间换效率
private Map< String, IMogoModuleProvider > mModuleNameProviders = new HashMap<>();
+
+ private static volatile MogoModulesManager sInstance;
+
+ private MogoModulesManager(){}
+
+ public static MogoModulesManager getInstance(){
+ if( sInstance == null ){
+ synchronized( MogoModulesManager.class ) {
+ if( sInstance == null ){
+ sInstance = new MogoModulesManager();
+ }
+ }
+ }
+ return sInstance;
+ }
+
+ public synchronized void release(){
+ sInstance = null;
+ }
- public MogoModulesManager( MainActivity activity, IMogoServiceApis apis ) {
+ public void init( MainActivity activity, IMogoServiceApis apis ) {
if ( activity == null ) {
throw new NullPointerException( "activity can't be null." );
}
@@ -111,6 +130,18 @@ public class MogoModulesManager implements MogoModulesHandler {
addFragment( provider, containerId );
}
+ @Override
+ public void loadBaseModule() {
+ List