package cgeo.geocaching.apps.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.enumerations.WaypointType;
import cgeo.geocaching.location.Geopoint;
import cgeo.geocaching.maps.DefaultMap;
import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.models.Waypoint;
import cgeo.geocaching.settings.Settings;
import android.content.Context;
import android.support.annotation.NonNull;
class InternalMap extends AbstractPointNavigationApp {
private final Class<?> cls;
InternalMap(final Class<?> cls, final int name) {
super(getString(name), null);
this.cls = cls;
}
InternalMap() {
super(getString(R.string.cache_menu_map), null);
cls = null;
}
@Override
public boolean isInstalled() {
return true;
}
@Override
public void navigate(@NonNull final Context context, @NonNull final Geopoint coords) {
DefaultMap.startActivityCoords(context, cls != null ? cls : Settings.getMapProvider().getMapClass(), coords, WaypointType.WAYPOINT, null);
}
@Override
public void navigate(@NonNull final Context context, @NonNull final Waypoint waypoint) {
DefaultMap.startActivityCoords(context, cls != null ? cls : Settings.getMapProvider().getMapClass(), waypoint.getCoords(), waypoint.getWaypointType(), waypoint.getName());
}
@Override
public void navigate(@NonNull final Context context, @NonNull final Geocache cache) {
DefaultMap.startActivityGeoCode(context, cls != null ? cls : Settings.getMapProvider().getMapClass(), cache.getGeocode());
}
}