This commit is contained in:
wangcongtao
2019-12-31 10:37:41 +08:00
parent e5d17bb305
commit 05bd793763
28 changed files with 592 additions and 175 deletions

View File

@@ -12,31 +12,21 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.map.MogoLatLng;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationClient;
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.map.marker.IMogoMarkerManager;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.model.MogoPoi;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.search.geo.MogoPoiItem;
import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.IMogoPoiSearchListener;
import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.imageloader.IMogoImageloader;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
@@ -51,7 +41,6 @@ import java.util.Random;
* <p>
* 描述:demo测试各种接口
*/
public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView > >
implements IView,
IMogoMarkerClickListener,
@@ -74,17 +63,10 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
private IMogoMarker mLastClickedMarker;
private IMogoMapService mMapService;
private IMogoPoiSearch mPoiSearch;
private IMogoLocationClient mLocationClient;
private IMogoMarkerManager mMarkerManager;
private IMogoNavi mNavi;
private IMogoMapUIController mMapUIController;
private Demo2InfoWindowAdapter mDemoInfoWindowAdapter;
private MogoLocation mLocation;
private IMogoImageloader mImageloader;
private int position = -1;
@Override
protected int getLayoutId() {
@@ -94,17 +76,12 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
protected void initViews() {
position = getArguments().getInt( "position" );
mNaviMode = findViewById( R.id.demo_module_id_navi_mode );
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
mImageloader = ( IMogoImageloader ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_IMAGE_LOADER ).navigation( getContext() );
mPoiSearch = mMapService.getPoiSearch( getContext(), new MogoPoiSearchQuery() );
mPoiSearch.setPoiSearchListener( this );
mLocationClient = mMapService.getLocationClient( getContext() );
mLocation = mLocationClient.getLastKnowLocation();
mMarkerManager = mMapService.getMarkerManager( getContext() );
mNavi = mMapService.getNavi( getContext() );
mMapUIController = mMapService.getMapUIController();
Service2Handler.getPoiSearch().setPoiSearchListener( this );
mLocation = Service2Handler.getLocationClient().getLastKnowLocation();
m2D3D = findViewById( R.id.demo_module_id_2d3d );
@@ -114,12 +91,12 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
new View.OnClickListener() {
@Override
public void onClick( View v ) {
mLocationClient.start( 4_000L );
Service2Handler.getLocationClient().start( 4_000L );
}
}
);
mDemoInfoWindowAdapter = new Demo2InfoWindowAdapter( getContext(), mNavi, mImageloader );
mDemoInfoWindowAdapter = new Demo2InfoWindowAdapter( getContext(), Service2Handler.getNavi(), Service2Handler.getImageloader() );
mMarkerIcon = BitmapFactory.decodeResource( getResources(), R.drawable.ic_search_poi_location );
mClickedMarkerIcon = BitmapFactory.decodeResource( getResources(), R.drawable.ic_search_choice_point );
@@ -132,7 +109,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
.latitude( 39.974525d )
.owner( Demo2Constants.TAG )
.longitude( 116.41733d );
IMogoMarker marker = mMarkerManager.addMarker( Demo2Constants.TAG, options );
IMogoMarker marker = Service2Handler.getMarkerManager().addMarker( Demo2Constants.TAG, options );
marker.setInfoWindowAdapter( mDemoInfoWindowAdapter );
marker.setOnMarkerClickListener( Demo2CardViewFragment.this );
}
@@ -155,7 +132,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
}
optionsList.add( options );
}
List< IMogoMarker > iMogoMarkers = mMarkerManager.addMarkers( Demo2Constants.TAG, optionsList, true );
List< IMogoMarker > iMogoMarkers = Service2Handler.getMarkerManager().addMarkers( Demo2Constants.TAG, optionsList, true );
for ( IMogoMarker iMogoMarker : iMogoMarkers ) {
iMogoMarker.setInfoWindowAdapter( mDemoInfoWindowAdapter );
iMogoMarker.setOnMarkerClickListener( Demo2CardViewFragment.this );
@@ -166,7 +143,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
findViewById( R.id.demo_module_id_clear ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
mMarkerManager.removeMarkers( Demo2Constants.TAG );
Service2Handler.getMarkerManager().removeMarkers( Demo2Constants.TAG );
}
} );
@@ -176,7 +153,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.changeMapMode( ui = ui.next() );
Service2Handler.getMapUIController().changeMapMode( ui = ui.next() );
m2D3D.setText( ui.toString() );
}
} );
@@ -184,21 +161,21 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
findViewById( R.id.demo_module_id_current ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
mMapUIController.moveToCenter( new MogoLatLng( mLocation.getLatitude(), mLocation.getLongitude() ) );
Service2Handler.getMapUIController().moveToCenter( new MogoLatLng( mLocation.getLatitude(), mLocation.getLongitude() ) );
}
} );
findViewById( R.id.demo_module_id_start_navi ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
mNavi.startNavi( !mNaviMode.isChecked() );
Service2Handler.getNavi().startNavi( !mNaviMode.isChecked() );
}
} );
findViewById( R.id.demo_module_id_stop_navi ).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
mNavi.stopNavi();
Service2Handler.getNavi().stopNavi();
}
} );
@@ -208,7 +185,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.setTrafficEnabled( enable = !enable );
Service2Handler.getMapUIController().setTrafficEnabled( enable = !enable );
}
} );
@@ -216,7 +193,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.changeZoom( true );
Service2Handler.getMapUIController().changeZoom( true );
}
} );
@@ -224,7 +201,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.changeZoom( false );
Service2Handler.getMapUIController().changeZoom( false );
}
} );
@@ -232,7 +209,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.changeMapMode( EnumMapUI.Type_Light );
Service2Handler.getMapUIController().changeMapMode( EnumMapUI.Type_Light );
}
} );
@@ -240,7 +217,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.changeMapMode( EnumMapUI.Type_Night );
Service2Handler.getMapUIController().changeMapMode( EnumMapUI.Type_Night );
}
} );
@@ -248,7 +225,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.displayOverview();
Service2Handler.getMapUIController().displayOverview();
}
} );
@@ -256,11 +233,11 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onClick( View v ) {
mMapUIController.recoverLockMode();
Service2Handler.getMapUIController().recoverLockMode();
}
} );
mLocationClient.addLocationListener( new IMogoLocationListener() {
Service2Handler.getLocationClient().addLocationListener( new IMogoLocationListener() {
@Override
public void onLocationChanged( MogoLocation location ) {
mLocation = location;
@@ -320,7 +297,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
if ( poi != null ) {
TipToast.shortTip( poi.getName() );
}
mPoiSearch.searchPOIIdAsyn( poi.getPoiId() );
Service2Handler.getPoiSearch().searchPOIIdAsyn( poi.getPoiId() );
}
@Override
@@ -338,7 +315,7 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
if ( mPoiMarker != null ) {
mPoiMarker.destroy();
}
mPoiMarker = mMarkerManager.addMarker( Demo2Constants.TAG, new MogoMarkerOptions()
mPoiMarker = Service2Handler.getMarkerManager().addMarker( Demo2Constants.TAG, new MogoMarkerOptions()
.longitude( item.getPoint().lng )
.latitude( item.getPoint().lat )
.icon( mMarkerIcon ) );
@@ -379,19 +356,13 @@ public class Demo2CardViewFragment extends MvpFragment< IView, Presenter< IView
@Override
public void onDestroyView() {
Logger.w( TAG, "onDestroyView" );
Logger.w( TAG, "onDestroyView position=" + position );
super.onDestroyView();
getViewLifecycleOwner().getLifecycle().removeObserver( mPresenter );
mLocationClient.removeLocationListener( this );
Service2Handler.getLocationClient().removeLocationListener( this );
if ( mLastClickedMarker != null ) {
mLastClickedMarker.destroy();
mLastClickedMarker = null;
}
if ( mPoiSearch != null ) {
mPoiSearch.destroy();
}
mMapService = null;
mPoiSearch = null;
mLocationClient = null;
}
}

View File

@@ -10,7 +10,6 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.utils.logger.Logger;
@@ -21,7 +20,7 @@ import com.mogo.utils.logger.Logger;
* <p>
* 描述
*/
@Route( path = MogoModulePaths.PATH_MODULE_DEMO2 )
@Route( path = Demo2Constants.TAG )
public class Demo2CardViewProvider implements IMogoModuleProvider {
private static final String TAG = "Demo2CardViewProvider";
@@ -38,7 +37,7 @@ public class Demo2CardViewProvider implements IMogoModuleProvider {
@Override
public void init( Context context ) {
Service2Handler.init( context );
}
@Override

View File

@@ -1,7 +1,5 @@
package com.mogo.demo.module.map2;
import com.mogo.module.common.MogoModulePaths;
/**
* @author congtaowang
* @since 2019-12-24
@@ -10,5 +8,5 @@ import com.mogo.module.common.MogoModulePaths;
*/
public class Demo2Constants {
public static final String TAG = MogoModulePaths.PATH_MODULE_DEMO2;
public static final String TAG = "/demo2/ui";
}

View File

@@ -0,0 +1,72 @@
package com.mogo.demo.module.map2;
import android.content.Context;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.imageloader.IMogoImageloader;
import com.mogo.service.map.IMogoMapService;
/**
* @author congtaowang
* @since 2019-12-30
* <p>
* 持有服务接口实例
*/
public class Service2Handler {
private static IMogoMapService mMapService;
private static IMogoPoiSearch mPoiSearch;
private static IMogoLocationClient mLocationClient;
private static IMogoMarkerManager mMarkerManager;
private static IMogoNavi mNavi;
private static IMogoMapUIController mMapUIController;
private static IMogoImageloader mImageloader;
public static void init( Context context ) {
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( context );
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( context );
mImageloader = ( IMogoImageloader ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_IMAGE_LOADER ).navigation( context );
mPoiSearch = mMapService.getPoiSearch( context, new MogoPoiSearchQuery() );
mLocationClient = mMapService.getLocationClient( context );
mMarkerManager = mMapService.getMarkerManager( context );
mNavi = mMapService.getNavi( context );
mMapUIController = mMapService.getMapUIController();
}
public static IMogoMapService getMapService() {
return mMapService;
}
public static IMogoPoiSearch getPoiSearch() {
return mPoiSearch;
}
public static IMogoLocationClient getLocationClient() {
return mLocationClient;
}
public static IMogoMarkerManager getMarkerManager() {
return mMarkerManager;
}
public static IMogoNavi getNavi() {
return mNavi;
}
public static IMogoMapUIController getMapUIController() {
return mMapUIController;
}
public static IMogoImageloader getImageloader() {
return mImageloader;
}
}