package com.mogo.map; import android.content.Context; import android.graphics.Rect; import com.mogo.map.impl.amap.navi.NaviClient; 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 *
* 导航代理 */ 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 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 ); } } }