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

@@ -10,7 +10,7 @@
android:launchMode="singleInstance"
android:resizeableActivity="true"
android:resumeWhilePausing="true"
android:screenOrientation="nosensor"
android:screenOrientation="landscape"
android:stateNotNeeded="true"
android:taskAffinity=""
android:windowSoftInputMode="adjustPan">

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();
}
}
}

View File

@@ -6,6 +6,15 @@
<FrameLayout
android:id="@+id/module_main_id_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_width="300dp"
android:layout_height="match_parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/module_main_id_map_container"
android:layout_width="0dp"
android:layout_height="match_parent"
app:layout_constraintLeft_toRightOf="@+id/module_main_id_fragment_container"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -30,14 +30,14 @@ android {
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(":libraries:mogo-map")
implementation project(":libraries:mogo-map-api")
implementation project(":foudations:mogo-utils")
api project(":foudations:mogo-commons")
implementation project(':services:mogo-service-api')
api project(':services:mogo-service-api')
implementation project(':modules:mogo-module-common')
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout

View File

@@ -5,12 +5,10 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.map.IMogoMap;
import com.mogo.map.IUiSettings;
import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoMapView;
import com.mogo.module.common.MogoModulePaths;
/**
* @author congtaowang
@@ -83,16 +81,29 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements
private void initMapView() {
if ( mMogoMap != null ) {
IUiSettings settings = mMogoMap.getUiSettings();
if ( settings != null ) {
settings.setCompassEnabled( false );
settings.setLogoEnable( false );
settings.setMyLocationButtonEnabled( false );
settings.setRotateGesturesEnabled( false );
settings.setZoomControlsEnabled( false );
settings.setScaleControlsEnabled( false );
IMogoUiSettings uiSettings = mMogoMap.getUiSettings();
if ( uiSettings != null ) {
//设置所有手势是否可用
uiSettings.setAllGesturesEnabled( true );
//设置指南针是否可见。
uiSettings.setCompassEnabled( false );
//设置室内地图楼层切换控件是否可见。
uiSettings.setIndoorSwitchEnabled( true );
//设置定位按钮是否可见。
uiSettings.setMyLocationButtonEnabled( false );
//设置旋转手势是否可用。
uiSettings.setRotateGesturesEnabled( false );
//设置比例尺控件是否可见
uiSettings.setScaleControlsEnabled( false );
//设置拖拽手势是否可用。
uiSettings.setScrollGesturesEnabled( true );
//设置倾斜手势是否可用。
uiSettings.setTiltGesturesEnabled( false );
//设置缩放按钮是否可见。
uiSettings.setZoomControlsEnabled( false );
//设置双指缩放手势是否可用。
uiSettings.setZoomGesturesEnabled( true );
}
}
}
}

View File

@@ -9,6 +9,7 @@ import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
@@ -62,4 +63,9 @@ public class MapFragmentProvider implements IMogoModuleProvider {
public IMogoMapListener getMapListener() {
return null;
}
@Override
public IMogoNaviListener getNaviListener() {
return null;
}
}