diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java index e9374ac..3799a9d 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java @@ -5,7 +5,6 @@ import android.content.DialogInterface; import android.content.res.Resources; import android.graphics.drawable.Drawable; -import android.os.Vibrator; import org.osmdroid.views.MapView; import org.osmdroid.views.overlay.ItemizedIconOverlay; @@ -24,7 +23,6 @@ private int selected; private Drawable posIcon; private Drawable negIcon; - private List aList; private MapView mapView; public MapDialogItemizedIconOverlay(final Context context, final List aList, AlertDialog alertDialog, MapView mapView) { @@ -42,7 +40,6 @@ this.context = context; this.items = new ArrayList<>(); this.alertDialog = alertDialog; - this.aList = aList; this.mapView = mapView; this.selected = 0; Resources res = context.getResources(); @@ -63,7 +60,6 @@ @Override public void onClick(DialogInterface dialog, int which) { removeItem(remIndex); - items.remove(remIndex); mapView.invalidate(); } }) @@ -85,26 +81,38 @@ } @Override - protected boolean onSingleTapUpHelper(int index, OverlayItem item, MapView mapView) { + public OverlayItem removeItem(int position) { + OverlayItem oI = super.removeItem(position); + if(items.get(position)) selected--; + items.remove(position); + checkForSelection(); + return oI; + } + + private void updateItem(int index){ if(items.get(index)){ - items.add(index, false); + items.set(index, false); selected--; - item.setMarker(negIcon); + getItem(index).setMarker(negIcon); } else { - items.add(index, true); + items.set(index, true); selected++; - item.setMarker(posIcon); + getItem(index).setMarker(posIcon); } mapView.invalidate(); + checkForSelection(); + } + + private void checkForSelection(){ if(selected == 2){ boolean firstFound = false; for(int i=0; i