aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java')
-rw-r--r--main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java b/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java
index 03052f9..6f3749c 100644
--- a/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java
+++ b/main/src/cgeo/geocaching/connector/trackable/GeokretyConnector.java
@@ -15,17 +15,19 @@ public class GeokretyConnector extends AbstractTrackableConnector {
private static final Pattern PATTERN_GK_CODE = Pattern.compile("GK[0-9A-F]{4,}");
@Override
- public boolean canHandleTrackable(String geocode) {
+ public boolean canHandleTrackable(final String geocode) {
return geocode != null && PATTERN_GK_CODE.matcher(geocode).matches();
}
@Override
- public String getUrl(Trackable trackable) {
+ @NonNull
+ public String getUrl(@NonNull final Trackable trackable) {
return "http://geokrety.org/konkret.php?id=" + getId(trackable.getGeocode());
}
@Override
- public Trackable searchTrackable(String geocode, String guid, String id) {
+ @Nullable
+ public Trackable searchTrackable(final String geocode, final String guid, final String id) {
final String page = Network.getResponseData(Network.getRequest("http://geokrety.org/export2.php?gkid=" + getId(geocode)));
if (page == null) {
return null;
@@ -33,32 +35,35 @@ public class GeokretyConnector extends AbstractTrackableConnector {
return GeokretyParser.parse(page);
}
- protected static int getId(String geocode) {
+ protected static int getId(final String geocode) {
try {
final String hex = geocode.substring(2);
return Integer.parseInt(hex, 16);
} catch (final NumberFormatException e) {
- Log.e("Trackable.getUrl", e);
+ Log.e("Trackable.getId", e);
}
return -1;
}
@Override
public @Nullable
- String getTrackableCodeFromUrl(@NonNull String url) {
+ String getTrackableCodeFromUrl(@NonNull final String url) {
// http://geokrety.org/konkret.php?id=38545
String id = StringUtils.substringAfterLast(url, "konkret.php?id=");
if (StringUtils.isNumeric(id)) {
return geocode(Integer.parseInt(id));
}
+ // http://geokretymap.org/38545
+ id = StringUtils.substringAfterLast(url, "geokretymap.org/");
+ if (StringUtils.isNumeric(id)) {
+ return geocode(Integer.parseInt(id));
+ }
return null;
}
/**
* Get geocode from geokrety id
*
- * @param id
- * @return
*/
public static String geocode(final int id) {
return String.format("GK%04X", id);