From ed6e900282ef7dd2c147fcdee0a11baec8e3bfae Mon Sep 17 00:00:00 2001 From: Chteufleur Date: Wed, 22 Aug 2018 19:34:32 +0200 Subject: [PATCH] Fix bug on set found object button. --- .../mytrackingdog/MainActivity.java | 25 +++++++++++-------- .../mytrackingdog/services/ServiceGps.java | 7 +++--- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java index 93b1e51..cbeb362 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/MainActivity.java @@ -231,19 +231,22 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu } private void markAsFound() { - WayPointLocation wpl = serviceGps.foundNearObject(); - if (wpl != null) { - wpl.setFound(); - for (Overlay o : map.getOverlays()) { - if (o instanceof Marker) { - Marker marker = (Marker) o; - GeoPoint gp = marker.getPosition(); - if (wpl.isEquals(gp.getLatitude(), gp.getLongitude())) { - marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue)); - marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM); - break; + List wpls = serviceGps.foundNearObjects(); + for (WayPointLocation wpl: wpls) { + if (wpl != null && !wpl.isFound()) { + wpl.setFound(); + for (Overlay o : map.getOverlays()) { + if (o instanceof Marker) { + Marker marker = (Marker) o; + GeoPoint gp = marker.getPosition(); + if (wpl.isEquals(gp.getLatitude(), gp.getLongitude())) { + marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue)); + marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM); + break; + } } } + break; } } } diff --git a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceGps.java b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceGps.java index f9f7156..b29a70e 100644 --- a/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceGps.java +++ b/app/src/main/java/fr/chteufleur/mytrackingdog/services/ServiceGps.java @@ -13,6 +13,7 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Observable; @@ -168,12 +169,12 @@ public class ServiceGps extends Observable implements IServiceGps, LocationListe return traces.getPoint(lat, lon); } - public WayPointLocation foundNearObject() { - WayPointLocation ret = null; + public List foundNearObjects() { + List ret = new ArrayList<>(); MyLocation curLoc = currentLocation; for (MyLocation ml: getListGeoPointObjects()) { if (curLoc.distanceTo(ml) < 10 && ml instanceof WayPointLocation) { - ret = (WayPointLocation) ml; + ret.add((WayPointLocation) ml); } } return ret;