diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 8dd7518..54d3a0e 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -58,6 +58,8 @@ import org.osmdroid.api.IGeoPoint; import org.osmdroid.api.IMapController; +import org.osmdroid.bonuspack.overlays.MapEventsOverlay; +import org.osmdroid.bonuspack.overlays.MapEventsReceiver; import org.osmdroid.bonuspack.overlays.Marker; import org.osmdroid.tileprovider.tilesource.TileSourceFactory; import org.osmdroid.util.GeoPoint; @@ -338,8 +340,6 @@ if(iv.getTag() == null || iv.getTag() == "disabled"){ iv.setColorFilter(null); iv.setTag(""); - //Typeface tf = Typeface.create("sans-serif-medium", Typeface.BOLD); - //tv.setTypeface(tf); tv.setTextColor(res.getColor(R.color.text_color_selected)); Toaster("You enabled " + entries[position]); String title = entries[position]; @@ -352,11 +352,8 @@ mapView.invalidate(); } else { iv.setColorFilter(res.getColor(R.color.icon_unselected_gray)); - //iv.setColorFilter(Color.argb(200, 185, 185, 185)); iv.setTag("disabled"); tv.setTextColor(res.getColor(R.color.text_color)); - //Typeface tf = Typeface.create("sans-serif-medium", Typeface.NORMAL); - //tv.setTypeface(tf); Toaster("You disabled " + entries[position]); for(int i=0; i 0 && descs.size() > 0) { String[] titleArr = new String[titles.size()]; @@ -722,7 +723,7 @@ addPathMap(); break; case Types.HUT: - //TODO add Options + //TODO add Options (selbstversorger, schutzhütte, ...) addPoi(Types.HUT); break; case Types.PEAK: @@ -736,16 +737,17 @@ addPoi(Types.TRASH_BIN); break; case Types.PIC: + //TODO add picture only to existing POI addPoi(Types.PIC); break; case Types.CELL_RECEPTION: - //addPoi(Types.CELL_RECEPTION); addCellReceptionPoi(); break; case Types.WIFI: addWifiPoi(); break; case Types.LIFT: + //TODO as in path, choose two markers addPoi(Types.LIFT); break; } @@ -798,7 +800,6 @@ popupMapController.setZoom(ZOOM_LEVEL); popupMapController.setCenter(new GeoPoint(48.52, 9.055)); - MapDialogItemizedIconOverlay overlay = null; List overlayItemList = new ArrayList<>(); //TODO fill with correct items OverlayItem olItem = new OverlayItem("Test Item", "Description...", new GeoPoint(48.47, 9.055)); @@ -828,7 +829,25 @@ AlertDialog pathMapDialog = builder.create(); pathMapDialog.show(); pathMapDialog.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); - overlay = new MapDialogItemizedIconOverlay(this, overlayItemList, pathMapDialog); + final MapDialogItemizedIconOverlay overlay = new MapDialogItemizedIconOverlay(this, overlayItemList, pathMapDialog, popupMapView); + + MapEventsReceiver eventsReceiver = new MapEventsReceiver() { + @Override + public boolean singleTapConfirmedHelper(GeoPoint geoPoint) { + return false; + } + + @Override + public boolean longPressHelper(GeoPoint geoPoint) { + OverlayItem oI = new OverlayItem(null, null, geoPoint); + oI.setMarker(getApplicationContext().getResources().getDrawable(R.mipmap.ic_poi_red)); + overlay.addItem(oI); + mapView.invalidate(); + return true; + } + }; + + popupMapView.getOverlays().add(new MapEventsOverlay(getApplicationContext(), eventsReceiver)); popupMapView.getOverlays().add(overlay); } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java index b81b3c0..f20ca4a 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java @@ -5,8 +5,6 @@ import android.content.res.Resources; import android.graphics.drawable.Drawable; -import org.osmdroid.api.IGeoPoint; -import org.osmdroid.util.GeoPoint; import org.osmdroid.views.MapView; import org.osmdroid.views.overlay.ItemizedIconOverlay; import org.osmdroid.views.overlay.OverlayItem; @@ -24,8 +22,9 @@ private Drawable posIcon; private Drawable negIcon; private List aList; + private MapView mapView; - public MapDialogItemizedIconOverlay(final Context context, final List aList, AlertDialog alertDialog) { + public MapDialogItemizedIconOverlay(final Context context, final List aList, AlertDialog alertDialog, MapView mapView) { super(context, aList, new OnItemGestureListener() { @Override public boolean onItemSingleTapUp(int index, OverlayItem item) { @@ -47,12 +46,19 @@ this.items = new boolean[aList.size()]; this.alertDialog = alertDialog; this.aList = aList; + this.mapView = mapView; this.selected = 0; } @Override + protected boolean onLongPressHelper(int index, OverlayItem item) { + removeItem(index); + mapView.invalidate(); + return true; + } + + @Override protected boolean onSingleTapUpHelper(int index, OverlayItem item, MapView mapView) { - Resources res = context.getResources(); if(items[index]){ items[index] = false; selected--; @@ -67,8 +73,12 @@ boolean firstFound = false; for(int i=0; i