aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-11-09 17:16:58 +0100
committerBananeweizen <bananeweizen@gmx.de>2013-11-09 17:16:58 +0100
commit0cf2f15d3ad8137653756f6bda7dda29fbe3487e (patch)
treeea8e393e9e8b1de42c6daeff8c431107bd554704
parent2a38844294c70ea6382f0752edb57bb073010c95 (diff)
downloadcgeo-0cf2f15d3ad8137653756f6bda7dda29fbe3487e.zip
cgeo-0cf2f15d3ad8137653756f6bda7dda29fbe3487e.tar.gz
cgeo-0cf2f15d3ad8137653756f6bda7dda29fbe3487e.tar.bz2
fix #3394: filter for caches with personal note
-rw-r--r--main/res/values/strings.xml1
-rw-r--r--main/src/cgeo/geocaching/filter/FilterUserInterface.java1
-rw-r--r--main/src/cgeo/geocaching/filter/PersonalNoteFilter.java28
-rw-r--r--main/src/cgeo/geocaching/filter/StateFilter.java2
4 files changed, 31 insertions, 1 deletions
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index 280bc44..1adabc4 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -329,6 +329,7 @@
<string name="caches_filter_modified">With modified coordinates</string>
<string name="caches_filter_origin">Origin</string>
<string name="caches_filter_distance">Distance</string>
+ <string name="caches_filter_personal_note">With personal note</string>
<string name="caches_removing_from_history">Removing from History…</string>
<string name="caches_clear_offlinelogs">Clear offline logs</string>
<string name="caches_clear_offlinelogs_progress">Clearing offline logs</string>
diff --git a/main/src/cgeo/geocaching/filter/FilterUserInterface.java b/main/src/cgeo/geocaching/filter/FilterUserInterface.java
index 8ff700a..88bf8c3 100644
--- a/main/src/cgeo/geocaching/filter/FilterUserInterface.java
+++ b/main/src/cgeo/geocaching/filter/FilterUserInterface.java
@@ -56,6 +56,7 @@ public final class FilterUserInterface {
register(R.string.caches_filter_modified, ModifiedFilter.class);
register(R.string.caches_filter_origin, OriginFilter.Factory.class);
register(R.string.caches_filter_distance, DistanceFilter.Factory.class);
+ register(R.string.caches_filter_personal_note, PersonalNoteFilter.class);
// sort by localized names
Collections.sort(registry, new Comparator<FactoryEntry>() {
diff --git a/main/src/cgeo/geocaching/filter/PersonalNoteFilter.java b/main/src/cgeo/geocaching/filter/PersonalNoteFilter.java
new file mode 100644
index 0000000..15d262f
--- /dev/null
+++ b/main/src/cgeo/geocaching/filter/PersonalNoteFilter.java
@@ -0,0 +1,28 @@
+package cgeo.geocaching.filter;
+
+import cgeo.geocaching.CgeoApplication;
+import cgeo.geocaching.Geocache;
+import cgeo.geocaching.R;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Collections;
+import java.util.List;
+
+public class PersonalNoteFilter extends AbstractFilter implements IFilterFactory {
+
+ protected PersonalNoteFilter() {
+ super(CgeoApplication.getInstance().getString(R.string.caches_filter_personal_note));
+ }
+
+ @Override
+ public boolean accepts(Geocache cache) {
+ return StringUtils.isNotBlank(cache.getPersonalNote());
+ }
+
+ @Override
+ public List<PersonalNoteFilter> getFilters() {
+ return Collections.singletonList(this);
+ }
+
+}
diff --git a/main/src/cgeo/geocaching/filter/StateFilter.java b/main/src/cgeo/geocaching/filter/StateFilter.java
index d5b3027..f452259 100644
--- a/main/src/cgeo/geocaching/filter/StateFilter.java
+++ b/main/src/cgeo/geocaching/filter/StateFilter.java
@@ -127,7 +127,7 @@ abstract class StateFilter extends AbstractFilter {
@Override
public int compare(final StateFilter filter1, final StateFilter filter2) {
- return filter1.getName().compareToIgnoreCase(filter2.getName());
+ return String.CASE_INSENSITIVE_ORDER.compare(filter1.getName(), filter2.getName());
}
});