diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index cf5757e710..3dda1fe044 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,7 @@
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index be5478b0ab..e9f00755d4 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,21 +33,7 @@
-
-
-
-
-
-
-
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 680cef48b7..d62ba9287d 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -1,46 +1,14 @@
package com.mogo.launcher;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Process;
-import android.util.Log;
-
import com.auto.zhidao.logsdk.CrashSystem;
-import com.bytedance.boost_multidex.BoostMultiDex;
-import com.mogo.cloud.httpdns.MogoHttpDnsConfig;
-import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation;
-import com.mogo.cloud.passport.IMoGoTokenCallback;
-import com.mogo.cloud.passport.MoGoAiCloudClient;
-import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
-import com.mogo.commons.AbsMogoApplication;
-import com.mogo.commons.constants.SharedPrefsConstants;
import com.mogo.commons.debug.DebugConfig;
-import com.mogo.commons.network.Utils;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.config.HdMapBuildConfig;
-import com.mogo.eagle.core.data.constants.MogoServicePaths;
-import com.mogo.eagle.core.data.map.MogoLocation;
-import com.mogo.map.MapApiPath;
-import com.mogo.module.carchatting.card.CallChatConstant;
-import com.mogo.module.common.MogoApisHandler;
-import com.mogo.module.common.MogoModule;
-import com.mogo.module.common.MogoModulePaths;
-import com.mogo.module.common.constants.HostConst;
-import com.mogo.module.main.service.MogoMainService;
-import com.mogo.module.push.base.PushUIConstants;
-import com.mogo.module.service.ServiceConst;
-import com.mogo.module.share.constant.ShareConstants;
-import com.mogo.module.v2x.V2XConst;
+import com.mogo.eagle.core.function.main.MainMoGoApplication;
import com.mogo.module.v2x.utils.ObuConfig;
-import com.mogo.service.IMogoServiceApis;
-import com.mogo.service.cloud.socket.IMogoLifecycleListener;
import com.mogo.test.crashreport.CrashReportConstants;
-import com.mogo.test.crashreport.upgrade.UpgradeReportConstants;
-import com.mogo.utils.ProcessUtils;
import com.mogo.utils.logger.LogLevel;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.storage.SharedPrefsMgr;
-import com.zhidao.boot.persistent.lib.PersistentManager;
/**
* @author congtaowang
@@ -48,40 +16,23 @@ import com.zhidao.boot.persistent.lib.PersistentManager;
*
* Launcher application
*/
-public class MogoApplication extends AbsMogoApplication {
-
- private static final String TAG = "MogoApplication";
-
- private long start;
+public class MogoApplication extends MainMoGoApplication {
@Override
- public void onCreate() {
- initDebugConfig();
- super.onCreate();
- if (!shouldInit()) {
- return;
- }
- // Crash 日志收集
- start = System.currentTimeMillis();
+ protected void initCrashConfig() {
CrashSystem crashSystem = CrashSystem.getInstance(this);
crashSystem.init();
//设置debug模式,日志不上传
- // crashSystem.setDebug(BuildConfig.DEBUG);
- Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
- initTipToast();
- initModules();
+ // crashSystem.setDebug(BuildConfig.DEBUG);
}
@Override
- protected boolean shouldInit() {
- Logger.w(TAG, "evaluate shouldInit() with: %s", ProcessUtils.getProcessName(Process.myPid()));
- return ProcessUtils.isMainProcess(this);
+ protected void initLogConfig() {
+ Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
}
- /**
- * BuildConfig中渠道配置赋值
- */
- private void initDebugConfig() {
+ @Override
+ protected void initBuildConfig() {
DebugConfig.setNetMode(BuildConfig.NET_ENV);
DebugConfig.setDebug(BuildConfig.DEBUG);
DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE);
@@ -113,243 +64,4 @@ public class MogoApplication extends AbsMogoApplication {
// TODO 这里指定自车模型 R.raw.xiaobache--小巴车,R.raw.chuzuche--出租车
//HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche;
}
-
- @Override
- protected void asyncInitImpl() {
- super.asyncInitImpl();
- }
-
- @Override
- protected void initHttpDns() {
- super.initHttpDns();
- prepareBaseService();
- }
-
- /**
- * 基础服务:passport、location、socket
- */
- private void prepareBaseService() {
- // 第三方平台的sn是由AI云SDK中服务调用通过服务端生成的
- preparePassportEnvironment();
- }
-
- private void preparePassportEnvironment() {
- // 配置云服务API
- MoGoAiCloudClientConfig clientConfig = MoGoAiCloudClientConfig.getInstance();
- // 设置网络环境:HTTP_DNS_ENV_QA、HTTP_DNS_ENV_RELEASE、HTTP_DNS_ENV_DEV
- switch (DebugConfig.getNetMode()) {
- case DebugConfig.NET_MODE_DEV:
- clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_DEV);
- break;
- case DebugConfig.NET_MODE_QA:
- clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_QA);
- break;
- case DebugConfig.NET_MODE_DEMO:
- clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_DEMO);
- break;
- default:
- clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_RELEASE);
- }
- // 设置是否是第三APP登录
- clientConfig.setThirdLogin(DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE);
- // 设置是否输出日志
- clientConfig.setShowDebugLog(true);
- // 设置是否是直播推流的主播
- clientConfig.setAnchor(false);
- // 设置从蘑菇AI开放平台获取的APPKey
- switch (DebugConfig.getCarMachineType()) {
- // 自研车机
- case DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE:
- clientConfig.setThirdPartyAppKey("wbvpzgar");
- break;
- // 比亚迪
- case DebugConfig.CAR_MACHINE_TYPE_BYD:
- clientConfig.setThirdPartyAppKey("bydauto");
- break;
- // 衡阳-鹰眼项目
- case DebugConfig.CAR_MACHINE_TYPE_LENOVO:
- clientConfig.setThirdPartyAppKey("pfieouqg");
- break;
- }
- // 设置应用服务AppId 长链、鉴权
- if (DebugConfig.getNetMode() == DebugConfig.NET_MODE_RELEASE) {
- clientConfig.setServiceAppId("com_mogo_launcher");
- } else {
- clientConfig.setServiceAppId("com.mogo.launcher");
- }
- // 设置AI云平台分配给三方应用的签名密钥,需要从AI云平台申请
- // 设置车机设备的唯一标识(这些表识必须是通过后台录入的设备)
- clientConfig.setThirdPartyDeviceId(Utils.getDevicesId());
- // 设置循环检测间隔时间
- clientConfig.setLoopCheckDelay(5 * 1000);
-
- clientConfig.setIHttpDnsCurrentLocation(() -> {
- MogoLocation mogoLocation =
- MogoApisHandler.getInstance()
- .getApis().getMapServiceApi()
- .getSingletonLocationClient(getApp())
- .getLastKnowLocation();
- HttpDnsSimpleLocation httpDnsSimpleLocation;
- if (mogoLocation != null
- && mogoLocation.getLatitude() != 0
- && mogoLocation.getLongitude() != 0) {
- httpDnsSimpleLocation = new HttpDnsSimpleLocation(
- mogoLocation.getCityCode(),
- mogoLocation.getLatitude(),
- mogoLocation.getLongitude());
- Logger.i(TAG, "使用实时GPS信息:" + httpDnsSimpleLocation);
- } else {
- String ciyCode = SharedPrefsMgr.getInstance(getApp())
- .getString(SharedPrefsConstants.LOCATION_CITY_CODE);
- String latitude = SharedPrefsMgr.getInstance(getApp())
- .getString(SharedPrefsConstants.LOCATION_LATITUDE);
- String longitude = SharedPrefsMgr.getInstance(getApp())
- .getString(SharedPrefsConstants.LOCATION_LONGITUDE);
- try {
- httpDnsSimpleLocation = new HttpDnsSimpleLocation(
- ciyCode,
- Double.parseDouble(latitude),
- Double.parseDouble(longitude));
- } catch (NumberFormatException e) {
- e.printStackTrace();
- httpDnsSimpleLocation = new HttpDnsSimpleLocation("010", 1, 1);
- }
- Logger.i(TAG, "使用缓存GPS信息:" + httpDnsSimpleLocation);
- }
- return httpDnsSimpleLocation;
- });
-
- // 初始化SDK,可以设置状态回调来监听
- MoGoAiCloudClient.getInstance().init(this, clientConfig).addTokenCallbacks(
- new IMoGoTokenCallback() {
- @Override
- public void onTokenGot(String token, String sn) {
- Logger.d("TEST-SOCKET", "onTokenGot ");
- // 异步初始化NetConfig
- asyncInit();
- // HttpDns ttl回调 --- socketTTL
- registerSocketHttpDnsTTL(HostConst.SOCKET_CENTER_DOMAIN);
- // 开启每5s/次定位上报
- uploadLocPerFiveSecond();
- }
-
- @Override
- public void onError(int code, String msg) {
- Log.d(TAG, "初始化MogoAiCloudSdk failed ,reason : " + msg + " , 未能开启长链服务和初始化Modules服务");
- }
- }
- );
- }
-
- /**
- * 上传自车位置信息到云端
- */
- private void uploadLocPerFiveSecond() {
- if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) {
- IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
- apis.getLocationInfoApi().start();
- apis.getMapServiceApi().getSingletonLocationClient(getApplicationContext()).addLocationListener(location -> {
- apis.getLocationInfoApi().provideLocation(location);
- });
- }
- }
-
- private void startSocketService() {
- IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
- // 关闭长链服务
- apis.getSocketManagerApi(getApplicationContext()).destroy();
- apis.getSocketManagerApi(this).registerLifecycleListener(10020, new IMogoLifecycleListener() {
- @Override
- public void onConnectFailure() {
- DebugConfig.setDownloadSnapshot(false);
- }
-
- @Override
- public void onConnectSuccess() {
- DebugConfig.setDownloadSnapshot(true);
- }
-
- @Override
- public void onConnectLost() {
- DebugConfig.setDownloadSnapshot(false);
- }
- });
- // 开启Socket长链服务
- apis.getSocketManagerApi(getApplicationContext()).init(getApplicationContext(), DebugConfig.getSocketAppId());
- }
-
- @Override
- protected void socketTTL() {
- // 鉴权成功后开启socket长链服务
- startSocketService();
- }
-
- private void initModules() {
- Logger.d(TAG, "initModules");
-
- // 初始化 bugly 升级
- MogoModulePaths.addBaseModule(new MogoModule(UpgradeReportConstants.PATH, UpgradeReportConstants.NAME));
- // 初始化 bugly 日志采集
- MogoModulePaths.addBaseModule(new MogoModule(CrashReportConstants.PATH, CrashReportConstants.NAME));
-
- if (DebugConfig.isLauncher()) {
- MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_BACK, MogoServicePaths.PATH_BACK));
- }
-
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS));
- if (DebugConfig.isMapBased()) {
- MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
- }
-
- MogoModulePaths.addBaseModule(new MogoModule(MapApiPath.PATH, "CustomMapApiBuilder"));
- MogoModulePaths.addBaseModule(new MogoModule(ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG));
- MogoModulePaths.addBaseModule(new MogoModule(ShareConstants.TAG, ShareConstants.MODEL_NAME));
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_TANLU_API, "TanluApi"));
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_TRAFFIC_UPLOAD, "TrafficUpload"));
- MogoModulePaths.addBaseModule(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.MODULE_NAME));
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare"));
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare"));
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor"));
-
- // 域控制器模块(新)
- MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AUTO_PILOT, "IMoGoAutoPilotProvider"));
- // OBU 模块
- MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_V2X_OBU_MOGO, "IMoGoObuProvider"));
- // 超视距,路测、行车记录仪监控
- MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_MONITORING, "IMoGoMonitoringProvider"));
-
-
- // V2X 模块
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider"));
- // 自动驾驶系统检测模块
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CHECK, "CheckProvider"));
- // 推送模块
- MogoModulePaths.addModule(new MogoModule(PushUIConstants.PATH, PushUIConstants.NAME));
- // 碰撞报警模块
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING, "IMogoCrashWarnProvider"));
- // ADAS模块(旧,慢慢被 域控制器模块 替换掉)
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_ADAS, "AdasProvider"));
- // 前方碰撞预警
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider"));
- // 全局语音唤醒
- MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake"));
- // 云公告发布
- MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_AI_NOTICE, "IMoGoNoticeProvider"));
-
- if (!DebugConfig.isLauncher()) {
- PersistentManager.getInstance().initManager(this);
- Intent intent = new Intent(this, MogoMainService.class);
- startService(intent);
- }
-
- Log.i(TAG, "App launch timer cost " + (System.currentTimeMillis() - start) + "ms");
- }
-
- @Override
- protected void attachBaseContext(Context base) {
- super.attachBaseContext(base);
- BoostMultiDex.install(base);
- }
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
index ca4990c81a..ab86a90374 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
@@ -285,7 +285,7 @@ class MoGoHmiFragment : MvpFragment
}
override fun isWarningTrafficLightShow(): Boolean {
- return viewTrafficLightVr.visibility == View.VISIBLE
+ return viewTrafficLightVr?.visibility == View.VISIBLE
}
/**
diff --git a/core/function-impl/mogo-core-function-main/build.gradle b/core/function-impl/mogo-core-function-main/build.gradle
index e2ce2b36ee..71ff1d4ab0 100644
--- a/core/function-impl/mogo-core-function-main/build.gradle
+++ b/core/function-impl/mogo-core-function-main/build.gradle
@@ -43,21 +43,95 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
-
+ //Crash日志收集
+ implementation rootProject.ext.dependencies.crashSdk
implementation rootProject.ext.dependencies.androidxappcompat
+ implementation rootProject.ext.dependencies.boostmultidex
+
+ implementation rootProject.ext.dependencies.mogologlib
+ compileOnly rootProject.ext.dependencies.adasapi
+ compileOnly rootProject.ext.dependencies.adasconfigapi
+
+ debugImplementation rootProject.ext.dependencies.debugleakcanary
+ releaseImplementation rootProject.ext.dependencies.releaseleakcanary
+
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.arouter
kapt rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
- api rootProject.ext.dependencies.modulemain
+ implementation rootProject.ext.dependencies.mogoaicloudservicesdk
+ implementation rootProject.ext.dependencies.mogocommons
+ implementation rootProject.ext.dependencies.modulecommon
+ implementation rootProject.ext.dependencies.mogoservice
+ implementation rootProject.ext.dependencies.moduleV2x
+ implementation rootProject.ext.dependencies.moduleshare
+ implementation rootProject.ext.dependencies.tanluupload
+ implementation rootProject.ext.dependencies.mogomonitor
+ implementation rootProject.ext.dependencies.moduleextensions
+ implementation rootProject.ext.dependencies.modulemap
+ implementation rootProject.ext.dependencies.mogomodulewidgets
+ implementation rootProject.ext.dependencies.moduleADAS
+ implementation rootProject.ext.dependencies.mogomoduleback
+ implementation rootProject.ext.dependencies.moduleapps
+ implementation rootProject.ext.dependencies.modulepushbase
+ implementation rootProject.ext.dependencies.modulepush
+ implementation rootProject.ext.dependencies.callchat
+ implementation rootProject.ext.dependencies.callchatprovider
+ implementation rootProject.ext.dependencies.mapcustom
+ implementation rootProject.ext.dependencies.crashreportupgrade
+ implementation rootProject.ext.dependencies.crashreportbugly
implementation rootProject.ext.dependencies.moduleservice
+
+ implementation rootProject.ext.dependencies.mogo_core_data
+ implementation rootProject.ext.dependencies.mogo_core_function_obu_mogo
implementation rootProject.ext.dependencies.mogo_core_function_smp
+ implementation rootProject.ext.dependencies.mogo_core_function_hmi
+ implementation rootProject.ext.dependencies.mogo_core_function_notice
+ implementation rootProject.ext.dependencies.mogo_core_function_autopilot
+ implementation rootProject.ext.dependencies.mogo_core_function_check
+ implementation rootProject.ext.dependencies.mogo_core_function_map
+ implementation rootProject.ext.dependencies.mogo_core_function_v2x
+ implementation rootProject.ext.dependencies.mogo_core_function_monitoring
+
+ implementation rootProject.ext.dependencies.modulemain
} else {
- api project(":modules:mogo-module-main")
+ implementation project(':foudations:mogo-aicloud-services-sdk')
+ implementation project(':foudations:mogo-commons')
+ implementation project(':modules:mogo-module-common')
implementation project(':modules:mogo-module-service')
+ implementation project(':modules:mogo-module-v2x')
+ implementation project(':modules:mogo-module-share')
+ implementation project(':modules:tanlulib')
+ implementation project(':modules:mogo-module-monitor')
+ implementation project(':modules:mogo-module-extensions')
+ implementation project(':modules:mogo-module-map')
+ implementation project(':modules:mogo-module-widgets')
+ implementation project(':modules:mogo-module-adas')
+ implementation project(':modules:mogo-module-back')
+ implementation project(':modules:mogo-module-apps')
+ implementation project(":modules:mogo-module-push-base")
+ implementation project(":modules:mogo-module-push")
+ implementation project(':modules:mogo-module-carchatting')
+ implementation project(':modules:mogo-module-carchattingprovider')
+ implementation project(':libraries:map-custom')
+ implementation project(':test:crashreport-upgrade')
+ implementation project(':test:crashreport-bugly')
+ implementation project(':modules:mogo-module-service')
+
+ implementation project(':core:mogo-core-data')
+ implementation project(':core:function-impl:mogo-core-function-obu-mogo')
implementation project(':core:function-impl:mogo-core-function-smp')
+ implementation project(':core:function-impl:mogo-core-function-hmi')
+ implementation project(':core:function-impl:mogo-core-function-autopilot')
+ implementation project(':core:function-impl:mogo-core-function-check')
+ implementation project(':core:function-impl:mogo-core-function-map')
+ implementation project(':core:function-impl:mogo-core-function-notice')
+ implementation project(':core:function-impl:mogo-core-function-v2x')
+ implementation project(':core:function-impl:mogo-core-function-monitoring')
+
+ implementation project(":modules:mogo-module-main")
}
}
diff --git a/app/libs/persistentlib.jar b/core/function-impl/mogo-core-function-main/libs/persistentlib.jar
similarity index 100%
rename from app/libs/persistentlib.jar
rename to core/function-impl/mogo-core-function-main/libs/persistentlib.jar
diff --git a/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml
index cec93e9e67..4a4c78a268 100644
--- a/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml
+++ b/core/function-impl/mogo-core-function-main/src/main/AndroidManifest.xml
@@ -2,13 +2,29 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
{
+ MogoLocation mogoLocation =
+ MogoApisHandler.getInstance()
+ .getApis().getMapServiceApi()
+ .getSingletonLocationClient(getApp())
+ .getLastKnowLocation();
+ HttpDnsSimpleLocation httpDnsSimpleLocation;
+ if (mogoLocation != null
+ && mogoLocation.getLatitude() != 0
+ && mogoLocation.getLongitude() != 0) {
+ httpDnsSimpleLocation = new HttpDnsSimpleLocation(
+ mogoLocation.getCityCode(),
+ mogoLocation.getLatitude(),
+ mogoLocation.getLongitude());
+ Logger.i(TAG, "使用实时GPS信息:" + httpDnsSimpleLocation);
+ } else {
+ String ciyCode = SharedPrefsMgr.getInstance(getApp())
+ .getString(SharedPrefsConstants.LOCATION_CITY_CODE);
+ String latitude = SharedPrefsMgr.getInstance(getApp())
+ .getString(SharedPrefsConstants.LOCATION_LATITUDE);
+ String longitude = SharedPrefsMgr.getInstance(getApp())
+ .getString(SharedPrefsConstants.LOCATION_LONGITUDE);
+ try {
+ httpDnsSimpleLocation = new HttpDnsSimpleLocation(
+ ciyCode,
+ Double.parseDouble(latitude),
+ Double.parseDouble(longitude));
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ httpDnsSimpleLocation = new HttpDnsSimpleLocation("010", 1, 1);
+ }
+ Logger.i(TAG, "使用缓存GPS信息:" + httpDnsSimpleLocation);
+ }
+ return httpDnsSimpleLocation;
+ });
+
+ // 初始化SDK,可以设置状态回调来监听
+ MoGoAiCloudClient.getInstance().init(this, clientConfig).addTokenCallbacks(
+ new IMoGoTokenCallback() {
+ @Override
+ public void onTokenGot(String token, String sn) {
+ Logger.d("TEST-SOCKET", "onTokenGot ");
+ // 异步初始化NetConfig
+ asyncInit();
+ // HttpDns ttl回调 --- socketTTL
+ registerSocketHttpDnsTTL(HostConst.SOCKET_CENTER_DOMAIN);
+ // 开启每5s/次定位上报
+ uploadLocPerFiveSecond();
+ }
+
+ @Override
+ public void onError(int code, String msg) {
+ Log.d(TAG, "初始化MogoAiCloudSdk failed ,reason : " + msg + " , 未能开启长链服务和初始化Modules服务");
+ }
+ }
+ );
+ }
+
+ /**
+ * 上传自车位置信息到云端
+ */
+ private void uploadLocPerFiveSecond() {
+ if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) {
+ IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
+ apis.getLocationInfoApi().start();
+ apis.getMapServiceApi().getSingletonLocationClient(getApplicationContext()).addLocationListener(location -> {
+ apis.getLocationInfoApi().provideLocation(location);
+ });
+ }
+ }
+
+ private void startSocketService() {
+ IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
+ // 关闭长链服务
+ apis.getSocketManagerApi(getApplicationContext()).destroy();
+ apis.getSocketManagerApi(this).registerLifecycleListener(10020, new IMogoLifecycleListener() {
+ @Override
+ public void onConnectFailure() {
+ DebugConfig.setDownloadSnapshot(false);
+ }
+
+ @Override
+ public void onConnectSuccess() {
+ DebugConfig.setDownloadSnapshot(true);
+ }
+
+ @Override
+ public void onConnectLost() {
+ DebugConfig.setDownloadSnapshot(false);
+ }
+ });
+ // 开启Socket长链服务
+ apis.getSocketManagerApi(getApplicationContext()).init(getApplicationContext(), DebugConfig.getSocketAppId());
+ }
+
+ @Override
+ protected void socketTTL() {
+ // 鉴权成功后开启socket长链服务
+ startSocketService();
+ }
+
+ private void initModules() {
+ Logger.d(TAG, "initModules");
+
+ // 初始化 bugly 升级
+ MogoModulePaths.addBaseModule(new MogoModule(UpgradeReportConstants.PATH, UpgradeReportConstants.NAME));
+ // 初始化 bugly 日志采集
+ MogoModulePaths.addBaseModule(new MogoModule(CrashReportConstants.PATH, CrashReportConstants.NAME));
+
+ if (DebugConfig.isLauncher()) {
+ MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_BACK, MogoServicePaths.PATH_BACK));
+ }
+
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS));
+ if (DebugConfig.isMapBased()) {
+ MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME));
+ }
+
+ MogoModulePaths.addBaseModule(new MogoModule(MapApiPath.PATH, "CustomMapApiBuilder"));
+ MogoModulePaths.addBaseModule(new MogoModule(ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG));
+ MogoModulePaths.addBaseModule(new MogoModule(ShareConstants.TAG, ShareConstants.MODEL_NAME));
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_TANLU_API, "TanluApi"));
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_TRAFFIC_UPLOAD, "TrafficUpload"));
+ MogoModulePaths.addBaseModule(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.MODULE_NAME));
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare"));
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare"));
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor"));
+
+ // 域控制器模块(新)
+ MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AUTO_PILOT, "IMoGoAutoPilotProvider"));
+ // OBU 模块
+ MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_V2X_OBU_MOGO, "IMoGoObuProvider"));
+ // 超视距,路测、行车记录仪监控
+ MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_AI_MONITORING, "IMoGoMonitoringProvider"));
+
+
+ // V2X 模块
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider"));
+ // 自动驾驶系统检测模块
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CHECK, "CheckProvider"));
+ // 推送模块
+ MogoModulePaths.addModule(new MogoModule(PushUIConstants.PATH, PushUIConstants.NAME));
+ // 碰撞报警模块
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING, "IMogoCrashWarnProvider"));
+ // ADAS模块(旧,慢慢被 域控制器模块 替换掉)
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_ADAS, "AdasProvider"));
+ // 前方碰撞预警
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider"));
+ // 全局语音唤醒
+ MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake"));
+ // 云公告发布
+ MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_AI_NOTICE, "IMoGoNoticeProvider"));
+
+ if (!DebugConfig.isLauncher()) {
+ PersistentManager.getInstance().initManager(this);
+ Intent intent = new Intent(this, MogoMainService.class);
+ startService(intent);
+ }
+
+ Log.i(TAG, "App launch timer cost " + (System.currentTimeMillis() - start) + "ms");
+ }
+
+ @Override
+ protected void attachBaseContext(Context base) {
+ super.attachBaseContext(base);
+ BoostMultiDex.install(base);
+ }
+}
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
index edecadc1fe..4cbcac323b 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java
@@ -751,7 +751,7 @@ public class AMapViewWrapper implements IMogoMapView,
@Override
public void onLocationChanged(@NotNull com.zhidaoauto.map.sdk.open.location.MogoLocation location) {
MogoLocation mLastLocation = ObjectUtils.fromLocation(location);
- CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation);
+ UiThreadHandler.post(() -> CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation));
Location sysLocation = new Location(location.getProvider());
sysLocation.setAltitude(location.getAltitude());
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/location/ALocationClient.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/location/ALocationClient.java
index e5315c6f86..6e00a0fd97 100644
--- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/location/ALocationClient.java
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/location/ALocationClient.java
@@ -9,6 +9,7 @@ import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.map.location.MogoLocationListenerRegister;
+import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
import com.zhidaoauto.map.sdk.open.location.LocationClient;
import com.zhidaoauto.map.sdk.open.location.LocationListener;
@@ -123,7 +124,8 @@ public class ALocationClient implements IMogoLocationClient {
}
Trace.beginSection( "timer.onLocationChanged" );
mLastLocation = ObjectUtils.fromLocation( location );
- CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation);
+ UiThreadHandler.post(() -> CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation));
+
Set< IMogoLocationListener > listeners = MogoLocationListenerRegister.getInstance().getListeners();
synchronized ( listeners ) {
Iterator< IMogoLocationListener > listenerIterator = listeners.iterator();