diff --git a/.idea/misc.xml b/.idea/misc.xml index cd77a1f062..21e99e2dc0 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index 245453af4a..289284bae5 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -2,6 +2,7 @@ package com.mogo.module.main; import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.FrameLayout; @@ -32,6 +33,7 @@ import com.mogo.module.service.ServiceConst; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.fragmentmanager.IMogoFragmentManager; +import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.map.IMogoMapService; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.statusmanager.IMogoStatusManager; @@ -50,7 +52,8 @@ import java.util.List; */ public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView, IMogoLocationListener, - IMogoMarkerClickListener { + IMogoMarkerClickListener, + IMogoIntentListener { protected static final String TAG = MainActivity.class.getSimpleName(); @@ -66,6 +69,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme protected FrameLayout mFloatingLayout; protected FrameLayout mCoverUpLayout; protected View mLeftShadowFrame; + private boolean mIsHomeKeyDown = false; @Override protected int getLayoutId() { @@ -223,6 +227,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme if ( mCoverUpLayout.getVisibility() != View.VISIBLE ) { mServiceApis.getAdasControllerApi().showADAS(); } + getApis().getIntentManagerApi().registerIntentListener( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this ); } @Override @@ -230,7 +235,16 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme super.onPause(); mMogoStatusManager.setMainPageResumeStatus( TAG, false ); mMogoStatusManager.setMainPageLaunchedStatus( TAG, false ); - mServiceApis.getAdasControllerApi().closeADAS(); + if ( !mIsHomeKeyDown ) { + mServiceApis.getAdasControllerApi().closeADAS(); + } + mIsHomeKeyDown = false; + } + + @Override + protected void onStop() { + super.onStop(); + getApis().getIntentManagerApi().unregisterIntentListener( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, this ); } @Override @@ -262,6 +276,13 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme return mServiceApis; } + @Override + public void onIntentReceived( String intentStr, Intent intent ) { + if ( TextUtils.equals( Intent.ACTION_CLOSE_SYSTEM_DIALOGS, intentStr ) ) { + mIsHomeKeyDown = true; + } + } + @Override protected void onDestroy() { super.onDestroy(); 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 4db61bd822..9082bcadea 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 @@ -405,6 +405,7 @@ public class MogoServices implements IMogoMapListener, filter.addAction( MogoReceiver.ACTION_ADAS_STATUS ); filter.addAction( MogoReceiver.ACTION_VOICE_READY ); filter.addAction( MogoReceiver.ACTION_MOCK ); + filter.addAction( Intent.ACTION_CLOSE_SYSTEM_DIALOGS ); try { context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); Logger.i( TAG, "register voice receiver." );