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 e7746ad446..7ac2b024e6 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 @@ -23,6 +23,7 @@ import com.mogo.service.MogoServicePaths; import com.mogo.service.fragmentmanager.FragmentDescriptor; import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.map.IMogoMapService; +import com.mogo.service.module.IMogoModuleProvider; /** * @author congtaowang @@ -53,6 +54,11 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private IMogoNavi mMogoNavi; private IMogoFragmentManager mMogoFragmentManager; + /** + * 搜索莫模块 + */ + private IMogoModuleProvider mSearchProvider; + @Override protected int getLayoutId() { return R.layout.module_ext_layout_entrance; @@ -66,9 +72,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mSearch = findViewById( R.id.module_entrance_id_search ); - Fragment fragment = ( Fragment ) ARouter.getInstance().build( MogoModulePaths.PATH_FRAGMENT_SEARCH ).navigation(); - mSearch.setOnClickListener( view -> { + mSearchProvider = ( IMogoModuleProvider ) ARouter.getInstance().build( MogoModulePaths.PATH_MODULE_SEARCH ).navigation(); + final Fragment fragment = mSearchProvider.createFragment( getContext(), null ); mMogoFragmentManager.push( new FragmentDescriptor.Builder().fragment( fragment ).tag( MogoModulePaths.PATH_FRAGMENT_SEARCH ).notifyMainModule( true ).build() ); } ); @@ -124,12 +130,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override public void onInitNaviFailure() { - + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onInitNaviFailure(); + } } @Override public void onInitNaviSuccess() { - + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onInitNaviSuccess(); + } } @Override @@ -138,6 +148,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent return; } mNaviInfo.notifyChanged( naviinfo ); + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onNaviInfoUpdate( naviinfo ); + } } @Override @@ -145,6 +158,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.GONE ); mNaviInfo.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onStartNavi(); + } } @Override @@ -152,15 +168,22 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.VISIBLE ); mNaviInfo.setVisibility( View.GONE ); mExitNavi.setVisibility( View.GONE ); + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onStopNavi(); + } } @Override public void onCalculateSuccess() { - + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onCalculateSuccess(); + } } @Override public void onoCalculateFailed() { - + if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { + mSearchProvider.getNaviListener().onoCalculateFailed(); + } } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java index 6e818b3d9c..833935be75 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceProvider.java @@ -26,11 +26,13 @@ import com.mogo.service.module.ModuleType; @Route( path = ExtensionsModuleConst.PATH_ENTRANCE ) public class EntranceProvider implements IMogoModuleProvider { + EntranceFragment mFragment; + @Override public Fragment createFragment( Context context, Bundle data ) { - EntranceFragment fragment = new EntranceFragment(); - fragment.setArguments( data ); - return fragment; + mFragment = new EntranceFragment(); + mFragment.setArguments( data ); + return mFragment; } @Override @@ -61,7 +63,7 @@ public class EntranceProvider implements IMogoModuleProvider { @Override public IMogoNaviListener getNaviListener() { - return null; + return mFragment; } @Override diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index 5ae3e5c9fc..d5ec1fe8d0 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -379,6 +379,41 @@ public class MogoModulesManager implements MogoModulesHandler, } } + + @Override + public void onCalculateSuccess() { + for ( IMogoModuleProvider value : mModuleProviders.values() ) { + if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { + if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { + if ( value.getNaviListener() != null ) { + value.getNaviListener().onCalculateSuccess(); + } + } + } else { + if ( value.getNaviListener() != null ) { + value.getNaviListener().onCalculateSuccess(); + } + } + } + } + + @Override + public void onoCalculateFailed() { + for ( IMogoModuleProvider value : mModuleProviders.values() ) { + if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { + if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { + if ( value.getNaviListener() != null ) { + value.getNaviListener().onoCalculateFailed(); + } + } + } else { + if ( value.getNaviListener() != null ) { + value.getNaviListener().onoCalculateFailed(); + } + } + } + } + @Override public void onLocationChanged( MogoLocation location ) { for ( IMogoModuleProvider value : mModuleProviders.values() ) { @@ -437,15 +472,6 @@ public class MogoModulesManager implements MogoModulesHandler, mEnableModuleName = null; } - @Override - public void onCalculateSuccess() { - - } - - @Override - public void onoCalculateFailed() { - } - @Override public void onMarkerReceive( String cardType, IMogoMarker marker ) { for ( IMogoModuleProvider value : mModuleProviders.values() ) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java index 8c8bb585fa..c55cf62928 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragmentProvider.java @@ -57,7 +57,7 @@ public class SearchFragmentProvider implements IMogoModuleProvider { @Override public int getType() { - return ModuleType.TYPE_CARD_FRAGMENT; + return ModuleType.TYPE_NAVI; } @Override