package cgeo.geocaching.connector.oc; import cgeo.geocaching.R; import org.apache.commons.lang3.StringUtils; public final class OCDEConnector extends OCApiLiveConnector { /** * Alternate Opencaching domains which are managed by Opencaching.DE. */ private static final String[] MAPPED_DOMAINS = new String[] { "opencachingspain.es", "opencaching.it", "opencaching.fr" }; public OCDEConnector() { super("opencaching.de", "www.opencaching.de", true, "OC", "CC BY-NC-ND, alle Logeinträge © jeweiliger Autor", R.string.oc_de_okapi_consumer_key, R.string.oc_de_okapi_consumer_secret, R.string.pref_connectorOCActive, R.string.pref_ocde_tokenpublic, R.string.pref_ocde_tokensecret, ApiSupport.current, "OC.DE"); } @Override public String getGeocodeFromUrl(final String url) { for (final String mappedDomain : MAPPED_DOMAINS) { if (StringUtils.containsIgnoreCase(url, mappedDomain)) { // replace the country specific URL to not confuse the OKAPI interface final String deUrl = StringUtils.replaceIgnoreCase(url, mappedDomain, "opencaching.de"); final String geocodeFromId = getGeocodeFromCacheId(deUrl, getHost()); if (geocodeFromId != null) { return geocodeFromId; } } } return super.getGeocodeFromUrl(url); } }