diff options
| author | rsudev <rasch@munin-soft.de> | 2013-05-28 22:52:40 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2013-05-28 22:52:40 +0200 |
| commit | a7de49db675048db5ae0c05ccd730a8579e6876e (patch) | |
| tree | ff1a3eb5f58557e78ba884bbe9774ee5c4559e26 /main/src/cgeo | |
| parent | d93a286f8c1ac95439936f83ddddc3e60d7e4726 (diff) | |
| download | cgeo-a7de49db675048db5ae0c05ccd730a8579e6876e.zip cgeo-a7de49db675048db5ae0c05ccd730a8579e6876e.tar.gz cgeo-a7de49db675048db5ae0c05ccd730a8579e6876e.tar.bz2 | |
Fixed issue with not loggable OC-caches
Diffstat (limited to 'main/src/cgeo')
5 files changed, 24 insertions, 1 deletions
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 <code>true</code> if the current user is the cache owner, <code>false</code> 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; + } } |
