package cgeo.geocaching.apps.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.apps.AbstractLocusApp;
import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.models.Waypoint;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import java.util.Collections;
class LocusApp extends AbstractLocusApp implements CacheNavigationApp, WaypointNavigationApp {
private static final String INTENT = Intent.ACTION_VIEW;
protected LocusApp() {
super(getString(R.string.caches_map_locus), INTENT);
}
@Override
public boolean isEnabled(@NonNull final Waypoint waypoint) {
return waypoint.getCoords() != null;
}
@Override
public boolean isEnabled(@NonNull final Geocache cache) {
return cache.getCoords() != null;
}
/**
* Show a single cache with waypoints or a single waypoint in Locus.
* This method constructs a list of cache and waypoints only.
*
*/
@Override
public void navigate(@NonNull final Context context, @NonNull final Waypoint waypoint) {
showInLocus(Collections.singletonList(waypoint), true, false, context);
}
@Override
public void navigate(@NonNull final Context context, @NonNull final Geocache cache) {
showInLocus(Collections.singletonList(cache), true, false, context);
}
}