diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index d358d2f..1997959 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -823,6 +823,7 @@ if(dbGeoPoint == null) return; GeoPoint gp = new GeoPoint(dbGeoPoint.getLat(), dbGeoPoint.getLon(), dbGeoPoint.getAlt()); Marker marker = new Marker(mapView); + marker.setInfoWindow(new ModernInfoWindow(mapView, true)); marker.setIcon(PoiHandler.createPoiMarker(poi.getType())); marker.setTitle(getTypeName(poi.getType())); marker.setSnippet(dbGeoPoint.toString() + "\n" + poi.toString()); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java index 0043735..6971321 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java @@ -258,7 +258,12 @@ ArrayList pois = new ArrayList<>(osmHandler.getPoisAround(lat, lon, limit)); ArrayList convertedPois = new ArrayList<>(); for(POI p : pois) { - convertedPois.add(new Poi(p)); + Poi newPoi = Poi.getPoiFromOsmPOI(p); + //TODO core do db stuff in background + long poiId = dbHandler.addPoi(newPoi); + newPoi.setId(poiId); + convertedPois.add(newPoi); + addGp(new DbGeoPoint(p.mLocation, System.currentTimeMillis()/1000, newPoi.getId(), newPoi.getType())); } return convertedPois; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java index 1cae016..818f8bd 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/pois/Poi.java @@ -33,34 +33,42 @@ public Poi() { } - public Poi(POI p) { - infoFromOsm = p.mCategory + ":" + p.mDescription + ":" + p.mType; + public static Poi getPoiFromOsmPOI(POI p) { + Poi poi; switch (p.mType) { case "path": - _type = Types.PATH; + poi = new Path(); break; case "spring": - _type = Types.FOUNTAIN; + poi = new Fountain(); break; case "stream": - _type = Types.FOUNTAIN; + poi = new Fountain(); break; case "peak": - _type = Types.PEAK; + poi = new Peak(); break; case "wilderness_hut": - _type = Types.HUT; + poi = new Hut(); break; case "alpine_hut": - _type = Types.HUT; + poi = new Hut(); break; case "water": - _type = Types.FOUNTAIN; + poi = new Fountain(); break; case "aerialway": - _type = Types.LIFT; + poi = new Lift(); + break; + case "drinking_water": + poi = new Fountain(); + break; + default: + poi = new Poi(); break; } + poi.setInfoFromOsm(p.mCategory + ":" + p.mDescription + ":" + p.mType); + return poi; } @Override @@ -98,6 +106,10 @@ return _id; } + public void setId(long id) { this._id = id; } + + public void setInfoFromOsm(String infoFromOsm) { this.infoFromOsm = infoFromOsm; } + @Override public String toString() { return "Poi {" +