diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-10-19 19:01:32 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-10-19 19:01:32 +0200 |
| commit | f8464a5954ded9e985cd137eeb2e32322943a633 (patch) | |
| tree | 51a8ca8eba27757bf2f15ea49e34383e9906c432 /main/src/cgeo/geocaching/connector/AbstractConnector.java | |
| parent | 737788256d41e51a707e4155e3f0b9bc49be4dd0 (diff) | |
| download | cgeo-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.java | 42 |
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; + } } |
