diff --git a/.idea/misc.xml b/.idea/misc.xml index 2dc54c489f..707ee6e613 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 62ba842c5b..e2535ac6e4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -59,7 +59,7 @@ MOGO_MODULE_MAIN_INDEPENDENT_VERSION = 1.2.1.5 ## 工程外部模块 # 探路 -MOGO_MODULE_TANLU_VERSION=1.1.0.1-SNAPSHOT +MOGO_MODULE_TANLU_VERSION=1.2.1.1 # 车聊聊 CARCHATTING_VERSION=1.0.6 # 车聊聊接口 @@ -77,7 +77,7 @@ MOGO_MODULE_PUSH_VERSION=1.0.1 # 广告资源位 MOGO_MODULE_AD_CARD_VERSION=1.0.1 # 探路上报和分享模块 -TANLULIB_VERSION=1.0.2-SNAPSHOT +TANLULIB_VERSION=1.2.1.1 ## 产品库必备配置 applicationId=com.mogo.launcer diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java index 937548ba6e..9416d12b43 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/EventDispatchCenter.java @@ -21,6 +21,7 @@ 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.module.service.receiver.AccStatusReceiver; import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; @@ -68,7 +69,7 @@ public class EventDispatchCenter implements public void registerReceiver( IMogoIntentManager intentManager ) { intentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this ); intentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this ); - intentManager.registerIntentListener( MogoReceiver.ACTION_NWD_ACC, this ); + intentManager.registerIntentListener( AccStatusReceiver.ACTION_NWD_ACC, this ); } @Override @@ -448,8 +449,8 @@ public class EventDispatchCenter implements } } } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( intentStr ) ) { - } else if ( MogoReceiver.ACTION_NWD_ACC.equals( intentStr ) ) { - int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); + } else if ( AccStatusReceiver.ACTION_NWD_ACC.equals( intentStr ) ) { + int state = intent.getByteExtra( AccStatusReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); if ( state == 1 ) { while ( iterator.hasNext() ) { IMogoModuleLifecycle lifecycle = iterator.next(); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java index ce556acb4c..3a979612ae 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/service/MogoMainService.java @@ -27,7 +27,7 @@ public * * 描述 */ -@Route( path = "/service/base/info" ) +@Route(path = "/service/base/info") class MogoMainService extends Service implements IMogoLocationListener { private static final String TAG = "MogoMainService"; @@ -40,11 +40,11 @@ class MogoMainService extends Service implements IMogoLocationListener { @Override public void onCreate() { - Logger.d( TAG, "基本服务启动" ); - mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); + Logger.d(TAG, "基本服务启动"); + mServiceApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(); initAndStartLocation(); initGpsSimulatorListener(); - UiThreadHandler.postDelayed( () -> { + UiThreadHandler.postDelayed(() -> { loadBaseModules(); startTanluService(); initADAS(); @@ -54,49 +54,53 @@ class MogoMainService extends Service implements IMogoLocationListener { @Nullable @Override - public IBinder onBind( Intent intent ) { + public IBinder onBind(Intent intent) { return null; } @Override - public int onStartCommand( Intent intent, int flags, int startId ) { + public int onStartCommand(Intent intent, int flags, int startId) { return START_STICKY; } private void initAndStartLocation() { - Logger.d( TAG, "开始定位" ); - mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ); - mLocationClient.addLocationListener( this ); - mLocationClient.start( 2_000L ); + Logger.d(TAG, "开始定位"); + mLocationClient = mServiceApis.getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()); + mLocationClient.addLocationListener(this); + mLocationClient.start(2_000L); } private void initGpsSimulatorListener() { - mServiceApis.getMapServiceApi().getNavi( this ).registerCarLocationChangedListener( EventDispatchCenter.getInstance() ); + mServiceApis.getMapServiceApi().getNavi(this).registerCarLocationChangedListener(EventDispatchCenter.getInstance()); } private void loadBaseModules() { - Logger.d( TAG, "加载基本模块" ); + Logger.d(TAG, "加载基本模块"); MogoModulesManager.getInstance().loadBaseModule(); } private void startTanluService() { - MainService.Companion.launchService( getApplicationContext(), "0" ); + UiThreadHandler.postDelayed(() -> { + Logger.d(TAG, "startTanluService ---------- "); + MainService.Companion.launchService(getApplicationContext(), "0"); + }, 58_000L + ); } private void initADAS() { - mServiceApis.getAdasControllerApi().init( AbsMogoApplication.getApp() ); + mServiceApis.getAdasControllerApi().init(AbsMogoApplication.getApp()); } @Override - public void onLocationChanged( MogoLocation location ) { - EventDispatchCenter.getInstance().onLocationChanged( location ); + public void onLocationChanged(MogoLocation location) { + EventDispatchCenter.getInstance().onLocationChanged(location); } @Override public void onDestroy() { super.onDestroy(); - if ( mLocationClient != null ) { - mLocationClient.removeLocationListener( this ); + if (mLocationClient != null) { + mLocationClient.removeLocationListener(this); mLocationClient.stop(); mLocationClient.destroy(); mLocationClient = null; diff --git a/modules/mogo-module-service/src/main/AndroidManifest.xml b/modules/mogo-module-service/src/main/AndroidManifest.xml index 3ef5034430..8eb5a9dd2c 100644 --- a/modules/mogo-module-service/src/main/AndroidManifest.xml +++ b/modules/mogo-module-service/src/main/AndroidManifest.xml @@ -1,2 +1,15 @@ + package="com.mogo.module.service" > + + + + + + + + + + + diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index c76e7b3193..cb7fa6a938 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -65,7 +65,12 @@ public class MarkerServiceHandler { private static MapMarkerManager sMapMarkerManager; - public static void init( final Context context ) { + public static synchronized void init( final Context context ) { + + if ( sGpsSimulatorManager != null ) { + return; + } + sApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( context ); sMapService = sApis.getMapServiceApi(); sImageloader = sApis.getImageLoaderApi(); @@ -85,7 +90,7 @@ public class MarkerServiceHandler { sLauncher = sApis.getLauncherApi(); sFragmentManager = sApis.getFragmentManagerApi(); - sCarChatting = (ICarsChattingProvider)ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation( context ); + sCarChatting = ( ICarsChattingProvider ) ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation( context ); sMapMarkerManager = MapMarkerManager.getInstance(); sMapMarkerManager.init( context ); @@ -93,7 +98,7 @@ public class MarkerServiceHandler { sGpsSimulatorManager = ARouter.getInstance().navigation( IMogoGpsSimulatorManager.class ); } - public static IMogoServiceApis getApis(){ + public static IMogoServiceApis getApis() { return sApis; } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index ca22d02c50..9d6c450152 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -302,9 +302,6 @@ public class MogoServices implements IMogoMapListener, mIntentManager = MarkerServiceHandler.getIntentManager(); mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this ); - mIntentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this ); - mIntentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this ); - mIntentManager.registerIntentListener( MogoReceiver.ACTION_NWD_ACC, this ); mIntentManager.registerIntentListener( MogoReceiver.ACTION_VOICE_UI, this ); mIntentManager.registerIntentListener( ServiceConst.COMMAND_NEXT, this ); mIntentManager.registerIntentListener( ServiceConst.COMMAND_PREVIOUS, this ); @@ -403,10 +400,6 @@ public class MogoServices implements IMogoMapListener, } filter.addAction( MogoReceiver.VOICE_ACTION ); filter.addAction( MogoReceiver.ACTIION_ADAS ); - filter.addAction( MogoReceiver.ACTION_NWD_ACC ); - // acc On - filter.addAction( Intent.ACTION_POWER_CONNECTED ); - filter.addAction( Intent.ACTION_POWER_DISCONNECTED ); // 小智语音 filter.addAction( MogoReceiver.ACTION_VOICE_UI ); filter.addAction( MogoReceiver.ACTION_ADAS_STATUS ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java index b9f14e92da..5a9def8162 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/AccStatusIntentHandler.java @@ -5,6 +5,7 @@ import android.content.Intent; import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.ServiceConst; +import com.mogo.module.service.receiver.AccStatusReceiver; import com.mogo.module.service.receiver.MogoReceiver; import com.mogo.utils.logger.Logger; @@ -47,8 +48,8 @@ class AccStatusIntentHandler implements IntentHandler { } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( action ) ) { MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, false ); Logger.d( TAG, "acc status: %s", false ); - } else if ( MogoReceiver.ACTION_NWD_ACC.equals( action ) ) { - int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); + } else if ( AccStatusReceiver.ACTION_NWD_ACC.equals( action ) ) { + int state = intent.getByteExtra( AccStatusReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); Logger.d( TAG, "acc status: %s", state == 1 ); MarkerServiceHandler.getMogoStatusManager().setAccStatus( ServiceConst.TYPE, state == 1 ); } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java index d67957cb8f..ea84b182e2 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/IntentHandlerFactory.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import com.mogo.module.service.ServiceConst; +import com.mogo.module.service.receiver.AccStatusReceiver; import com.mogo.module.service.receiver.MogoReceiver; import java.util.HashMap; @@ -31,7 +32,7 @@ public class IntentHandlerFactory { mHandlers.put( MogoReceiver.ACTION_VOICE_UI, new VoiceUiIntentHandler() ); mHandlers.put( Intent.ACTION_POWER_CONNECTED, AccStatusIntentHandler.getInstance() ); mHandlers.put( Intent.ACTION_POWER_DISCONNECTED, AccStatusIntentHandler.getInstance() ); - mHandlers.put( MogoReceiver.ACTION_NWD_ACC, AccStatusIntentHandler.getInstance() ); + mHandlers.put( AccStatusReceiver.ACTION_NWD_ACC, AccStatusIntentHandler.getInstance() ); mHandlers.put( MogoReceiver.ACTION_ADAS_STATUS, ADASStatusIntentHandler.getInstance() ); mHandlers.put( MogoReceiver.ACTIION_ADAS, ADASStatusIntentHandler.getInstance() ); mHandlers.put( MogoReceiver.ACTION_VOICE_READY, new AIAssistIntentHandler() ); diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AccStatusReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AccStatusReceiver.java new file mode 100644 index 0000000000..a5d1c55c1c --- /dev/null +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AccStatusReceiver.java @@ -0,0 +1,30 @@ +package com.mogo.module.service.receiver; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +import com.mogo.module.service.MarkerServiceHandler; +import com.mogo.module.service.intent.IntentHandlerFactory; + +public +/** + * @author congtaowang + * @since 2020/6/19 + * + * 描述 + */ +class AccStatusReceiver extends BroadcastReceiver { + + // 诺威达 acc 状态 + public static final String PARAM_ACC_STATUS = "extra_mcu_state"; + + // 诺威达 acc 状态 + public static final String ACTION_NWD_ACC = "com.nwd.action.ACTION_MCU_STATE_CHANGE"; + + @Override + public void onReceive( Context context, Intent intent ) { + MarkerServiceHandler.init( context ); + IntentHandlerFactory.getInstance().handle( context, intent.getAction(), intent ); + } +} diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java index ede5636b6e..42f9bef659 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java @@ -7,6 +7,7 @@ import android.text.TextUtils; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.voice.VoiceIntentTrack; +import com.mogo.module.service.MarkerServiceHandler; import com.mogo.service.MogoServicePaths; import com.mogo.service.intent.IMogoIntentManager; import com.mogo.utils.logger.Logger; @@ -34,12 +35,6 @@ public class MogoReceiver extends BroadcastReceiver { // ADAS 状态 0 - 关闭 1 - 打开 public static final String PARAM_ADAS_STATUS = "adas_drawer_status"; - // 诺威达 acc 状态 - public static final String ACTION_NWD_ACC = "com.nwd.action.ACTION_MCU_STATE_CHANGE"; - - // 诺威达 acc 状态 - public static final String PARAM_ACC_STATUS = "extra_mcu_state"; - // 小智语音唤醒UI public static final String ACTION_VOICE_UI = "com.zhidao.xiaozhi.wake.status"; public static final String PARRAM_WAKE_STATUS = "WAKE_STATUS"; @@ -61,7 +56,7 @@ public class MogoReceiver extends BroadcastReceiver { private IMogoIntentManager mMogoIntentManager; public MogoReceiver(Context context) { - mMogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(context); + mMogoIntentManager = MarkerServiceHandler.getIntentManager(); } @Override