diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index aef3a1b430..a0cd07579b 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -522,6 +522,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, } if ( checkAMapView() ) { MyLocationStyle style = mMapView.getMap().getMyLocationStyle(); + if ( style == null ) { + style = new MyLocationStyle(); + } style.showMyLocation( visible ); if ( visible ) { // 强制刷新一遍车标 @@ -541,6 +544,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, } if ( checkAMapView() ) { MyLocationStyle style = mMapView.getMap().getMyLocationStyle(); + if ( style == null ) { + style = new MyLocationStyle(); + } style.showMyLocation( true ); style.myLocationIcon( BitmapDescriptorFactory.fromView( view ) ); mMapView.getMap().setMyLocationStyle( style ); 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 f085d39fdb..2e9aa27316 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 @@ -6,11 +6,9 @@ import android.widget.FrameLayout; import androidx.annotation.Nullable; -import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; +import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.module.main.MainActivity; -import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; /** * 针对独立应用形式,做单独定制 @@ -18,6 +16,7 @@ import com.mogo.service.MogoServicePaths; * @author tongchenfei */ public class MainIndependentActivity extends MainActivity { + @Override protected void onCreate( @Nullable Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); @@ -31,7 +30,7 @@ public class MainIndependentActivity extends MainActivity { FrameLayout.LayoutParams entranceParams = ( ( FrameLayout.LayoutParams ) mEntrance.getLayoutParams() ); entranceParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft ); mEntrance.setLayoutParams( entranceParams ); - mLeftShadowFrame.setVisibility(View.VISIBLE); + mLeftShadowFrame.setVisibility( View.VISIBLE ); mApps.setVisibility( View.GONE ); } @@ -48,4 +47,17 @@ public class MainIndependentActivity extends MainActivity { super.onPause(); mServiceApis.getAdasControllerApi().setUseAlgorithm( false ); } + + @Override + protected boolean doWhenBackPressed() { + return exitCustomNaviIfNecessary(); + } + + private boolean exitCustomNaviIfNecessary() { + if ( CustomNaviInterrupter.getInstance().interrupt() ) { + return false; + } + mServiceApis.getMapServiceApi().getNavi( this ).stopNavi(); + return false; + } } 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 ca02b01d8a..bf61240961 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 @@ -56,7 +56,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme protected IMogoFragmentManager mMogoFragmentManager; protected IMogoStatusManager mMogoStatusManager; -// protected View mHeader; + // protected View mHeader; protected View mApps; protected View mEntrance; protected FrameLayout mFloatingLayout; @@ -81,7 +81,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mFloatingLayout = findViewById( R.id.module_main_id_floating_view ); mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame ); mCoverUpLayout = findViewById( R.id.module_main_id_cover_up ); - mLeftPanelLayout = findViewById(R.id.module_main_id_left_panel_fragment_container); + mLeftPanelLayout = findViewById( R.id.module_main_id_left_panel_fragment_container ); // 避免事件穿透导致地图被滑动 mLeftShadowFrame.setOnClickListener( view -> { @@ -114,8 +114,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme if ( mServiceApis == null ) { mServiceApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(); } - mServiceApis.getShareManager().resetContext(this); - mServiceApis.getAuthManagerApi().showAuth(this); + mServiceApis.getShareManager().resetContext( this ); + mServiceApis.getAuthManagerApi().showAuth( this ); mMogoStatusManager = mServiceApis.getStatusManagerApi(); mMogoStatusManager.setMainPageLaunchedStatus( TAG, true ); AutopilotServiceManage.getInstance().init( getContext() ); @@ -187,8 +187,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme protected void loadContainerModules() { // MogoModulesManager.getInstance().loadExtensionsModule( R.id.module_main_id_header_fragment_container ); MogoModulesManager.getInstance().loadEntrancesModule( R.id.module_main_id_entrance_fragment_container ); - MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container); - MogoModulesManager.getInstance().loadLeftPanelModule(R.id.module_main_id_left_panel_fragment_container); + MogoModulesManager.getInstance().loadEventPanelModule( R.id.module_main_id_event_panel_fragment_container ); + MogoModulesManager.getInstance().loadLeftPanelModule( R.id.module_main_id_left_panel_fragment_container ); } @Override @@ -209,7 +209,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public void loadSplash() { - MogoModulesManager.getInstance().loadSplashModule(R.id.module_main_id_splash_container); + MogoModulesManager.getInstance().loadSplashModule( R.id.module_main_id_splash_container ); } @NonNull @@ -252,7 +252,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme mIsHomeKeyDown = false; } - private boolean shouldCloseADASPanel(){ + private boolean shouldCloseADASPanel() { // m4 系列因为按home键会造成页面pause后resume,造成adas panel 闪烁 // f 系列加上上滑返回桌面后会走 mIsHomeKeyDown = true,但是不会造成页面pause // 独立 app 任何情况下都需要隐藏 adas @@ -269,19 +269,26 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme @Override public void onBackPressed() { - if ( mMogoFragmentManager.getStackSize() == 0 ) { + if ( mMogoFragmentManager == null + || mMogoFragmentManager.getStackSize() <= 0 ) { if ( DebugConfig.isLauncher() ) { + doWhenBackPressed(); return; } else { + if ( doWhenBackPressed() ) { + return; + } super.onBackPressed(); } - } - if ( mMogoFragmentManager != null - && mMogoFragmentManager.getStackSize() > 0 ) { + } else { mMogoFragmentManager.pop(); } } + protected boolean doWhenBackPressed() { + return false; + } + @Override protected void onNewIntent( Intent intent ) { super.onNewIntent( intent );