diff options
Diffstat (limited to 'main/src/cgeo/geocaching/cgTrackable.java')
| -rw-r--r-- | main/src/cgeo/geocaching/cgTrackable.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/cgTrackable.java b/main/src/cgeo/geocaching/cgTrackable.java index bcf3c83..b8c8958 100644 --- a/main/src/cgeo/geocaching/cgTrackable.java +++ b/main/src/cgeo/geocaching/cgTrackable.java @@ -1,6 +1,9 @@ package cgeo.geocaching; +import org.apache.commons.lang3.StringUtils; + import android.text.Html; +import android.util.Log; import java.util.ArrayList; import java.util.Date; @@ -33,6 +36,16 @@ public class cgTrackable implements ILogable { private List<cgLog> logs = new ArrayList<cgLog>(); public String getUrl() { + if (StringUtils.startsWithIgnoreCase(geocode, "GK")) { + String hex = geocode.substring(3); + try { + int id = Integer.parseInt(hex, 16); + return "http://geokrety.org/konkret.php?id=" + id; + } catch (NumberFormatException e) { + Log.e(Settings.tag, "cgTrackable.getUrl", e); + return null; + } + } return "http://coord.info/" + geocode.toUpperCase(); } @@ -85,7 +98,12 @@ public class cgTrackable implements ILogable { } public void setReleased(Date released) { - this.released = released; + if (released == null) { + this.released = null; + } + else { + this.released = new Date(released.getTime()); // avoid storing external reference in this object + } } public Float getDistance() { @@ -188,4 +206,11 @@ public class cgTrackable implements ILogable { return "???"; } + + public boolean isLoggable() { + if (StringUtils.startsWithIgnoreCase(geocode, "GK")) { + return false; + } + return true; + } } |
