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