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 wayPoints) { if (mDelegate != null) { mDelegate.naviTo(endPoint, wayPoints); } } @Override public void naviTo(MogoLatLng endPoint, List 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 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); } } @Override public void updateNaviConfig() { if (mDelegate != null) { mDelegate.updateNaviConfig(); } } }