diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2013-04-07 14:45:42 +0200 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2013-04-07 14:45:42 +0200 |
commit | 97b10e667d2fdfd9abb56be8e5bfaee259e27f65 (patch) | |
tree | d204a06ed665b2cd9ddba70db2995d0fd16a7444 | |
parent | 154d9869c3972939cff5d95cb2b2343dc5e76309 (diff) | |
download | cgeo-97b10e667d2fdfd9abb56be8e5bfaee259e27f65.zip cgeo-97b10e667d2fdfd9abb56be8e5bfaee259e27f65.tar.gz cgeo-97b10e667d2fdfd9abb56be8e5bfaee259e27f65.tar.bz2 |
fix #2640: Filter out stored caches
-rw-r--r-- | main/res/values-de/strings.xml | 2 | ||||
-rw-r--r-- | main/res/values/strings.xml | 2 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/filter/StateFilter.java | 24 | ||||
-rw-r--r-- | tests/src/cgeo/geocaching/filter/StateStoredFilterTest.java | 27 |
4 files changed, 55 insertions, 0 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index d011ce8..aa27553 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -584,6 +584,8 @@ <string name="cache_status_disabled">Deaktiviert</string> <string name="cache_status_premium">Nur für Premium-Mitglieder</string> <string name="cache_status_not_premium">Für alle Mitglieder</string> + <string name="cache_status_stored">Gespeichert</string> + <string name="cache_status_not_stored">Nicht gespeichert</string> <string name="cache_geocode">Geocode</string> <string name="cache_name">Name</string> <string name="cache_type">Typ</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index c539915..218c22b 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -596,6 +596,8 @@ <string name="cache_status_disabled">Disabled</string> <string name="cache_status_premium">Premium Members only</string> <string name="cache_status_not_premium">All Members Access</string> + <string name="cache_status_stored">Stored</string> + <string name="cache_status_not_stored">Not stored</string> <string name="cache_geocode">Geo code</string> <string name="cache_name">Name</string> <string name="cache_type">Type</string> diff --git a/main/src/cgeo/geocaching/filter/StateFilter.java b/main/src/cgeo/geocaching/filter/StateFilter.java index ae3fac2..e18128d 100644 --- a/main/src/cgeo/geocaching/filter/StateFilter.java +++ b/main/src/cgeo/geocaching/filter/StateFilter.java @@ -87,6 +87,28 @@ abstract class StateFilter extends AbstractFilter { } } + static class StateStoredFilter extends StateFilter { + public StateStoredFilter() { + super(res.getString(R.string.cache_status_stored)); + } + + @Override + public boolean accepts(Geocache cache) { + return cache.isOffline(); + } + } + + static class StateNotStoredFilter extends StateFilter { + public StateNotStoredFilter() { + super(res.getString(R.string.cache_status_not_stored)); + } + + @Override + public boolean accepts(Geocache cache) { + return !cache.isOffline(); + } + } + public static class Factory implements IFilterFactory { @Override @@ -98,6 +120,8 @@ abstract class StateFilter extends AbstractFilter { filters.add(new StatePremiumFilter()); filters.add(new StateNonPremiumFilter()); filters.add(new StateOfflineLogFilter()); + filters.add(new StateStoredFilter()); + filters.add(new StateNotStoredFilter()); Collections.sort(filters, new Comparator<StateFilter>() { diff --git a/tests/src/cgeo/geocaching/filter/StateStoredFilterTest.java b/tests/src/cgeo/geocaching/filter/StateStoredFilterTest.java new file mode 100644 index 0000000..2f65a6b --- /dev/null +++ b/tests/src/cgeo/geocaching/filter/StateStoredFilterTest.java @@ -0,0 +1,27 @@ +package cgeo.geocaching.filter; + +import cgeo.CGeoTestCase; +import cgeo.geocaching.Geocache; +import cgeo.geocaching.filter.StateFilter.StateNotStoredFilter; +import cgeo.geocaching.filter.StateFilter.StateStoredFilter; + +public class StateStoredFilterTest extends CGeoTestCase { + + private StateFilter.StateStoredFilter storedFilter; + private StateFilter.StateNotStoredFilter notStoredFilter; + private Geocache cache; + + @Override + protected void setUp() throws Exception { + super.setUp(); + storedFilter = new StateStoredFilter(); + notStoredFilter = new StateNotStoredFilter(); + cache = new Geocache(); + } + + public void testAccepts() { + assertFalse(storedFilter.accepts(cache)); + assertTrue(notStoredFilter.accepts(cache)); + } + +} |