aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/mapsforge/mfOverlay.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgeo/geocaching/mapsforge/mfOverlay.java')
-rw-r--r--src/cgeo/geocaching/mapsforge/mfOverlay.java24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/cgeo/geocaching/mapsforge/mfOverlay.java b/src/cgeo/geocaching/mapsforge/mfOverlay.java
index e015307..833d382 100644
--- a/src/cgeo/geocaching/mapsforge/mfOverlay.java
+++ b/src/cgeo/geocaching/mapsforge/mfOverlay.java
@@ -3,24 +3,40 @@ package cgeo.geocaching.mapsforge;
import org.mapsforge.android.maps.Overlay;
import org.mapsforge.android.maps.Projection;
+import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Point;
+import cgeo.geocaching.cgSettings;
+import cgeo.geocaching.mapcommon.cgMapMyOverlay;
+import cgeo.geocaching.mapcommon.cgOverlayScale;
import cgeo.geocaching.mapinterfaces.OverlayBase;
import cgeo.geocaching.mapinterfaces.OverlayImpl;
public class mfOverlay extends Overlay implements OverlayImpl {
- private OverlayBase overlayBase;
+ private OverlayBase overlayBase = null;
- public mfOverlay(OverlayBase overlayBaseIn) {
- overlayBase = overlayBaseIn;
+ public mfOverlay(Activity activityIn, cgSettings settingsIn, OverlayImpl.overlayType ovlType) {
+
+ switch (ovlType) {
+ case PositionOverlay:
+ overlayBase = new cgMapMyOverlay(settingsIn, activityIn, this);
+ break;
+ case ScaleOverlay:
+ overlayBase = new cgOverlayScale(activityIn, settingsIn, this);
+ }
}
@Override
protected void drawOverlayBitmap(Canvas canvas, Point drawPosition,
Projection projection, byte drawZoomLevel) {
- overlayBase.drawOverlayBitmap(canvas, drawPosition, new mfMapProjection(projection), drawZoomLevel);
+ if (overlayBase != null) {
+ overlayBase.drawOverlayBitmap(canvas, drawPosition, new mfMapProjection(projection), drawZoomLevel);
+ }
}
+ public OverlayBase getBase() {
+ return overlayBase;
+ }
}