diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/src/cgeo/geocaching/maps/CGeoMap.java | 33 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/PositionAndScaleOverlay.java | 73 | ||||
| -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.java | 19 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/google/GoogleOverlay.java | 18 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java | 7 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/interfaces/OverlayImpl.java | 5 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/MapsforgeOverlay.java | 19 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java | 19 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeOverlay.java | 19 |
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 |
