diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java index ab5af1e04c..dfa80f15fd 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java @@ -21,6 +21,7 @@ import com.mogo.module.apps.model.AppEnum; import com.mogo.module.apps.model.AppInfo; import com.mogo.module.apps.model.NavigatorApps; import com.mogo.module.apps.view.OnAiAssistClickListener; +import com.mogo.service.fragmentmanager.FragmentStackTransactionListener; import com.mogo.utils.AppUtils; import com.mogo.utils.CommonUtils; @@ -33,7 +34,9 @@ import java.util.Map; *

* 描述 */ -public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > implements AppNavigatorView { +public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavigatorPresenter > + implements AppNavigatorView, + FragmentStackTransactionListener { private static final String TAG = "AppNavigatorFragment"; @@ -74,14 +77,17 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi mAIAssist.performClick(); } ); - AppServiceHandler.getApis().getFragmentManagerApi().addMainFragmentStackTransactionListener( size -> { - // 主页 fragment 栈变化的时候,改变动画状态 - if ( size == 0 ) { - mAnim.start(); - } else { - mAnim.stop(); - } - } ); + AppServiceHandler.getApis().getFragmentManagerApi().addMainFragmentStackTransactionListener( this ); + } + + @Override + public void onTransaction( int size ) { + // 主页 fragment 栈变化的时候,改变动画状态 + if ( size == 0 ) { + mAnim.start(); + } else { + mAnim.stop(); + } } @Override @@ -151,5 +157,6 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi if ( mPresenter != null ) { mPresenter.onDestroy( getViewLifecycleOwner() ); } + AppServiceHandler.getApis().getFragmentManagerApi().removeMainFragmentStackTransactionListener( this ); } } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java index 7b39a6b5a3..5aaf7a9c38 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorPresenter.java @@ -115,6 +115,7 @@ public class AppNavigatorPresenter extends Presenter< AppNavigatorView > impleme @Override public void onDestroy( @NonNull LifecycleOwner owner ) { super.onDestroy( owner ); + AppServiceHandler.getApis().getRegisterCenterApi().unregisterMogoNaviListener( TAG ); AppServiceHandler.getApis().getIntentManagerApi().unregisterIntentListener( AppsConst.COMMAND_OPERATION, this ); } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java index 916b265020..41d756ef34 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsPresenter.java @@ -45,7 +45,6 @@ public class AppsPresenter extends Presenter< AppsView > { private IMogoServiceApis mApis; private IMogoCardManager mCardManager; - private IMogoStatusManager mMogoStatusManager; public AppsPresenter( AppsView view ) { super( view ); @@ -71,7 +70,6 @@ public class AppsPresenter extends Presenter< AppsView > { } ); mAnalytics = mApis.getAnalyticsApi(); - mMogoStatusManager = mApis.getStatusManagerApi(); } private void renderAppsList() { diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index a15d148a4b..c060be895f 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -1,5 +1,6 @@ package com.mogo.module.extensions.entrance; +import android.content.Intent; import android.graphics.Rect; import android.os.Bundle; import android.text.TextUtils; @@ -44,6 +45,7 @@ import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.entrance.ButtonIndex; import com.mogo.service.fragmentmanager.IMogoFragmentManager; +import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.map.IMogoMapService; import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.statusmanager.IMogoStatusChangedListener; @@ -72,7 +74,8 @@ public class EntranceFragment extends MvpFragment { - int key_type = intent.getIntExtra( "KEY_TYPE", 0 ); - int type = intent.getIntExtra( "EXTRA_TYPE", -1 ); - int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 ); - if ( key_type == 10027 ) { - if ( opera_type == 0 ) { - mCameraMode.setSelected( false ); - } else if ( opera_type == 1 ) { - mCameraMode.setSelected( true ); - } - mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) ); - } else if( key_type == 10021 ){ - onStopNavi(); - } - }) ); - MogoEntranceButtons.save( ButtonIndex.BUTTON1, findViewById( R.id.module_entrance_id_button1 ) ); - MogoEntranceButtons.save( ButtonIndex.BUTTON2, findViewById( R.id.module_entrance_id_button2 ) ); + + mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, this); + MogoEntranceButtons.save(ButtonIndex.BUTTON1, + findViewById(R.id.module_entrance_id_button1)); + MogoEntranceButtons.save(ButtonIndex.BUTTON2, + findViewById(R.id.module_entrance_id_button2)); mDisplayOverviewBounds = new Rect( ResourcesHelper.getDimensionPixelSize(getContext(), @@ -355,6 +347,22 @@ public class EntranceFragment extends MvpFragment impleme mMogoMapUIController = null; mMogoFragmentManager = null; mServiceApis.getAdasControllerApi().release(); + Logger.d( TAG, "destroy." ); mServiceApis.getRefreshStrategyControllerApi().clearAllData(); AIAssist.getInstance( this ).release(); }