opt
This commit is contained in:
@@ -13,15 +13,20 @@ import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.location.MogoLocation;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.module.common.MogoModule;
|
||||
import com.mogo.module.common.MogoModulePaths;
|
||||
import com.mogo.module.extensions.ExtensionsModuleConst;
|
||||
import com.mogo.module.main.cards.CardModulesAdapter;
|
||||
import com.mogo.module.main.cards.MogoModulesHandler;
|
||||
import com.mogo.module.main.cards.MogoModulesManager;
|
||||
import com.mogo.module.main.cards.OrientedViewPager;
|
||||
import com.mogo.module.main.cards.VerticalStackTransformer;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.connection.IMogoSocketManager;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.ModuleType;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.List;
|
||||
@@ -99,11 +104,20 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
protected void onCreate( @Nullable Bundle savedInstanceState ) {
|
||||
super.onCreate( savedInstanceState );
|
||||
|
||||
MogoModulePaths.addModule( new MogoModule( MogoModulePaths.PATH_MODULE_APPS, MogoModulePaths.PATH_MODULE_APPS ) );
|
||||
MogoModulePaths.addModule( new MogoModule( MogoModulePaths.PATH_MODULE_MAP, MogoModulePaths.PATH_MODULE_MAP ) );
|
||||
MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) );
|
||||
MogoModulePaths.addModule( new MogoModule( ExtensionsModuleConst.PATH_EXTENSION, ExtensionsModuleConst.TYPE ) );
|
||||
|
||||
mMogoModuleHandler = new MogoModulesManager( this );
|
||||
mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation();
|
||||
if ( mMogoMapService != null ) {
|
||||
mMogoMapService.getHostListenerRegister().registerHostMapListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerHostNaviListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
|
||||
}
|
||||
|
||||
mMogoSocketManager = ( IMogoSocketManager ) ARouter.getInstance().build( MogoServicePaths.PATH_SOCKET_MANAGER ).navigation();
|
||||
mMogoSocketManager.init( getApplicationContext(), AppConstants.SOCKET_APP_ID );
|
||||
|
||||
mMogoModuleHandler.loadModules();
|
||||
mMogoModuleHandler.onMapLoadedCallback( new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
@@ -111,23 +125,17 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
loadModules();
|
||||
}
|
||||
} );
|
||||
|
||||
mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation();
|
||||
if ( mMogoMapService != null ) {
|
||||
mMogoMapService.getHostListenerRegister().registerHostMapListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerHostNaviListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
|
||||
}
|
||||
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
|
||||
mMogoModuleHandler.loadMap( R.id.module_main_id_map_fragment_container );
|
||||
mMogoModuleHandler.loadAppsList( R.id.module_main_id_fragment_container );
|
||||
mMogoModuleHandler.loadExtensions( R.id.module_main_id_ai_fragment_container );
|
||||
|
||||
mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
|
||||
mLocationClient.addLocationListener( this );
|
||||
mLocationClient.start();
|
||||
|
||||
mMogoModuleHandler.loadService();
|
||||
|
||||
mMogoModuleHandler.loadAppsList( R.id.module_main_id_fragment_container );
|
||||
mMogoSocketManager = ( IMogoSocketManager ) ARouter.getInstance().build( MogoServicePaths.PATH_SOCKET_MANAGER ).navigation();
|
||||
mMogoSocketManager.init( getApplicationContext(), AppConstants.SOCKET_APP_ID );
|
||||
}
|
||||
|
||||
private void loadModules() {
|
||||
|
||||
@@ -24,6 +24,8 @@ public interface MogoModulesHandler extends IMogoMapListener,
|
||||
|
||||
void onMapLoadedCallback( Runnable callback );
|
||||
|
||||
void loadModules();
|
||||
|
||||
/**
|
||||
* 加载卡片
|
||||
*
|
||||
@@ -31,20 +33,6 @@ public interface MogoModulesHandler extends IMogoMapListener,
|
||||
*/
|
||||
List< IMogoModuleProvider > loadCardsModule();
|
||||
|
||||
/**
|
||||
* 加载小智语音
|
||||
*
|
||||
* @param containerId 容器id
|
||||
*/
|
||||
void loadAIAssist( int containerId );
|
||||
|
||||
/**
|
||||
* 加载天气
|
||||
*
|
||||
* @param containerId 容器id
|
||||
*/
|
||||
void loadWeather( int containerId );
|
||||
|
||||
/**
|
||||
* 加载地图
|
||||
*
|
||||
@@ -59,6 +47,13 @@ public interface MogoModulesHandler extends IMogoMapListener,
|
||||
*/
|
||||
void loadAppsList( int containerId );
|
||||
|
||||
/**
|
||||
* 加载头部信息
|
||||
*
|
||||
* @param containerId
|
||||
*/
|
||||
void loadExtensions( int containerId );
|
||||
|
||||
/**
|
||||
* 设置某一个module可用
|
||||
*
|
||||
@@ -66,11 +61,6 @@ public interface MogoModulesHandler extends IMogoMapListener,
|
||||
*/
|
||||
void setEnable( String module );
|
||||
|
||||
/**
|
||||
* 加载服务
|
||||
*/
|
||||
void loadService();
|
||||
|
||||
/**
|
||||
* 销毁
|
||||
*/
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.mogo.module.main.receiver.MogoReceiver;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.ModuleType;
|
||||
import com.mogo.utils.ResourcesHelper;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
@@ -49,11 +50,7 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
|
||||
private MainActivity mActivity;
|
||||
|
||||
private final Map< String, IMogoModuleProvider > mCardProviders = new HashMap<>();
|
||||
private IMogoModuleProvider mMapProvider;
|
||||
private IMogoModuleProvider mAppsListProvider;
|
||||
private IMogoModuleProvider mPushProvider;
|
||||
private IMogoModuleProvider mRefreshStrategyProvider;
|
||||
private Map< MogoModule, IMogoModuleProvider > mModuleProviders = new HashMap<>();
|
||||
|
||||
private String mEnableModuleName = null;
|
||||
private Runnable mMapLoadedCallback;
|
||||
@@ -76,6 +73,19 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
return mActivity.getApplicationContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadModules() {
|
||||
final List< MogoModule > modules = MogoModulePaths.getModules();
|
||||
if ( modules != null && !modules.isEmpty() ) {
|
||||
for ( MogoModule module : modules ) {
|
||||
IMogoModuleProvider provider = load( module.getPath() );
|
||||
if ( provider != null ) {
|
||||
mModuleProviders.put( module, provider );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapLoadedCallback( Runnable callback ) {
|
||||
mMapLoadedCallback = callback;
|
||||
@@ -83,42 +93,40 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
|
||||
@Override
|
||||
public List< IMogoModuleProvider > loadCardsModule() {
|
||||
final List< MogoModule > modules = MogoModulePaths.getModules();
|
||||
final ArrayList< IMogoModuleProvider > providers = new ArrayList<>();
|
||||
if ( modules != null && !modules.isEmpty() ) {
|
||||
for ( MogoModule module : modules ) {
|
||||
IMogoModuleProvider provider = load( module.getPath() );
|
||||
providers.add( provider );
|
||||
mCardProviders.put( provider.getModuleName(), provider );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
providers.add( value );
|
||||
}
|
||||
}
|
||||
return providers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAIAssist( int containerId ) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadWeather( int containerId ) {
|
||||
|
||||
}
|
||||
|
||||
private IMogoModuleProvider getModuleProvider( String tag ) {
|
||||
return mCardProviders.get( tag );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadMap( int containerId ) {
|
||||
mMapProvider = load( MogoModulePaths.PATH_MODULE_MAP );
|
||||
addFragment( mMapProvider, containerId );
|
||||
loadModuleByType( ModuleType.TYPE_MAP, containerId );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAppsList( int containerId ) {
|
||||
mAppsListProvider = load( MogoModulePaths.PATH_MODULE_APPS );
|
||||
addFragment( mAppsListProvider, containerId );
|
||||
loadModuleByType( ModuleType.TYPE_APP_LIST, containerId );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadExtensions( int containerId ) {
|
||||
loadModuleByType( ModuleType.TYPE_EXTENSION, containerId );
|
||||
}
|
||||
|
||||
private void loadModuleByType( int type, int containerId ) {
|
||||
if ( mModuleProviders.isEmpty() ) {
|
||||
return;
|
||||
}
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == type ) {
|
||||
addFragment( value, containerId );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private IMogoModuleProvider load( String path ) {
|
||||
@@ -140,23 +148,21 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadService() {
|
||||
mPushProvider = ( IMogoModuleProvider ) ARouter.getInstance().build( "/push/ui" ).navigation( mActivity.getApplicationContext() );
|
||||
mRefreshStrategyProvider = ( IMogoModuleProvider ) ARouter.getInstance().build( ServiceConst.PATH_REFRESH_STRATEGY ).navigation( mActivity.getApplicationContext() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnable( String module ) {
|
||||
mEnableModuleName = module;
|
||||
final Set< Map.Entry< String, IMogoModuleProvider > > entries = mCardProviders.entrySet();
|
||||
final Set< Map.Entry< MogoModule, IMogoModuleProvider > > entries = mModuleProviders.entrySet();
|
||||
if ( !entries.isEmpty() ) {
|
||||
for ( Map.Entry< String, IMogoModuleProvider > entry : entries ) {
|
||||
final String key = entry.getKey();
|
||||
for ( Map.Entry< MogoModule, IMogoModuleProvider > entry : entries ) {
|
||||
final MogoModule key = entry.getKey();
|
||||
final IMogoModuleProvider provider = entry.getValue();
|
||||
if ( provider.getType() != ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
// 仅卡片需要生命周期
|
||||
continue;
|
||||
}
|
||||
final IMogoModuleLifecycle lifecycle = provider.getCardLifecycle();
|
||||
if ( lifecycle != null ) {
|
||||
if ( TextUtils.equals( key, mEnableModuleName ) ) {
|
||||
if ( TextUtils.equals( key.getName(), mEnableModuleName ) ) {
|
||||
lifecycle.onPerform();
|
||||
} else {
|
||||
lifecycle.onDisable();
|
||||
@@ -169,208 +175,217 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
|
||||
@Override
|
||||
public void onMapLoaded() {
|
||||
|
||||
if ( mMapLoadedCallback != null ) {
|
||||
mMapLoadedCallback.run();
|
||||
mMapLoadedCallback = null;
|
||||
}
|
||||
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onMapLoaded();
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onMapLoaded();
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTouch( MotionEvent motionEvent ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onTouch( motionEvent );
|
||||
}
|
||||
}
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onTouch( motionEvent );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onTouch( motionEvent );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onTouch( motionEvent );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPOIClick( MogoPoi poi ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onPOIClick( poi );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onPOIClick( poi );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onPOIClick( poi );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onPOIClick( poi );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapClick( MogoLatLng latLng ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onMapClick( latLng );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onMapClick( latLng );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapClick( latLng );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapClick( latLng );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLockMap( boolean isLock ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onLockMap( isLock );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onLockMap( isLock );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onLockMap( isLock );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onLockMap( isLock );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapModeChanged( EnumMapUI ui ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getMapListener() != null ) {
|
||||
provider.getMapListener().onMapModeChanged( ui );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onMapModeChanged( ui );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapModeChanged( ui );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapModeChanged( ui );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapChanged( MogoLatLng location, float zoom, float tilt, float bearing ) {
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getMapListener() != null ) {
|
||||
mRefreshStrategyProvider.getMapListener().onMapChanged( location, zoom, tilt, bearing );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapChanged( location, zoom, tilt, bearing );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getMapListener() != null ) {
|
||||
value.getMapListener().onMapChanged( location, zoom, tilt, bearing );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitNaviFailure() {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getNaviListener() != null ) {
|
||||
provider.getNaviListener().onInitNaviFailure();
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getNaviListener() != null ) {
|
||||
mRefreshStrategyProvider.getNaviListener().onInitNaviFailure();
|
||||
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().onInitNaviFailure();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getNaviListener() != null ) {
|
||||
value.getNaviListener().onInitNaviFailure();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitNaviSuccess() {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getNaviListener() != null ) {
|
||||
provider.getNaviListener().onInitNaviSuccess();
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getNaviListener() != null ) {
|
||||
mRefreshStrategyProvider.getNaviListener().onInitNaviSuccess();
|
||||
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().onInitNaviSuccess();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getNaviListener() != null ) {
|
||||
value.getNaviListener().onInitNaviSuccess();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getNaviListener() != null ) {
|
||||
provider.getNaviListener().onNaviInfoUpdate( naviinfo );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getNaviListener() != null ) {
|
||||
mRefreshStrategyProvider.getNaviListener().onNaviInfoUpdate( naviinfo );
|
||||
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().onNaviInfoUpdate( naviinfo );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getNaviListener() != null ) {
|
||||
value.getNaviListener().onNaviInfoUpdate( naviinfo );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartNavi() {
|
||||
Logger.i( TAG, "导航已开始" );
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getNaviListener() != null ) {
|
||||
provider.getNaviListener().onStartNavi();
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getNaviListener() != null ) {
|
||||
mRefreshStrategyProvider.getNaviListener().onStartNavi();
|
||||
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().onStartNavi();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getNaviListener() != null ) {
|
||||
value.getNaviListener().onStartNavi();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopNavi() {
|
||||
Logger.i( TAG, "导航已停止" );
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getNaviListener() != null ) {
|
||||
provider.getNaviListener().onStopNavi();
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getNaviListener() != null ) {
|
||||
mRefreshStrategyProvider.getNaviListener().onStopNavi();
|
||||
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().onStopNavi();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getNaviListener() != null ) {
|
||||
value.getNaviListener().onStopNavi();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLocationChanged( MogoLocation location ) {
|
||||
if ( mEnableModuleName != null ) {
|
||||
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
|
||||
if ( provider != null && provider.getLocationListener() != null ) {
|
||||
provider.getLocationListener().onLocationChanged( location );
|
||||
}
|
||||
}
|
||||
|
||||
if ( mRefreshStrategyProvider != null ) {
|
||||
if ( mRefreshStrategyProvider.getLocationListener() != null ) {
|
||||
mRefreshStrategyProvider.getLocationListener().onLocationChanged( location );
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) {
|
||||
if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) {
|
||||
if ( value.getLocationListener() != null ) {
|
||||
value.getLocationListener().onLocationChanged( location );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( value.getLocationListener() != null ) {
|
||||
value.getLocationListener().onLocationChanged( location );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -381,7 +396,7 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
public void onReceive( Context context, Intent intent ) {
|
||||
final String action = intent.getAction();
|
||||
if ( TextUtils.equals( action, Intent.ACTION_POWER_CONNECTED ) ) {
|
||||
for ( IMogoModuleProvider value : mCardProviders.values() ) {
|
||||
for ( IMogoModuleProvider value : mModuleProviders.values() ) {
|
||||
if ( value.getCardLifecycle() != null ) {
|
||||
value.getCardLifecycle().accOn();
|
||||
}
|
||||
@@ -408,11 +423,10 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
}
|
||||
mReceiver = null;
|
||||
mActivity = null;
|
||||
if ( mCardProviders != null ) {
|
||||
mCardProviders.clear();
|
||||
if ( mModuleProviders != null ) {
|
||||
mModuleProviders.clear();
|
||||
}
|
||||
mMapProvider = null;
|
||||
mAppsListProvider = null;
|
||||
mModuleProviders = null;
|
||||
mMapLoadedCallback = null;
|
||||
mEnableModuleName = null;
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.module.main.R;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.ModuleType;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -80,7 +81,7 @@ public class PlaceholderFragmentProvider implements IMogoModuleProvider {
|
||||
|
||||
@Override
|
||||
public int getType() {
|
||||
return TYPE_FRAGMENT;
|
||||
return ModuleType.TYPE_CARD_FRAGMENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user