diff options
| -rw-r--r-- | main/res/values-de/strings.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/filter/StateFilter.java | 12 | ||||
| -rw-r--r-- | tests/src/cgeo/geocaching/filter/StateNonPremiumFilterTest.java | 26 |
4 files changed, 40 insertions, 0 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index beb069c..d563608 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -588,6 +588,7 @@ <string name="cache_status_archived">Archiviert</string> <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_geocode">GC-Code</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 de12fff..f3f6b0e 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -601,6 +601,7 @@ <string name="cache_status_archived">Archived</string> <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_geocode">GC-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 b086477..f51329a 100644 --- a/main/src/cgeo/geocaching/filter/StateFilter.java +++ b/main/src/cgeo/geocaching/filter/StateFilter.java @@ -64,6 +64,17 @@ abstract class StateFilter extends AbstractFilter { } } + static class StateNonPremiumFilter extends StateFilter { + public StateNonPremiumFilter() { + super(res.getString(R.string.cache_status_not_premium)); + } + + @Override + public boolean accepts(cgCache cache) { + return !cache.isPremiumMembersOnly(); + } + } + private static class StateOfflineLogFilter extends StateFilter { public StateOfflineLogFilter() { super(res.getString(R.string.cache_status_offline_log)); @@ -84,6 +95,7 @@ abstract class StateFilter extends AbstractFilter { filters.add(new StateArchivedFilter()); filters.add(new StateDisabledFilter()); filters.add(new StatePremiumFilter()); + filters.add(new StateNonPremiumFilter()); filters.add(new StateOfflineLogFilter()); Collections.sort(filters, new Comparator<StateFilter>() { diff --git a/tests/src/cgeo/geocaching/filter/StateNonPremiumFilterTest.java b/tests/src/cgeo/geocaching/filter/StateNonPremiumFilterTest.java new file mode 100644 index 0000000..98d9e63 --- /dev/null +++ b/tests/src/cgeo/geocaching/filter/StateNonPremiumFilterTest.java @@ -0,0 +1,26 @@ +package cgeo.geocaching.filter; + +import cgeo.CGeoTestCase; +import cgeo.geocaching.cgCache; +import cgeo.geocaching.filter.StateFilter.StateNonPremiumFilter; + +public class StateNonPremiumFilterTest extends CGeoTestCase { + + private StateFilter.StateNonPremiumFilter nonPremiumFilter; + private cgCache premiumCache; + + @Override + protected void setUp() throws Exception { + super.setUp(); + + nonPremiumFilter = new StateNonPremiumFilter(); + premiumCache = new cgCache(); + premiumCache.setPremiumMembersOnly(true); + } + + public void testAccepts() { + assertFalse(nonPremiumFilter.accepts(premiumCache)); + assertTrue(nonPremiumFilter.accepts(new cgCache())); + } + +} |
