add switch map logic
This commit is contained in:
@@ -24,7 +24,7 @@ public class MogoGeoSearch implements IMogoGeoSearch {
|
||||
private IMogoGeoSearch mDelegate;
|
||||
|
||||
public MogoGeoSearch( Context context ) {
|
||||
mDelegate = new GeocodeSearchClient( context );
|
||||
mDelegate = MogoMapDelegateFactory.getGeoSearchDelegate( context );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -18,7 +18,7 @@ public class MogoInputtipsSearch implements IMogoInputtipsSearch {
|
||||
private IMogoInputtipsSearch mDelegate;
|
||||
|
||||
public MogoInputtipsSearch( Context context, MogoInputtipsQuery query ) {
|
||||
mDelegate = new InputtipsSearch( context, query );
|
||||
mDelegate = MogoMapDelegateFactory.getInputtipsSearchDelegate( context, query );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,7 +17,7 @@ public class MogoLocationClient implements IMogoLocationClient {
|
||||
private static volatile MogoLocationClient sInstance;
|
||||
|
||||
public MogoLocationClient( Context context ) {
|
||||
mDelegate = new ALocationClient( context );
|
||||
mDelegate = MogoMapDelegateFactory.getLocationClientDelegate( context );
|
||||
}
|
||||
|
||||
public static MogoLocationClient getInstance( Context context ) {
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.mogo.map;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.commons.debug.DebugConfig;
|
||||
import com.mogo.map.impl.amap.AMapBaseMapView;
|
||||
import com.mogo.map.impl.amap.location.ALocationClient;
|
||||
import com.mogo.map.impl.amap.navi.NaviClient;
|
||||
import com.mogo.map.impl.amap.search.GeocodeSearchClient;
|
||||
import com.mogo.map.impl.amap.search.InputtipsSearch;
|
||||
import com.mogo.map.impl.amap.search.PoiSearchClient;
|
||||
import com.mogo.map.impl.amap.search.RoadSearchClient;
|
||||
import com.mogo.map.impl.amap.uicontroller.AMapUIController;
|
||||
import com.mogo.map.impl.automap.navi.AutoNaviClient;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.search.drive.IMogoRoadSearch;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearch;
|
||||
import com.mogo.map.search.inputtips.IMogoInputtipsSearch;
|
||||
import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
|
||||
import com.mogo.map.search.poisearch.IMogoPoiSearch;
|
||||
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.utils.AppUtils;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/6/17
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
class MogoMapDelegateFactory {
|
||||
|
||||
private static final String TAG = "MogoMapDelegateFactory";
|
||||
|
||||
public static IMogoGeoSearch getGeoSearchDelegate( Context context ) {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoGeoSearch" );
|
||||
return new com.mogo.map.impl.custom.search.GeocodeSearchClient( context );
|
||||
}
|
||||
return new GeocodeSearchClient( context );
|
||||
}
|
||||
|
||||
public static IMogoInputtipsSearch getInputtipsSearchDelegate( Context context, MogoInputtipsQuery query ) {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoInputtipsSearch" );
|
||||
return new com.mogo.map.impl.custom.search.InputtipsSearch( context, query );
|
||||
}
|
||||
return new InputtipsSearch( context, query );
|
||||
}
|
||||
|
||||
public static IMogoLocationClient getLocationClientDelegate( Context context ) {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoLocationClient" );
|
||||
return new com.mogo.map.impl.custom.location.ALocationClient( context );
|
||||
}
|
||||
return new ALocationClient( context );
|
||||
}
|
||||
|
||||
public static IMogoMapUIController getMapUIControllerDelegate() {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoMapUIController" );
|
||||
return com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance();
|
||||
}
|
||||
return AMapUIController.getInstance();
|
||||
}
|
||||
|
||||
public static IMogoMapViewCreator getMapViewCreatorDelegate() {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoMapViewCreator" );
|
||||
return new com.mogo.map.impl.custom.AMapBaseMapView();
|
||||
}
|
||||
return new AMapBaseMapView();
|
||||
}
|
||||
|
||||
public static IMogoNavi getNaviDelegate( Context context ) {
|
||||
if ( AppUtils.isAppInstalled( context, "com.autonavi.amapauto" ) ) {
|
||||
return AutoNaviClient.getInstance( context );
|
||||
} else {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoNavi" );
|
||||
return com.mogo.map.impl.custom.navi.NaviClient.getInstance( context );
|
||||
}
|
||||
return NaviClient.getInstance( context );
|
||||
}
|
||||
}
|
||||
|
||||
public static IMogoPoiSearch getPoiSearchClientDelegate( Context context, MogoPoiSearchQuery query ) {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoPoiSearch" );
|
||||
return new com.mogo.map.impl.custom.search.PoiSearchClient( context, query );
|
||||
}
|
||||
return new PoiSearchClient( context, query );
|
||||
}
|
||||
|
||||
public static IMogoRoadSearch getRoadSearchDelegate() {
|
||||
if ( DebugConfig.isUseCustomMap() ) {
|
||||
Logger.d( TAG, "use custom IMogoRoadSearch" );
|
||||
return new com.mogo.map.impl.custom.search.RoadSearchClient();
|
||||
}
|
||||
return new RoadSearchClient();
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@ public class MogoMapUIController implements IMogoMapUIController {
|
||||
private static volatile MogoMapUIController sInstance;
|
||||
|
||||
private MogoMapUIController() {
|
||||
mDelegate = AMapUIController.getInstance();
|
||||
mDelegate = MogoMapDelegateFactory.getMapUIControllerDelegate();
|
||||
}
|
||||
|
||||
public static MogoMapUIController getInstance() {
|
||||
|
||||
@@ -15,7 +15,7 @@ import com.mogo.utils.logger.Logger;
|
||||
* <p>
|
||||
* 地图实例
|
||||
*/
|
||||
public class MogoMapView extends AMapBaseMapView implements ILifeCycle {
|
||||
public class MogoMapView extends MogoBaseMapView implements ILifeCycle {
|
||||
|
||||
private static final String TAG = "MogoMapView";
|
||||
public MogoMapView( Context context ) {
|
||||
@@ -30,6 +30,11 @@ public class MogoMapView extends AMapBaseMapView implements ILifeCycle {
|
||||
super( context, attrs, defStyleAttr );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IMogoMapView createMapView( Context context ) {
|
||||
return MogoMapDelegateFactory.getMapViewCreatorDelegate().create( context );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMap getMap() {
|
||||
return super.getMap();
|
||||
|
||||
@@ -30,11 +30,7 @@ public class MogoNavi implements IMogoNavi {
|
||||
private static volatile MogoNavi sInstance;
|
||||
|
||||
private MogoNavi( Context context ) {
|
||||
if ( AppUtils.isAppInstalled( context, "com.autonavi.amapauto" ) ) {
|
||||
mDelegate = AutoNaviClient.getInstance( context );
|
||||
} else {
|
||||
mDelegate = NaviClient.getInstance( context );
|
||||
}
|
||||
mDelegate = MogoMapDelegateFactory.getNaviDelegate( context );
|
||||
}
|
||||
|
||||
public static MogoNavi getInstance( Context context ) {
|
||||
|
||||
@@ -22,7 +22,7 @@ public class MogoPoiSearch implements IMogoPoiSearch {
|
||||
private IMogoPoiSearch mDelegate;
|
||||
|
||||
public MogoPoiSearch( Context context, MogoPoiSearchQuery query ) {
|
||||
mDelegate = new PoiSearchClient( context, query );
|
||||
mDelegate = MogoMapDelegateFactory.getPoiSearchClientDelegate( context, query );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.mogo.map;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.map.impl.amap.search.RoadSearchClient;
|
||||
import com.mogo.map.search.drive.IMogoRoadSearch;
|
||||
import com.mogo.map.search.drive.IMogoRoadSearchListener;
|
||||
import com.mogo.map.search.drive.MogoRoadSearchQuery;
|
||||
@@ -15,10 +14,10 @@ import com.mogo.map.search.drive.MogoRoadSearchQuery;
|
||||
*/
|
||||
public class MogoRoadSearch implements IMogoRoadSearch {
|
||||
|
||||
private RoadSearchClient mDelegate;
|
||||
private IMogoRoadSearch mDelegate;
|
||||
|
||||
public MogoRoadSearch() {
|
||||
mDelegate = new RoadSearchClient();
|
||||
mDelegate = MogoMapDelegateFactory.getRoadSearchDelegate();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user