diff options
3 files changed, 25 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/connector/oc/OC11XMLParser.java b/main/src/cgeo/geocaching/connector/oc/OC11XMLParser.java index 9739beb..6d2de02 100644 --- a/main/src/cgeo/geocaching/connector/oc/OC11XMLParser.java +++ b/main/src/cgeo/geocaching/connector/oc/OC11XMLParser.java @@ -394,7 +394,7 @@ public class OC11XMLParser { } }); - // cache.terrain + // cache.datehidden cacheNode.getChild("datehidden").setEndTextElementListener(new EndTextElementListener() { @Override @@ -404,11 +404,13 @@ public class OC11XMLParser { } }); + // cache.userid cacheNode.getChild("userid").setEndTextElementListener(new EndTextElementListener() { @Override public void end(String body) { cacheHolder.cache.setOwnerDisplayName(body); + cacheHolder.cache.setOwnerUserId(body); } }); diff --git a/main/src/cgeo/geocaching/connector/oc/OCXMLApiConnector.java b/main/src/cgeo/geocaching/connector/oc/OCXMLApiConnector.java index 69707b9..d361a7e 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCXMLApiConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCXMLApiConnector.java @@ -1,6 +1,7 @@ package cgeo.geocaching.connector.oc; import cgeo.geocaching.Geocache; +import cgeo.geocaching.ICache; import cgeo.geocaching.SearchResult; import cgeo.geocaching.Settings; import cgeo.geocaching.connector.capability.ISearchByCenter; @@ -10,6 +11,8 @@ import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.geopoint.Viewport; import cgeo.geocaching.utils.CancellableHandler; +import org.apache.commons.lang3.StringUtils; + public class OCXMLApiConnector extends OCConnector implements ISearchByGeocode, ISearchByCenter, ISearchByViewPort { private final static double SEARCH_DISTANCE_LIMIT = 15.0; @@ -49,4 +52,9 @@ public class OCXMLApiConnector extends OCConnector implements ISearchByGeocode, return Settings.isOCConnectorActive(); } + @Override + public boolean isOwner(ICache cache) { + return StringUtils.equalsIgnoreCase(cache.getOwnerUserId(), Settings.getOCConnectorUserName()); + } + } diff --git a/tests/src/cgeo/geocaching/connector/opencaching/OCXMLTest.java b/tests/src/cgeo/geocaching/connector/opencaching/OCXMLTest.java index 7cfd261..0957a0d 100644 --- a/tests/src/cgeo/geocaching/connector/opencaching/OCXMLTest.java +++ b/tests/src/cgeo/geocaching/connector/opencaching/OCXMLTest.java @@ -34,4 +34,18 @@ public class OCXMLTest extends CGeoTestCase { Settings.setOCConnectorUserName(oldOCName); } } + + public static void testOCOwner() { + String oldOCName = Settings.getOCConnectorUserName(); + try { + Settings.setOCConnectorUserName("andi12.2"); + String geoCode = "OCC9BE"; + Geocache cache = OCXMLClient.getCache(geoCode); + assertNotNull(cache); + + assertTrue(cache.isOwner()); + } finally { + Settings.setOCConnectorUserName(oldOCName); + } + } } |
