aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgTrackable.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/cgTrackable.java')
-rw-r--r--main/src/cgeo/geocaching/cgTrackable.java27
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;
+ }
}