aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorPortree-Kid <keith.paterson@gmx.de>2012-07-19 20:16:44 +0200
committerPortree-Kid <keith.paterson@gmx.de>2012-07-19 20:16:44 +0200
commit907a797d8980893659fdc9fdae5d6419d09be7f1 (patch)
tree360b81cc72512509c67f650ef6d2608335b7e8b6 /main
parent9875e2b489a6a7fa3c2067d747a8c1edb6925b60 (diff)
downloadcgeo-907a797d8980893659fdc9fdae5d6419d09be7f1.zip
cgeo-907a797d8980893659fdc9fdae5d6419d09be7f1.tar.gz
cgeo-907a797d8980893659fdc9fdae5d6419d09be7f1.tar.bz2
Added Filter to loading of waypoints fixes 1866
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/cgData.java8
-rw-r--r--main/src/cgeo/geocaching/cgeoapplication.java4
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java9
3 files changed, 14 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java
index f219835..af66079 100644
--- a/main/src/cgeo/geocaching/cgData.java
+++ b/main/src/cgeo/geocaching/cgData.java
@@ -66,7 +66,7 @@ public class cgData {
private static final String[] WAYPOINT_COLUMNS = new String[] { "_id", "geocode", "updated", "type", "prefix", "lookup", "name", "latlon", "latitude", "longitude", "note", "own" };
/** Number of days (as ms) after temporarily saved caches are deleted */
- private static long DAYS_AFTER_CACHE_IS_DELETED = 3 * 24 * 60 * 60 * 1000;
+ private final static long DAYS_AFTER_CACHE_IS_DELETED = 3 * 24 * 60 * 60 * 1000;
/**
* holds the column indexes of the cache table to avoid lookups
@@ -2929,10 +2929,11 @@ public class cgData {
*
* @param excludeDisabled
* @param excludeMine
+ * @param type
* @return
*/
- public Set<cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
+ public Set<cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled, CacheType type) {
final StringBuilder where = new StringBuilder(buildCoordinateWhere(dbTableWaypoints, viewport));
if (excludeMine) {
where.append(" and ").append(dbTableCaches).append(".own == 0 and ").append(dbTableCaches).append(".found == 0");
@@ -2940,6 +2941,9 @@ public class cgData {
if (excludeDisabled) {
where.append(" and ").append(dbTableCaches).append(".disabled == 0");
}
+ if (type != CacheType.ALL) {
+ where.append(" and ").append(dbTableCaches).append(".type == '" + type.id + "'");
+ }
init();
final StringBuilder query = new StringBuilder("SELECT ");
diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java
index 0860930..137fe30 100644
--- a/main/src/cgeo/geocaching/cgeoapplication.java
+++ b/main/src/cgeo/geocaching/cgeoapplication.java
@@ -490,8 +490,8 @@ public class cgeoapplication extends Application {
storage.removeCaches(geocodes, removeFlags);
}
- public Set<cgWaypoint> getWaypointsInViewport(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
- return storage.loadWaypoints(viewport, excludeMine, excludeDisabled);
+ public Set<cgWaypoint> getWaypointsInViewport(final Viewport viewport, boolean excludeMine, boolean excludeDisabled, CacheType type) {
+ return storage.loadWaypoints(viewport, excludeMine, excludeDisabled, type);
}
public boolean isLiveMapHintShown() {
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index c4c2dc7..3731f9d 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -1186,9 +1186,12 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
waypoints.clear();
if (isLiveMode() || mapMode == MapMode.COORDS) {
//All visible waypoints
- //FIXME apply type filter
- waypoints.addAll(app.getWaypointsInViewport(viewport, Settings.isExcludeMyCaches(), Settings.isExcludeDisabledCaches()));
- } else {
+ CacheType type = Settings.getCacheType();
+ Set<cgWaypoint> waypointsInViewport = app.getWaypointsInViewport(viewport, Settings.isExcludeMyCaches(), Settings.isExcludeDisabledCaches(), type);
+ waypoints.addAll(waypointsInViewport);
+ }
+ else
+ {
//All waypoints from the viewed caches
for (cgCache c : caches.getAsList()) {
waypoints.addAll(c.getWaypoints());