From a7de49db675048db5ae0c05ccd730a8579e6876e Mon Sep 17 00:00:00 2001 From: rsudev Date: Tue, 28 May 2013 22:52:40 +0200 Subject: Fixed issue with not loggable OC-caches --- main/src/cgeo/geocaching/Geocache.java | 2 +- main/src/cgeo/geocaching/connector/AbstractConnector.java | 5 +++++ main/src/cgeo/geocaching/connector/IConnector.java | 9 +++++++++ main/src/cgeo/geocaching/connector/gc/GCConnector.java | 5 +++++ main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java | 4 ++++ 5 files changed, 24 insertions(+), 1 deletion(-) (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/Geocache.java b/main/src/cgeo/geocaching/Geocache.java index e19d5e0..c96acc6 100644 --- a/main/src/cgeo/geocaching/Geocache.java +++ b/main/src/cgeo/geocaching/Geocache.java @@ -452,7 +452,7 @@ public class Geocache implements ICache, IWaypoint { } public void logVisit(final IAbstractActivity fromActivity) { - if (StringUtils.isBlank(cacheId)) { + if (!getConnector().canLog(this)) { fromActivity.showToast(((Activity) fromActivity).getResources().getString(R.string.err_cannot_log_visit)); return; } diff --git a/main/src/cgeo/geocaching/connector/AbstractConnector.java b/main/src/cgeo/geocaching/connector/AbstractConnector.java index 7b85e49..905382f 100644 --- a/main/src/cgeo/geocaching/connector/AbstractConnector.java +++ b/main/src/cgeo/geocaching/connector/AbstractConnector.java @@ -71,6 +71,11 @@ public abstract class AbstractConnector implements IConnector { } @Override + public boolean canLog(Geocache cache) { + return false; + } + + @Override public ILoggingManager getLoggingManager(Activity activity, Geocache cache) { return new NoLoggingManager(); } diff --git a/main/src/cgeo/geocaching/connector/IConnector.java b/main/src/cgeo/geocaching/connector/IConnector.java index 5d8edd9..011c507 100644 --- a/main/src/cgeo/geocaching/connector/IConnector.java +++ b/main/src/cgeo/geocaching/connector/IConnector.java @@ -191,4 +191,13 @@ public interface IConnector { * @return true if the current user is the cache owner, false otherwise */ public boolean isOwner(final ICache cache); + + /** + * Check if the cache information is complete enough to be + * able to log online. + * + * @param geocache + * @return + */ + public boolean canLog(Geocache geocache); } diff --git a/main/src/cgeo/geocaching/connector/gc/GCConnector.java b/main/src/cgeo/geocaching/connector/gc/GCConnector.java index b773f66..cfbf761 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConnector.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConnector.java @@ -91,6 +91,11 @@ public class GCConnector extends AbstractConnector implements ISearchByGeocode, } @Override + public boolean canLog(Geocache cache) { + return StringUtils.isNotBlank(cache.getCacheId()); + } + + @Override public String getName() { return "GeoCaching.com"; } diff --git a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java index a578aac..4e57831 100644 --- a/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java +++ b/main/src/cgeo/geocaching/connector/oc/OCApiLiveConnector.java @@ -75,4 +75,8 @@ public class OCApiLiveConnector extends OCApiConnector implements ISearchByCente return new OkapiLoggingManager(activity, this, cache); } + @Override + public boolean canLog(Geocache cache) { + return true; + } } -- cgit v1.1