This commit is contained in:
wangcongtao
2019-12-27 19:56:30 +08:00
parent 522c5e2dbf
commit ae9ddcb369
308 changed files with 6608 additions and 607 deletions

View File

@@ -1,14 +1,10 @@
package com.mogo.module.main;
import android.view.MotionEvent;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.MvpActivity;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.model.MogoPoi;
import com.mogo.module.main.cards.MogoModulesHandler;
import com.mogo.module.main.cards.MogoModulesManager;
import com.mogo.service.MogoServicePaths;
@@ -25,8 +21,8 @@ import java.util.Collection;
*/
public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView {
IMogoMapService ims;
MogoModulesHandler handler;
IMogoMapService mMogoMapService;
MogoModulesHandler mMogoModuleHandler;
@Override
protected int getLayoutId() {
@@ -36,14 +32,15 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
@Override
protected void initViews() {
handler = new MogoModulesManager( this );
ims = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation();
if ( ims != null ) {
ims.registerHostMapListener( handler );
mMogoModuleHandler = new MogoModulesManager( this );
mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation();
if ( mMogoMapService != null ) {
mMogoMapService.registerHostMapListener( mMogoModuleHandler );
mMogoMapService.registerHostNaviListener( mMogoModuleHandler );
}
handler.loadMap( R.id.module_main_id_fragment_container );
mMogoModuleHandler.loadMap( R.id.module_main_id_map_container );
Collection< IMogoModuleProvider > providers = handler.loadCards();
Collection< IMogoModuleProvider > providers = mMogoModuleHandler.loadCards();
for ( IMogoModuleProvider provider : providers ) {
if ( provider == null ) {
continue;
@@ -57,7 +54,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
}
}
}
handler.setEnable( providers.iterator().next().getModuleName() );
mMogoModuleHandler.setEnable( providers.iterator().next().getModuleName() );
}
@NonNull

View File

@@ -1,6 +1,7 @@
package com.mogo.module.main.cards;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.service.module.IMogoModuleProvider;
import java.util.Collection;
@@ -11,7 +12,7 @@ import java.util.Collection;
* <p>
* 卡片管理
*/
public interface MogoModulesHandler extends IMogoMapListener {
public interface MogoModulesHandler extends IMogoMapListener, IMogoNaviListener {
/**
* 加载卡片

View File

@@ -7,8 +7,12 @@ import android.view.MotionEvent;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.main.MainActivity;
import com.mogo.service.module.IMogoModuleProvider;
@@ -26,7 +30,8 @@ import java.util.Set;
* <p>
* 卡片加载
*/
public class MogoModulesManager implements MogoModulesHandler, IMogoMapListener {
public class MogoModulesManager implements MogoModulesHandler,
IMogoMapListener, IMogoNaviListener {
private static final String TAG = "MogoModulesManager";
@@ -67,6 +72,10 @@ public class MogoModulesManager implements MogoModulesHandler, IMogoMapListener
}
private IMogoModuleProvider getModuleProvider( String tag ) {
return mCardProviders.get( tag );
}
@Override
public void loadMap( int containerId ) {
mMapProvider = load( MogoModulePaths.PATH_MODULE_MAP );
@@ -112,8 +121,9 @@ public class MogoModulesManager implements MogoModulesHandler, IMogoMapListener
@Override
public void onMapLoaded() {
if ( mEnableModuleName != null ) {
if ( mCardProviders.get( mEnableModuleName ) != null ) {
mCardProviders.get( mEnableModuleName ).getMapListener().onMapLoaded();
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onMapLoaded();
}
}
}
@@ -121,8 +131,9 @@ public class MogoModulesManager implements MogoModulesHandler, IMogoMapListener
@Override
public void onTouch( MotionEvent motionEvent ) {
if ( mEnableModuleName != null ) {
if ( mCardProviders.get( mEnableModuleName ) != null ) {
mCardProviders.get( mEnableModuleName ).getMapListener().onTouch( motionEvent );
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onTouch( motionEvent );
}
}
}
@@ -130,8 +141,91 @@ public class MogoModulesManager implements MogoModulesHandler, IMogoMapListener
@Override
public void onPOIClick( MogoPoi poi ) {
if ( mEnableModuleName != null ) {
if ( mCardProviders.get( mEnableModuleName ) != null ) {
mCardProviders.get( mEnableModuleName ).getMapListener().onPOIClick( poi );
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onPOIClick( poi );
}
}
}
@Override
public void onMapClick( MogoLatLng latLng ) {
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onMapClick( latLng );
}
}
}
@Override
public void onLockMap( boolean isLock ) {
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onLockMap( isLock );
}
}
}
@Override
public void onMapModeChanged( EnumMapUI ui ) {
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null ) {
provider.getMapListener().onMapModeChanged( ui );
}
}
}
@Override
public void onInitNaviFailure() {
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null && provider.getNaviListener() != null ) {
provider.getNaviListener().onInitNaviFailure();
}
}
}
@Override
public void onInitNaviSuccess() {
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null && provider.getNaviListener() != null ) {
provider.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 );
}
}
}
@Override
public void onStartNavi() {
Logger.i( TAG, "导航已开始" );
if ( mEnableModuleName != null ) {
IMogoModuleProvider provider = getModuleProvider( mEnableModuleName );
if ( provider != null && provider.getNaviListener() != null ) {
provider.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();
}
}
}