diff options
| author | rsudev <rasch@munin-soft.de> | 2014-05-01 12:46:15 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2014-05-01 12:46:15 +0200 |
| commit | 73a6f622ec617a95ab1969ad1b4135e20f296030 (patch) | |
| tree | 9a3be2dbc6adf37435f49645826030024d033a63 | |
| parent | db53522a8e5cfb541d8969db6920f49abe27d99c (diff) | |
| download | cgeo-73a6f622ec617a95ab1969ad1b4135e20f296030.zip cgeo-73a6f622ec617a95ab1969ad1b4135e20f296030.tar.gz cgeo-73a6f622ec617a95ab1969ad1b4135e20f296030.tar.bz2 | |
Implements #3758, Filter for "Not found" caches
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/filter/StateFilter.java | 14 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java | 28 |
3 files changed, 43 insertions, 0 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 2aa3d00..6a0e571 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -715,6 +715,7 @@ <string name="cache_status">Status</string> <string name="cache_status_offline_log">Saved Log</string> <string name="cache_status_found">Found</string> + <string name="cache_not_status_found">Not Found</string> <string name="cache_status_archived">Archived</string> <string name="cache_status_disabled">Disabled</string> <string name="cache_status_premium">Premium Members only</string> diff --git a/main/src/cgeo/geocaching/filter/StateFilter.java b/main/src/cgeo/geocaching/filter/StateFilter.java index f452259..fd14b69 100644 --- a/main/src/cgeo/geocaching/filter/StateFilter.java +++ b/main/src/cgeo/geocaching/filter/StateFilter.java @@ -32,6 +32,19 @@ abstract class StateFilter extends AbstractFilter { } + static class StateNotFoundFilter extends StateFilter { + + public StateNotFoundFilter() { + super(res.getString(R.string.cache_not_status_found)); + } + + @Override + public boolean accepts(final Geocache cache) { + return !cache.isFound(); + } + + } + static class StateArchivedFilter extends StateFilter { public StateArchivedFilter() { super(res.getString(R.string.cache_status_archived)); @@ -115,6 +128,7 @@ abstract class StateFilter extends AbstractFilter { public List<StateFilter> getFilters() { final List<StateFilter> filters = new ArrayList<StateFilter>(6); filters.add(new StateFoundFilter()); + filters.add(new StateNotFoundFilter()); filters.add(new StateArchivedFilter()); filters.add(new StateDisabledFilter()); filters.add(new StatePremiumFilter()); diff --git a/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java b/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java new file mode 100644 index 0000000..2bf9d94 --- /dev/null +++ b/tests/src/cgeo/geocaching/filter/StateNotFoundFilterTest.java @@ -0,0 +1,28 @@ +package cgeo.geocaching.filter; + +import static org.assertj.core.api.Assertions.assertThat; + +import cgeo.CGeoTestCase; +import cgeo.geocaching.Geocache; +import cgeo.geocaching.filter.StateFilter.StateNotFoundFilter; + +public class StateNotFoundFilterTest extends CGeoTestCase { + + private StateFilter.StateNotFoundFilter notFoundFilter; + private Geocache foundCache; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + notFoundFilter = new StateNotFoundFilter(); + foundCache = new Geocache(); + foundCache.setFound(true); + } + + public void testAccepts() { + assertThat(notFoundFilter.accepts(foundCache)).isFalse(); + assertThat(notFoundFilter.accepts(new Geocache())).isTrue(); + } + +} |
