aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/cgData.java26
-rw-r--r--main/src/cgeo/geocaching/cgeoapplication.java3
2 files changed, 11 insertions, 18 deletions
diff --git a/main/src/cgeo/geocaching/cgData.java b/main/src/cgeo/geocaching/cgData.java
index 71e9849..52f4c3b 100644
--- a/main/src/cgeo/geocaching/cgData.java
+++ b/main/src/cgeo/geocaching/cgData.java
@@ -29,7 +29,6 @@ import android.database.sqlite.SQLiteStatement;
import java.io.File;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.EnumSet;
@@ -3079,7 +3078,7 @@ public class cgData {
* @return
*/
- public Collection<? extends cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
+ public Set<cgWaypoint> loadWaypoints(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
final StringBuilder where = new StringBuilder(buildCoordinateWhere(dbTableWaypoints, viewport));
if (excludeMine) {
where.append(" and ").append(dbTableCaches).append(".own == 0 and ").append(dbTableCaches).append(".found == 0 ");
@@ -3089,31 +3088,26 @@ public class cgData {
}
init();
- List<cgWaypoint> waypoints = new ArrayList<cgWaypoint>();
-
final StringBuilder query = new StringBuilder("SELECT ");
for (int i = 0; i < WAYPOINT_COLUMNS.length; i++) {
query.append(i > 0 ? ", " : "").append(dbTableWaypoints).append('.').append(WAYPOINT_COLUMNS[i]).append(' ');
}
query.append(" FROM ").append(dbTableWaypoints).append(", ").append(dbTableCaches).append(" WHERE ").append(dbTableWaypoints).append("._id == ").append(dbTableCaches).append("._id and ").append(where);
- Cursor cursor = databaseRO.rawQuery(query.toString(), null);
- if (cursor != null && cursor.getCount() > 0) {
- cursor.moveToFirst();
+ final Cursor cursor = databaseRO.rawQuery(query.toString(), null);
+ try {
+ if (!cursor.moveToFirst()) {
+ return Collections.emptySet();
+ }
+ final Set<cgWaypoint> waypoints = new HashSet<cgWaypoint>();
do {
-
- cgWaypoint waypoint = createWaypointFromDatabaseContent(cursor);
-
- waypoints.add(waypoint);
+ waypoints.add(createWaypointFromDatabaseContent(cursor));
} while (cursor.moveToNext());
- }
-
- if (cursor != null) {
+ return waypoints;
+ } finally {
cursor.close();
}
-
- return waypoints;
}
}
diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java
index 9324d52..55fc84c 100644
--- a/main/src/cgeo/geocaching/cgeoapplication.java
+++ b/main/src/cgeo/geocaching/cgeoapplication.java
@@ -22,7 +22,6 @@ import android.os.Message;
import java.io.File;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.EnumSet;
@@ -529,7 +528,7 @@ public class cgeoapplication extends Application {
storage.removeCaches(geocodes, removeFlags);
}
- public Collection<? extends cgWaypoint> getWaypointsInViewport(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
+ public Set<cgWaypoint> getWaypointsInViewport(final Viewport viewport, boolean excludeMine, boolean excludeDisabled) {
return storage.loadWaypoints(viewport, excludeMine, excludeDisabled);
}