diff options
Diffstat (limited to 'main/src/cgeo/geocaching/maps/CGeoMap.java')
| -rw-r--r-- | main/src/cgeo/geocaching/maps/CGeoMap.java | 33 |
1 files changed, 14 insertions, 19 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) { |
