aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java33
-rw-r--r--main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java73
-rw-r--r--main/src/cgeo/geocaching/maps/PositionDrawer.java (renamed from main/src/cgeo/geocaching/maps/PositionOverlay.java)70
-rw-r--r--main/src/cgeo/geocaching/maps/ScaleDrawer.java (renamed from main/src/cgeo/geocaching/maps/ScaleOverlay.java)30
-rw-r--r--main/src/cgeo/geocaching/maps/google/GoogleMapView.java19
-rw-r--r--main/src/cgeo/geocaching/maps/google/GoogleOverlay.java18
-rw-r--r--main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java7
-rw-r--r--main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java5
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java17
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java19
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java19
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java19
12 files changed, 141 insertions, 188 deletions
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index 657b897..f4243da 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -153,8 +153,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
private volatile boolean downloaded = false;
// overlays
private CachesOverlay overlayCaches = null;
- private ScaleOverlay overlayScale = null;
- private PositionOverlay overlayPosition = null;
+ private PositionAndScaleOverlay overlayPositionAndScale = null;
// data for overlays
private static final int[][] INSET_RELIABLE = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; // center, 33x40 / 45x51 / 60x68
private static final int[][] INSET_TYPE = { { 5, 8, 6, 10 }, { 4, 4, 5, 11 }, { 4, 4, 5, 11 } }; // center, 22x22 / 36x36
@@ -347,8 +346,8 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
outState.putInt(BUNDLE_MAP_SOURCE, currentSourceId);
outState.putIntArray(BUNDLE_MAP_STATE, currentMapState());
outState.putBoolean(BUNDLE_LIVE_ENABLED, isLiveEnabled);
- if (overlayPosition != null) {
- outState.putParcelableArrayList(BUNDLE_TRAIL_HISTORY, overlayPosition.getHistory());
+ if (overlayPositionAndScale != null) {
+ outState.putParcelableArrayList(BUNDLE_TRAIL_HISTORY, overlayPositionAndScale.getHistory());
}
}
@@ -429,17 +428,13 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
overlayCaches = mapView.createAddMapOverlay(mapView.getContext(), getResources().getDrawable(R.drawable.marker));
}
- if (overlayPosition == null) {
- overlayPosition = mapView.createAddPositionOverlay(activity);
+ if (overlayPositionAndScale == null) {
+ overlayPositionAndScale = mapView.createAddPositionAndScaleOverlay(activity);
if (trailHistory != null) {
- overlayPosition.setHistory(trailHistory);
+ overlayPositionAndScale.setHistory(trailHistory);
}
}
- if (overlayScale == null) {
- overlayScale = mapView.createAddScaleOverlay(activity);
- }
-
mapView.repaintRequired(null);
mapView.getMapController().setZoom(Settings.getMapZoom());
@@ -617,7 +612,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
switch (id) {
case R.id.menu_trail_mode:
Settings.setMapTrail(!Settings.isMapTrail());
- mapView.repaintRequired(overlayPosition);
+ mapView.repaintRequired(overlayPositionAndScale);
ActivityMixin.invalidateOptionsMenu(activity);
return true;
case R.id.menu_map_live:
@@ -924,8 +919,8 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
try {
if (mapView != null) {
- if (overlayPosition == null) {
- overlayPosition = mapView.createAddPositionOverlay(activity);
+ if (overlayPositionAndScale == null) {
+ overlayPositionAndScale = mapView.createAddPositionAndScaleOverlay(activity);
}
boolean needsRepaintForDistance = needsRepaintForDistance();
@@ -938,9 +933,9 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
}
if (needsRepaintForDistance || needsRepaintForHeading) {
- overlayPosition.setCoordinates(currentLocation);
- overlayPosition.setHeading(currentHeading);
- mapView.repaintRequired(overlayPosition);
+ overlayPositionAndScale.setCoordinates(currentLocation);
+ overlayPositionAndScale.setHeading(currentHeading);
+ mapView.repaintRequired(overlayPositionAndScale);
}
}
} catch (RuntimeException e) {
@@ -950,7 +945,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
}
boolean needsRepaintForHeading() {
- return Math.abs(AngleUtils.difference(currentHeading, overlayPosition.getHeading())) > MIN_HEADING_DELTA;
+ return Math.abs(AngleUtils.difference(currentHeading, overlayPositionAndScale.getHeading())) > MIN_HEADING_DELTA;
}
boolean needsRepaintForDistance() {
@@ -959,7 +954,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto
return false;
}
- final Location lastLocation = overlayPosition.getCoordinates();
+ final Location lastLocation = overlayPositionAndScale.getCoordinates();
float dist = Float.MAX_VALUE;
if (lastLocation != null) {
diff --git a/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java b/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java
new file mode 100644
index 0000000..6b34b75
--- /dev/null
+++ b/main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java
@@ -0,0 +1,73 @@
+package cgeo.geocaching.maps;
+
+import cgeo.geocaching.maps.interfaces.GeneralOverlay;
+import cgeo.geocaching.maps.interfaces.MapProjectionImpl;
+import cgeo.geocaching.maps.interfaces.MapViewImpl;
+import cgeo.geocaching.maps.interfaces.OverlayImpl;
+
+import android.app.Activity;
+import android.graphics.Canvas;
+import android.graphics.Point;
+import android.location.Location;
+
+import java.util.ArrayList;
+
+public class PositionAndScaleOverlay implements GeneralOverlay {
+ private OverlayImpl ovlImpl = null;
+
+ PositionDrawer positionDrawer = null;
+ ScaleDrawer scaleDrawer = null;
+
+ public PositionAndScaleOverlay(Activity activity, OverlayImpl ovlImpl) {
+ this.ovlImpl = ovlImpl;
+ positionDrawer = new PositionDrawer(activity);
+ scaleDrawer = new ScaleDrawer(activity);
+ }
+
+ public void setCoordinates(Location coordinatesIn) {
+ positionDrawer.setCoordinates(coordinatesIn);
+ }
+
+ public Location getCoordinates() {
+ return positionDrawer.getCoordinates();
+ }
+
+ public void setHeading(float bearingNow) {
+ positionDrawer.setHeading(bearingNow);
+ }
+
+ public float getHeading() {
+ return positionDrawer.getHeading();
+ }
+
+ @Override
+ public void drawOverlayBitmap(Canvas canvas, Point drawPosition,
+ MapProjectionImpl projection, byte drawZoomLevel) {
+
+ drawInternal(canvas, projection, getOverlayImpl().getMapViewImpl());
+ }
+
+ @Override
+ public void draw(Canvas canvas, MapViewImpl mapView, boolean shadow) {
+
+ drawInternal(canvas, mapView.getMapProjection(), mapView);
+ }
+
+ private void drawInternal(Canvas canvas, MapProjectionImpl projection, MapViewImpl mapView) {
+ positionDrawer.drawPosition(canvas, projection);
+ scaleDrawer.drawScale(canvas, mapView);
+ }
+
+ @Override
+ public OverlayImpl getOverlayImpl() {
+ return this.ovlImpl;
+ }
+
+ public ArrayList<Location> getHistory() {
+ return positionDrawer.getHistory();
+ }
+
+ public void setHistory(ArrayList<Location> history) {
+ positionDrawer.setHistory(history);
+ }
+}
diff --git a/main/src/cgeo/geocaching/maps/PositionOverlay.java b/main/src/cgeo/geocaching/maps/PositionDrawer.java
index b371eae..1a5dcaf 100644
--- a/main/src/cgeo/geocaching/maps/PositionOverlay.java
+++ b/main/src/cgeo/geocaching/maps/PositionDrawer.java
@@ -2,12 +2,9 @@ package cgeo.geocaching.maps;
import cgeo.geocaching.R;
import cgeo.geocaching.geopoint.Geopoint;
-import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
import cgeo.geocaching.maps.interfaces.MapItemFactory;
import cgeo.geocaching.maps.interfaces.MapProjectionImpl;
-import cgeo.geocaching.maps.interfaces.MapViewImpl;
-import cgeo.geocaching.maps.interfaces.OverlayImpl;
import cgeo.geocaching.settings.Settings;
import android.app.Activity;
@@ -23,7 +20,8 @@ import android.location.Location;
import java.util.ArrayList;
-public class PositionOverlay implements GeneralOverlay {
+public class PositionDrawer {
+
private Location coordinates = null;
private GeoPointImpl location = null;
private float heading = 0f;
@@ -39,47 +37,14 @@ public class PositionOverlay implements GeneralOverlay {
private PaintFlagsDrawFilter remfil = null;
private PositionHistory positionHistory = new PositionHistory();
private Activity activity;
- private MapItemFactory mapItemFactory = null;
- private OverlayImpl ovlImpl = null;
+ private MapItemFactory mapItemFactory;
- public PositionOverlay(Activity activity, OverlayImpl ovlImpl) {
+ public PositionDrawer(Activity activity) {
this.activity = activity;
this.mapItemFactory = Settings.getMapProvider().getMapItemFactory();
- this.ovlImpl = ovlImpl;
- }
-
- public void setCoordinates(Location coordinatesIn) {
- coordinates = coordinatesIn;
- location = mapItemFactory.getGeoPointBase(new Geopoint(coordinates));
- }
-
- public Location getCoordinates() {
- return coordinates;
- }
-
- public void setHeading(float bearingNow) {
- heading = bearingNow;
- }
-
- public float getHeading() {
- return heading;
- }
-
- @Override
- public void drawOverlayBitmap(Canvas canvas, Point drawPosition,
- MapProjectionImpl projection, byte drawZoomLevel) {
-
- drawInternal(canvas, projection);
- }
-
- @Override
- public void draw(Canvas canvas, MapViewImpl mapView, boolean shadow) {
-
- drawInternal(canvas, mapView.getMapProjection());
}
- private void drawInternal(Canvas canvas, MapProjectionImpl projection) {
-
+ void drawPosition(Canvas canvas, MapProjectionImpl projection) {
if (coordinates == null || location == null) {
return;
}
@@ -194,13 +159,6 @@ public class PositionOverlay implements GeneralOverlay {
canvas.drawBitmap(arrow, matrix, null);
canvas.setDrawFilter(remfil);
-
- //super.draw(canvas, mapView, shadow);
- }
-
- @Override
- public OverlayImpl getOverlayImpl() {
- return this.ovlImpl;
}
public ArrayList<Location> getHistory() {
@@ -210,4 +168,22 @@ public class PositionOverlay implements GeneralOverlay {
public void setHistory(ArrayList<Location> history) {
positionHistory.setHistory(history);
}
+
+ public void setHeading(float bearingNow) {
+ heading = bearingNow;
+ }
+
+ public float getHeading() {
+ return heading;
+ }
+
+ public void setCoordinates(Location coordinatesIn) {
+ coordinates = coordinatesIn;
+ location = mapItemFactory.getGeoPointBase(new Geopoint(coordinates));
+ }
+
+ public Location getCoordinates() {
+ return coordinates;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/maps/ScaleOverlay.java b/main/src/cgeo/geocaching/maps/ScaleDrawer.java
index bee6acf..fb46408 100644
--- a/main/src/cgeo/geocaching/maps/ScaleOverlay.java
+++ b/main/src/cgeo/geocaching/maps/ScaleDrawer.java
@@ -2,11 +2,8 @@ package cgeo.geocaching.maps;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Units;
-import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
-import cgeo.geocaching.maps.interfaces.MapProjectionImpl;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
-import cgeo.geocaching.maps.interfaces.OverlayImpl;
import org.apache.commons.lang3.tuple.ImmutablePair;
@@ -14,46 +11,29 @@ import android.app.Activity;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Paint;
-import android.graphics.Point;
import android.graphics.Typeface;
import android.util.DisplayMetrics;
-public class ScaleOverlay implements GeneralOverlay {
-
+public class ScaleDrawer {
private static final double SCALE_WIDTH_FACTOR = 1.0 / 2.5;
private Paint scale = null;
private Paint scaleShadow = null;
private BlurMaskFilter blur = null;
private float pixelDensity = 0;
- private OverlayImpl ovlImpl = null;
-
- public ScaleOverlay(Activity activity, OverlayImpl overlayImpl) {
- this.ovlImpl = overlayImpl;
+ public ScaleDrawer(Activity activity) {
DisplayMetrics metrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
pixelDensity = metrics.density;
}
- @Override
- public void drawOverlayBitmap(Canvas canvas, Point drawPosition,
- MapProjectionImpl projection, byte drawZoomLevel) {
- drawInternal(canvas, getOverlayImpl().getMapViewImpl());
- }
-
- @Override
- public void draw(Canvas canvas, MapViewImpl mapView, boolean shadow) {
- drawInternal(canvas, mapView);
- }
-
static private double keepSignificantDigit(final double distance) {
final double scale = Math.pow(10, Math.floor(Math.log10(distance)));
return scale * Math.floor(distance / scale);
}
- private void drawInternal(Canvas canvas, MapViewImpl mapView) {
-
+ void drawScale(Canvas canvas, MapViewImpl mapView) {
final double span = mapView.getLongitudeSpan() / 1e6;
final GeoPointImpl center = mapView.getMapViewCenter();
@@ -109,8 +89,4 @@ public class ScaleOverlay implements GeneralOverlay {
canvas.drawText(String.format(formatString, distanceRound) + " " + scaled.right, (float) (pixels - (10 * pixelDensity)), (bottom - (10 * pixelDensity)), scale);
}
- @Override
- public OverlayImpl getOverlayImpl() {
- return ovlImpl;
- }
}
diff --git a/main/src/cgeo/geocaching/maps/google/GoogleMapView.java b/main/src/cgeo/geocaching/maps/google/GoogleMapView.java
index 740c944..d02e3c2 100644
--- a/main/src/cgeo/geocaching/maps/google/GoogleMapView.java
+++ b/main/src/cgeo/geocaching/maps/google/GoogleMapView.java
@@ -4,8 +4,7 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import cgeo.geocaching.geopoint.Viewport;
import cgeo.geocaching.maps.CachesOverlay;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
import cgeo.geocaching.maps.interfaces.MapControllerImpl;
@@ -13,13 +12,13 @@ import cgeo.geocaching.maps.interfaces.MapProjectionImpl;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OnMapDragListener;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
-import cgeo.geocaching.maps.interfaces.OverlayImpl.OverlayType;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.Log;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
+
import org.apache.commons.lang3.reflect.MethodUtils;
import android.app.Activity;
@@ -126,19 +125,11 @@ public class GoogleMapView extends MapView implements MapViewImpl {
}
@Override
- public PositionOverlay createAddPositionOverlay(Activity activity) {
-
- GoogleOverlay ovl = new GoogleOverlay(activity, OverlayType.PositionOverlay);
- getOverlays().add(ovl);
- return (PositionOverlay) ovl.getBase();
- }
-
- @Override
- public ScaleOverlay createAddScaleOverlay(Activity activity) {
+ public PositionAndScaleOverlay createAddPositionAndScaleOverlay(Activity activity) {
- GoogleOverlay ovl = new GoogleOverlay(activity, OverlayType.ScaleOverlay);
+ GoogleOverlay ovl = new GoogleOverlay(activity);
getOverlays().add(ovl);
- return (ScaleOverlay) ovl.getBase();
+ return (PositionAndScaleOverlay) ovl.getBase();
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/google/GoogleOverlay.java b/main/src/cgeo/geocaching/maps/google/GoogleOverlay.java
index bf4f606..e937773 100644
--- a/main/src/cgeo/geocaching/maps/google/GoogleOverlay.java
+++ b/main/src/cgeo/geocaching/maps/google/GoogleOverlay.java
@@ -1,7 +1,6 @@
package cgeo.geocaching.maps.google;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
@@ -17,20 +16,11 @@ import java.util.concurrent.locks.ReentrantLock;
public class GoogleOverlay extends Overlay implements OverlayImpl {
- private GeneralOverlay overlayBase = null;
+ private PositionAndScaleOverlay overlayBase = null;
private Lock lock = new ReentrantLock();
- public GoogleOverlay(Activity activityIn, OverlayType ovlType) {
- switch (ovlType) {
- case PositionOverlay:
- overlayBase = new PositionOverlay(activityIn, this);
- break;
- case ScaleOverlay:
- overlayBase = new ScaleOverlay(activityIn, this);
- break;
- default:
- throw new IllegalArgumentException();
- }
+ public GoogleOverlay(Activity activityIn) {
+ overlayBase = new PositionAndScaleOverlay(activityIn, this);
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java b/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java
index 5481891..cb7ddc6 100644
--- a/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java
+++ b/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java
@@ -2,8 +2,7 @@ package cgeo.geocaching.maps.interfaces;
import cgeo.geocaching.geopoint.Viewport;
import cgeo.geocaching.maps.CachesOverlay;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import android.app.Activity;
import android.content.Context;
@@ -47,9 +46,7 @@ public interface MapViewImpl {
CachesOverlay createAddMapOverlay(Context context, Drawable drawable);
- ScaleOverlay createAddScaleOverlay(Activity activity);
-
- PositionOverlay createAddPositionOverlay(Activity activity);
+ PositionAndScaleOverlay createAddPositionAndScaleOverlay(Activity activity);
void setMapSource();
diff --git a/main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java b/main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java
index a17b5fb..0984755 100644
--- a/main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java
+++ b/main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java
@@ -6,11 +6,6 @@ package cgeo.geocaching.maps.interfaces;
*/
public interface OverlayImpl {
- public enum OverlayType {
- PositionOverlay,
- ScaleOverlay
- }
-
void lock();
void unlock();
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java
index dc4e82c..78aa47d 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java
@@ -3,8 +3,7 @@ package cgeo.geocaching.maps.mapsforge;
import cgeo.geocaching.R;
import cgeo.geocaching.geopoint.Viewport;
import cgeo.geocaching.maps.CachesOverlay;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
import cgeo.geocaching.maps.interfaces.MapControllerImpl;
@@ -13,7 +12,6 @@ import cgeo.geocaching.maps.interfaces.MapSource;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OnMapDragListener;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
-import cgeo.geocaching.maps.interfaces.OverlayImpl.OverlayType;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.Log;
@@ -111,17 +109,10 @@ public class MapsforgeMapView extends MapView implements MapViewImpl {
}
@Override
- public PositionOverlay createAddPositionOverlay(Activity activity) {
- MapsforgeOverlay ovl = new MapsforgeOverlay(activity, OverlayType.PositionOverlay);
+ public PositionAndScaleOverlay createAddPositionAndScaleOverlay(Activity activity) {
+ MapsforgeOverlay ovl = new MapsforgeOverlay(activity);
getOverlays().add(ovl);
- return (PositionOverlay) ovl.getBase();
- }
-
- @Override
- public ScaleOverlay createAddScaleOverlay(Activity activity) {
- MapsforgeOverlay ovl = new MapsforgeOverlay(activity, OverlayType.ScaleOverlay);
- getOverlays().add(ovl);
- return (ScaleOverlay) ovl.getBase();
+ return (PositionAndScaleOverlay) ovl.getBase();
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java
index f61e523..74a8601 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java
@@ -1,7 +1,6 @@
package cgeo.geocaching.maps.mapsforge;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
@@ -18,21 +17,11 @@ import java.util.concurrent.locks.ReentrantLock;
public class MapsforgeOverlay extends Overlay implements OverlayImpl {
- private GeneralOverlay overlayBase = null;
+ private PositionAndScaleOverlay overlayBase = null;
private Lock lock = new ReentrantLock();
- public MapsforgeOverlay(Activity activityIn, OverlayImpl.OverlayType ovlType) {
-
- switch (ovlType) {
- case PositionOverlay:
- overlayBase = new PositionOverlay(activityIn, this);
- break;
- case ScaleOverlay:
- overlayBase = new ScaleOverlay(activityIn, this);
- break;
- default:
- throw new IllegalStateException();
- }
+ public MapsforgeOverlay(Activity activityIn) {
+ overlayBase = new PositionAndScaleOverlay(activityIn, this);
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java
index a074e70..c741a31 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java
@@ -1,11 +1,9 @@
package cgeo.geocaching.maps.mapsforge.v024;
import cgeo.geocaching.R;
-import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.geopoint.Viewport;
import cgeo.geocaching.maps.CachesOverlay;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
import cgeo.geocaching.maps.interfaces.MapControllerImpl;
@@ -13,7 +11,7 @@ import cgeo.geocaching.maps.interfaces.MapProjectionImpl;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OnMapDragListener;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
-import cgeo.geocaching.maps.interfaces.OverlayImpl.OverlayType;
+import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.utils.Log;
import org.mapsforge.android.mapsold.GeoPoint;
@@ -102,17 +100,10 @@ public class MapsforgeMapView024 extends MapView implements MapViewImpl {
}
@Override
- public PositionOverlay createAddPositionOverlay(Activity activity) {
- MapsforgeOverlay ovl = new MapsforgeOverlay(activity, OverlayType.PositionOverlay);
- getOverlays().add(ovl);
- return (PositionOverlay) ovl.getBase();
- }
-
- @Override
- public ScaleOverlay createAddScaleOverlay(Activity activity) {
- MapsforgeOverlay ovl = new MapsforgeOverlay(activity, OverlayType.ScaleOverlay);
+ public PositionAndScaleOverlay createAddPositionAndScaleOverlay(Activity activity) {
+ MapsforgeOverlay ovl = new MapsforgeOverlay(activity);
getOverlays().add(ovl);
- return (ScaleOverlay) ovl.getBase();
+ return (PositionAndScaleOverlay) ovl.getBase();
}
@Override
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java
index 8c9e0c3..655e0b9 100644
--- a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java
+++ b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java
@@ -1,7 +1,6 @@
package cgeo.geocaching.maps.mapsforge.v024;
-import cgeo.geocaching.maps.PositionOverlay;
-import cgeo.geocaching.maps.ScaleOverlay;
+import cgeo.geocaching.maps.PositionAndScaleOverlay;
import cgeo.geocaching.maps.interfaces.GeneralOverlay;
import cgeo.geocaching.maps.interfaces.MapViewImpl;
import cgeo.geocaching.maps.interfaces.OverlayImpl;
@@ -18,21 +17,11 @@ import java.util.concurrent.locks.ReentrantLock;
public class MapsforgeOverlay extends Overlay implements OverlayImpl {
- private GeneralOverlay overlayBase = null;
+ private PositionAndScaleOverlay overlayBase = null;
private Lock lock = new ReentrantLock();
- public MapsforgeOverlay(Activity activityIn, OverlayImpl.OverlayType ovlType) {
-
- switch (ovlType) {
- case PositionOverlay:
- overlayBase = new PositionOverlay(activityIn, this);
- break;
- case ScaleOverlay:
- overlayBase = new ScaleOverlay(activityIn, this);
- break;
- default:
- throw new IllegalStateException();
- }
+ public MapsforgeOverlay(Activity activityIn) {
+ overlayBase = new PositionAndScaleOverlay(activityIn, this);
}
@Override