Files
MoGoEagleEye/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java
wangcongtao df1e308684 opt
2020-04-15 16:25:25 +08:00

227 lines
5.5 KiB
Java

package com.mogo.map;
import android.content.Context;
import android.graphics.Rect;
import android.location.Location;
import com.mogo.map.impl.amap.navi.NaviClient;
import com.mogo.map.navi.IMogoCarLocationChangedListener;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.navi.MogoCalculatePath;
import com.mogo.map.navi.MogoNaviConfig;
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
import java.util.List;
/**
* @author congtaowang
* @since 2019-12-25
* <p>
* 导航代理
*/
public class MogoNavi implements IMogoNavi {
private IMogoNavi mDelegate;
private static volatile MogoNavi sInstance;
private MogoNavi(Context context) {
mDelegate = NaviClient.getInstance(context);
}
public static MogoNavi getInstance(Context context) {
if (sInstance == null) {
synchronized (MogoNavi.class) {
if (sInstance == null) {
sInstance = new MogoNavi(context);
}
}
}
return sInstance;
}
public synchronized void release() {
sInstance = null;
}
@Override
public void naviTo(MogoLatLng endPoint) {
if (mDelegate != null) {
mDelegate.naviTo(endPoint);
}
}
@Override
public void naviTo(MogoLatLng endPoint, MogoNaviConfig config) {
if (mDelegate != null) {
mDelegate.naviTo(endPoint, config);
}
}
@Override
public void naviTo(MogoLatLng endPoint, List<MogoLatLng> wayPoints) {
if (mDelegate != null) {
mDelegate.naviTo(endPoint, wayPoints);
}
}
@Override
public void naviTo(MogoLatLng endPoint, List<MogoLatLng> wayPoints, MogoNaviConfig config) {
if (mDelegate != null) {
mDelegate.naviTo(endPoint, wayPoints, config);
}
}
@Override
public void reCalculateRoute(MogoNaviConfig config) {
if (mDelegate != null) {
mDelegate.reCalculateRoute(config);
}
}
@Override
public void stopNavi() {
if (mDelegate != null) {
mDelegate.stopNavi();
}
}
@Override
public void startNavi(boolean isRealNavi) {
if (mDelegate != null) {
mDelegate.startNavi(isRealNavi);
}
}
@Override
public boolean isNaviing() {
if (mDelegate != null) {
return mDelegate.isNaviing();
}
return false;
}
@Override
public List<MogoCalculatePath> getCalculatedStrategies() {
if (mDelegate != null) {
return mDelegate.getCalculatedStrategies();
}
return null;
}
@Override public List<MogoLatLng> getCalculatedPathPos() {
if (mDelegate != null) {
return mDelegate.getCalculatedPathPos();
}
return null;
}
@Override
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
if (mDelegate != null) {
return mDelegate.getItemClickInteraction();
}
return null;
}
@Override
public void setLineClickInteraction(OnCalculatePathItemClickInteraction itemClickInteraction) {
if (mDelegate != null) {
mDelegate.setLineClickInteraction(itemClickInteraction);
}
}
@Override
public void clearCalculatePaths() {
if (mDelegate != null) {
mDelegate.clearCalculatePaths();
}
}
@Override
public void setCalculatePathDisplayBounds(Rect bounds) {
if (mDelegate != null) {
mDelegate.setCalculatePathDisplayBounds(bounds);
}
}
@Override public MogoNaviConfig getNaviConfig() {
if (mDelegate != null) {
return mDelegate.getNaviConfig();
}
return null;
}
@Override public boolean setBroadcastMode(int mode) {
if (mDelegate != null) {
return mDelegate.setBroadcastMode(mode);
}
return false;
}
@Override
public List< MogoLatLng > getNaviPathCoordinates() {
if ( mDelegate != null ) {
return mDelegate.getNaviPathCoordinates();
}
return null;
}
@Override
public MogoLatLng getCarLocation() {
if ( mDelegate != null ) {
return mDelegate.getCarLocation();
}
return null;
}
@Override
public void registerCarLocationChangedListener( IMogoCarLocationChangedListener listener ) {
if ( mDelegate != null ) {
mDelegate.registerCarLocationChangedListener( listener );
}
}
@Override
public void startAimlessMode() {
if ( mDelegate != null ) {
mDelegate.startAimlessMode();
}
}
@Override
public void stopAimlessMode() {
if ( mDelegate != null ) {
mDelegate.stopAimlessMode();
}
}
@Override
public void setAimlessModeStatus( boolean open ) {
if ( mDelegate != null ) {
mDelegate.setAimlessModeStatus( open );
}
}
@Override
public void displayOverview( Rect bounds ) {
if ( mDelegate != null ) {
mDelegate.displayOverview(bounds);
}
}
@Override
public void setUseExtraGPSData( boolean use ) {
if ( mDelegate != null ) {
mDelegate.setUseExtraGPSData( use );
}
}
@Override
public void setExtraGPSData( double lon, double lat, float speed, float accuracy, float bearing, long timestamp ) {
if ( mDelegate != null ) {
mDelegate.setExtraGPSData( lon, lat, speed, accuracy, bearing, timestamp );
}
}
}