diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 1abe5ea..dea76c4 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -96,6 +96,7 @@ private static NetworkInfo activeNetwork; private static int networkStrength; private static final int MAX_WIFI_LEVELS = 5; + public static final long VIB_LENGTH = 100; private static SimpleDateFormat df_hm; private static SimpleDateFormat df_full; @@ -842,7 +843,7 @@ @Override public boolean longPressHelper(GeoPoint geoPoint) { Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); - v.vibrate(500); + v.vibrate(VIB_LENGTH); OverlayItem oI = new OverlayItem(null, null, geoPoint); oI.setMarker(getApplicationContext().getResources().getDrawable(R.mipmap.ic_poi_red)); overlay.addItem(oI); diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java index f069f5e..3e1038b 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MapDialogItemizedIconOverlay.java @@ -10,6 +10,7 @@ import org.osmdroid.views.overlay.ItemizedIconOverlay; import org.osmdroid.views.overlay.OverlayItem; +import java.util.ArrayList; import java.util.List; /** @@ -18,7 +19,7 @@ public class MapDialogItemizedIconOverlay extends ItemizedIconOverlay { private Context context; private AlertDialog alertDialog; - private boolean[] items; + private List items; private int selected; private Drawable posIcon; private Drawable negIcon; @@ -37,45 +38,54 @@ return false; } }); + this.context = context; + this.items = new ArrayList<>(); + this.alertDialog = alertDialog; + this.aList = aList; + this.mapView = mapView; + this.selected = 0; Resources res = context.getResources(); posIcon = res.getDrawable(R.mipmap.ic_poi); negIcon = res.getDrawable(R.mipmap.ic_poi_red); for(OverlayItem oi : aList){ oi.setMarker(negIcon); + items.add(false); } - this.context = context; - 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); + items.remove(index); mapView.invalidate(); Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); - v.vibrate(500); + v.vibrate(MainActivity.VIB_LENGTH); return true; } @Override + public boolean addItem(OverlayItem item) { + boolean ret = super.addItem(item); + items.add(false); + return ret; + } + + @Override protected boolean onSingleTapUpHelper(int index, OverlayItem item, MapView mapView) { - if(items[index]){ - items[index] = false; + if(items.get(index)){ + items.add(index, false); selected--; item.setMarker(negIcon); } else { - items[index] = true; + items.add(index, true); selected++; item.setMarker(posIcon); } mapView.invalidate(); if(selected == 2){ boolean firstFound = false; - for(int i=0; i