diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 8e30f92..f7fd7ff 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -953,7 +953,7 @@ for(Poi p : poiMarker){ DbGeoPoint dbgp = p.getGp(); GeoPoint gp = new GeoPoint(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt()); - OverlayItem oI = new OverlayItem(String.valueOf(dbgp.getTime()), String.valueOf(p.getId()), String.valueOf(p.getType()), gp); + OverlayItem oI = new OverlayItem(String.valueOf(dbgp.getTime()) + "_" + String.valueOf(dbgp.getId()), String.valueOf(p.getId()), String.valueOf(p.getType()), gp); Drawable[] iconLayer = new Drawable[2]; iconLayer[0] = res.getDrawable(R.mipmap.ic_poi); BitmapDrawable bd = (BitmapDrawable) res.getDrawable(entryImgs[getPos(p.getType())]); @@ -1059,22 +1059,30 @@ GeoPoint gp = (GeoPoint) pathMarkers.get(i).getPoint(); waypoints.add(gp); long time = 0; - String timeStr = pathMarkers.get(i).getUid(); - if(timeStr != null && !timeStr.equals("")) time = Long.parseLong(pathMarkers.get(i).getUid()) / 1000; + long rowId = 0; + String uid = pathMarkers.get(i).getUid(); + if(uid != null && !uid.equals("")){ + String[] uids = pathMarkers.get(i).getUid().split("_"); //format is 123456789_4 + String timeStr = uids[0]; + String idStr = uids[1]; + if(timeStr != null && !timeStr.equals("")) time = Long.parseLong(timeStr) / 1000; + if(idStr != null && !idStr.equals("")) rowId = Long.parseLong(uids[1]); + } + current = new DbGeoPoint(gp.getLatitude(), gp.getLongitude(), gp.getAltitude(), time); if(pathMarkers.get(i).getTitle() == null){ - long rowId = addPoi(current); + rowId = addGp(current); currentNew = true; - current.setId(rowId); } + current.setId(rowId); if(current != null && last != null){ - long rowId = addPoi(new Path(0, 0, exposed, diffWet, giddiness, climbing, last, current)); + long poiId = addPoi(new Path(0, 0, exposed, diffWet, giddiness, climbing, last, current)); if(currentNew){ - current.setTypeId("path_" + rowId); + current.setTypeId("path_" + poiId); dbHandler.updatePoi(current); } if(lastNew){ - last.setTypeId("path_" + rowId); + last.setTypeId("path_" + poiId); dbHandler.updatePoi(last); } @@ -1214,6 +1222,10 @@ } } + private long addGp(DbGeoPoint dbgp){ + return dbHandler.addPoi(dbgp); + } + private long addPoi(Poi poi){ DbGeoPoint dbgp = poi.getGp(); if(dbgp == null){ @@ -1237,11 +1249,11 @@ Path path = (Path) poi; path.getEndGp().setTypeId(getTypeName(poi.getType()) + "_" + rowId); dbHandler.updatePoi(path.getEndGp()); - } else if(poi.getType() == Types.LIFT){ + }/* else if(poi.getType() == Types.LIFT){ //TODO implement addLiftPoi method Lift lift = (Lift) poi; lift.getEndGp().setTypeId(getTypeName(poi.getType()) + "_" + rowId); dbHandler.updatePoi(lift.getEndGp()); - } + }*/ return rowId; }