aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/AbstractConnector.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-10-19 19:01:32 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-10-19 19:01:32 +0200
commitf8464a5954ded9e985cd137eeb2e32322943a633 (patch)
tree51a8ca8eba27757bf2f15ea49e34383e9906c432 /main/src/cgeo/geocaching/connector/AbstractConnector.java
parent737788256d41e51a707e4155e3f0b9bc49be4dd0 (diff)
downloadcgeo-f8464a5954ded9e985cd137eeb2e32322943a633.zip
cgeo-f8464a5954ded9e985cd137eeb2e32322943a633.tar.gz
cgeo-f8464a5954ded9e985cd137eeb2e32322943a633.tar.bz2
fix #3371: Log-offline-menu doesn't respect cache source
Diffstat (limited to 'main/src/cgeo/geocaching/connector/AbstractConnector.java')
-rw-r--r--main/src/cgeo/geocaching/connector/AbstractConnector.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/connector/AbstractConnector.java b/main/src/cgeo/geocaching/connector/AbstractConnector.java
index b93cda0..3ec0580 100644
--- a/main/src/cgeo/geocaching/connector/AbstractConnector.java
+++ b/main/src/cgeo/geocaching/connector/AbstractConnector.java
@@ -3,10 +3,15 @@ package cgeo.geocaching.connector;
import cgeo.geocaching.Geocache;
import cgeo.geocaching.LogCacheActivity;
import cgeo.geocaching.R;
+import cgeo.geocaching.enumerations.CacheType;
+import cgeo.geocaching.enumerations.LogType;
import cgeo.geocaching.geopoint.Geopoint;
import org.apache.commons.lang3.StringUtils;
+import java.util.ArrayList;
+import java.util.List;
+
public abstract class AbstractConnector implements IConnector {
@Override
@@ -146,4 +151,41 @@ public abstract class AbstractConnector implements IConnector {
}
return R.drawable.marker_other;
}
+
+ @Override
+ public List<LogType> getPossibleLogTypes(Geocache geocache) {
+ final List<LogType> logTypes = new ArrayList<LogType>();
+ if (geocache.isEventCache()) {
+ logTypes.add(LogType.WILL_ATTEND);
+ logTypes.add(LogType.ATTENDED);
+ if (geocache.isOwner()) {
+ logTypes.add(LogType.ANNOUNCEMENT);
+ }
+ } else if (CacheType.WEBCAM == geocache.getType()) {
+ logTypes.add(LogType.WEBCAM_PHOTO_TAKEN);
+ } else {
+ logTypes.add(LogType.FOUND_IT);
+ }
+ if (!geocache.isEventCache()) {
+ logTypes.add(LogType.DIDNT_FIND_IT);
+ }
+ logTypes.add(LogType.NOTE);
+ if (!geocache.isEventCache()) {
+ logTypes.add(LogType.NEEDS_MAINTENANCE);
+ }
+ if (geocache.isOwner()) {
+ logTypes.add(LogType.OWNER_MAINTENANCE);
+ if (geocache.isDisabled()) {
+ logTypes.add(LogType.ENABLE_LISTING);
+ }
+ else {
+ logTypes.add(LogType.TEMP_DISABLE_LISTING);
+ }
+ logTypes.add(LogType.ARCHIVE);
+ }
+ if (!geocache.isArchived() && !geocache.isOwner()) {
+ logTypes.add(LogType.NEEDS_ARCHIVE);
+ }
+ return logTypes;
+ }
}