diff options
Diffstat (limited to 'main/src/cgeo/geocaching/maps')
11 files changed, 32 insertions, 95 deletions
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java index c98ba72..1d8e1b4 100644 --- a/main/src/cgeo/geocaching/maps/CGeoMap.java +++ b/main/src/cgeo/geocaching/maps/CGeoMap.java @@ -38,12 +38,13 @@ import cgeo.geocaching.utils.CancellableHandler; import cgeo.geocaching.utils.GeoDirHandler; import cgeo.geocaching.utils.LeastRecentlyUsedSet; import cgeo.geocaching.utils.Log; -import cgeo.geocaching.utils.RunnableWithArgument; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.HashCodeBuilder; +import rx.functions.Action1; + import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; @@ -289,8 +290,6 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto waitDialog.dismiss(); waitDialog.setOnCancelListener(null); } - - geoDirUpdate.startDir(); } } @@ -299,8 +298,6 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto if (loadDetailsThread != null) { loadDetailsThread.stopIt(); } - - geoDirUpdate.startDir(); } } @@ -466,7 +463,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto prepareFilterBar(); - if (!app.isLiveMapHintShown() && !Settings.getHideLiveMapHint()) { + if (!app.isLiveMapHintShownInThisSession() && !Settings.getHideLiveMapHint() && Settings.getLiveMapHintShowCount() <= 3) { LiveMapInfoDialogBuilder.create(activity).show(); } } @@ -495,7 +492,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto public void onResume() { super.onResume(); - addGeoDirObservers(); + geoDirUpdate.startGeoAndDir(); if (!CollectionUtils.isEmpty(dirtyCaches)) { for (String geocode : dirtyCaches) { @@ -515,18 +512,10 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto startTimer(); } - private void addGeoDirObservers() { - geoDirUpdate.startGeoAndDir(); - } - - private void deleteGeoDirObservers() { - geoDirUpdate.stopGeoAndDir(); - } - @Override public void onPause() { stopTimer(); - deleteGeoDirObservers(); + geoDirUpdate.stopGeoAndDir(); savePrefs(); if (mapView != null) { @@ -661,9 +650,9 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto if (Settings.getChooseList()) { // let user select list to store cache in new StoredList.UserInterface(activity).promptForListSelection(R.string.list_title, - new RunnableWithArgument<Integer>() { + new Action1<Integer>() { @Override - public void run(final Integer selectedListId) { + public void call(final Integer selectedListId) { storeCaches(geocodes, selectedListId); } }, true, StoredList.TEMPORARY_LIST_ID); @@ -800,7 +789,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto * @return true if a restart is needed, false otherwise */ private boolean changeMapSource(final MapSource mapSource) { - final boolean restartRequired = !MapProviderFactory.isSameActivity(Settings.getMapSource(), mapSource); + final boolean restartRequired = !MapProviderFactory.isSameActivity(MapProviderFactory.getMapSource(currentSourceId), mapSource); Settings.setMapSource(mapSource); currentSourceId = mapSource.getNumericalId(); @@ -898,7 +887,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto private long timeLastPositionOverlayCalculation = 0; @Override - protected void updateGeoData(final IGeoData geo) { + public void updateGeoData(final IGeoData geo) { if (geo.isPseudoLocation()) { locationValid = false; } else { @@ -994,7 +983,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto public synchronized void startTimer() { if (coordsIntent != null) { // display just one point - (new DisplayPointThread()).start(); + displayPoint(coordsIntent); } else { // start timer stopTimer(); @@ -1182,7 +1171,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto } } } - final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport.resize(0.8), tokens); + final SearchResult searchResult = ConnectorFactory.searchByViewport(viewport.resize(0.8), tokens).toBlockingObservable().single(); downloaded = true; Set<Geocache> result = searchResult.getCachesFromSearchResult(LoadFlags.LOAD_CACHE_OR_DB); @@ -1271,32 +1260,16 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto } } - /** - * Thread to display one point. Started on opening if in single mode. - */ - private class DisplayPointThread extends Thread { + private void displayPoint(final Geopoint coords) { + final Waypoint waypoint = new Waypoint("some place", waypointTypeIntent != null ? waypointTypeIntent : WaypointType.WAYPOINT, false); + waypoint.setCoords(coords); - @Override - public void run() { - if (mapView == null || caches == null) { - return; - } - - if (coordsIntent != null) { - final Waypoint waypoint = new Waypoint("some place", waypointTypeIntent != null ? waypointTypeIntent : WaypointType.WAYPOINT, false); - waypoint.setCoords(coordsIntent); - - final CachesOverlayItemImpl item = getWaypointItem(waypoint); - overlayCaches.updateItems(item); - displayHandler.sendEmptyMessage(INVALIDATE_MAP); + final CachesOverlayItemImpl item = getWaypointItem(waypoint); + overlayCaches.updateItems(item); + displayHandler.sendEmptyMessage(INVALIDATE_MAP); + displayHandler.sendEmptyMessage(UPDATE_TITLE); - cachesCnt = 1; - } else { - cachesCnt = 0; - } - - displayHandler.sendEmptyMessage(UPDATE_TITLE); - } + cachesCnt = 1; } private static abstract class DoRunnable implements Runnable { @@ -1343,8 +1316,6 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto if (loadDetailsThread != null) { loadDetailsThread.stopIt(); } - - geoDirUpdate.startDir(); } catch (Exception e) { Log.e("CGeoMap.storeCaches.onCancel", e); } @@ -1392,8 +1363,6 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto return; } - deleteGeoDirObservers(); - for (final String geocode : geocodes) { try { if (handler.isCancelled()) { @@ -1417,7 +1386,6 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto // we're done handler.sendEmptyMessage(FINISHED_LOADING_DETAILS); - addGeoDirObservers(); } } @@ -1609,7 +1577,7 @@ public class CGeoMap extends AbstractMap implements OnMapDragListener, ViewFacto } private CachesOverlayItemImpl getCacheItem(final Geocache cache) { - final CachesOverlayItemImpl item = mapItemFactory.getCachesOverlayItem(cache, cache.getType().applyDistanceRule()); + final CachesOverlayItemImpl item = mapItemFactory.getCachesOverlayItem(cache, cache.applyDistanceRule()); final int hashcode = new HashCodeBuilder() .append(cache.isReliableLatLon()) diff --git a/main/src/cgeo/geocaching/maps/MapProviderFactory.java b/main/src/cgeo/geocaching/maps/MapProviderFactory.java index 2e43e19..b928a1e 100644 --- a/main/src/cgeo/geocaching/maps/MapProviderFactory.java +++ b/main/src/cgeo/geocaching/maps/MapProviderFactory.java @@ -1,7 +1,7 @@ package cgeo.geocaching.maps; -import cgeo.geocaching.R; import cgeo.geocaching.CgeoApplication; +import cgeo.geocaching.R; import cgeo.geocaching.maps.google.GoogleMapProvider; import cgeo.geocaching.maps.interfaces.MapProvider; import cgeo.geocaching.maps.interfaces.MapSource; diff --git a/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java b/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java index 3339650..d14c687 100644 --- a/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java +++ b/main/src/cgeo/geocaching/maps/google/GoogleCacheOverlay.java @@ -77,11 +77,6 @@ public class GoogleCacheOverlay extends ItemizedOverlay<GoogleCacheOverlayItem> } @Override - public Drawable superBoundCenter(Drawable markerIn) { - return ItemizedOverlay.boundCenter(markerIn); - } - - @Override public Drawable superBoundCenterBottom(Drawable marker) { return ItemizedOverlay.boundCenterBottom(marker); } diff --git a/main/src/cgeo/geocaching/maps/google/GoogleMapProvider.java b/main/src/cgeo/geocaching/maps/google/GoogleMapProvider.java index cb95b2c..38d7d96 100644 --- a/main/src/cgeo/geocaching/maps/google/GoogleMapProvider.java +++ b/main/src/cgeo/geocaching/maps/google/GoogleMapProvider.java @@ -1,7 +1,7 @@ package cgeo.geocaching.maps.google; -import cgeo.geocaching.R; import cgeo.geocaching.CgeoApplication; +import cgeo.geocaching.R; import cgeo.geocaching.maps.AbstractMapProvider; import cgeo.geocaching.maps.AbstractMapSource; import cgeo.geocaching.maps.interfaces.MapItemFactory; diff --git a/main/src/cgeo/geocaching/maps/google/GoogleMapView.java b/main/src/cgeo/geocaching/maps/google/GoogleMapView.java index d02e3c2..610dbe1 100644 --- a/main/src/cgeo/geocaching/maps/google/GoogleMapView.java +++ b/main/src/cgeo/geocaching/maps/google/GoogleMapView.java @@ -11,15 +11,14 @@ import cgeo.geocaching.maps.interfaces.MapControllerImpl; 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.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 org.eclipse.jdt.annotation.NonNull; import android.app.Activity; import android.content.Context; @@ -54,7 +53,7 @@ public class GoogleMapView extends MapView implements MapViewImpl { } @Override - public void draw(Canvas canvas) { + public void draw(final Canvas canvas) { try { if (getMapZoomLevel() > 22) { // to avoid too close zoom level (mostly on Samsung Galaxy S series) getController().setZoom(22); @@ -91,6 +90,7 @@ public class GoogleMapView extends MapView implements MapViewImpl { } @Override + @NonNull public GeoPointImpl getMapViewCenter() { GeoPoint point = getMapCenter(); return new GoogleGeoPoint(point.getLatitudeE6(), point.getLongitudeE6()); @@ -102,11 +102,6 @@ public class GoogleMapView extends MapView implements MapViewImpl { } @Override - public void addOverlay(OverlayImpl ovl) { - getOverlays().add((Overlay) ovl); - } - - @Override public void clearOverlays() { getOverlays().clear(); } diff --git a/main/src/cgeo/geocaching/maps/interfaces/ItemizedOverlayImpl.java b/main/src/cgeo/geocaching/maps/interfaces/ItemizedOverlayImpl.java index 90c5b31..ee61f12 100644 --- a/main/src/cgeo/geocaching/maps/interfaces/ItemizedOverlayImpl.java +++ b/main/src/cgeo/geocaching/maps/interfaces/ItemizedOverlayImpl.java @@ -18,8 +18,6 @@ public interface ItemizedOverlayImpl extends OverlayImpl { void superSetLastFocusedItemIndex(int i); - Drawable superBoundCenter(Drawable markerIn); - Drawable superBoundCenterBottom(Drawable marker); boolean superOnTap(int index); diff --git a/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java b/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java index cb7ddc6..5ae8e15 100644 --- a/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java +++ b/main/src/cgeo/geocaching/maps/interfaces/MapViewImpl.java @@ -4,6 +4,8 @@ import cgeo.geocaching.geopoint.Viewport; import cgeo.geocaching.maps.CachesOverlay; import cgeo.geocaching.maps.PositionAndScaleOverlay; +import org.eclipse.jdt.annotation.NonNull; + import android.app.Activity; import android.content.Context; import android.graphics.drawable.Drawable; @@ -22,12 +24,11 @@ public interface MapViewImpl { void clearOverlays(); - void addOverlay(OverlayImpl ovl); - MapControllerImpl getMapController(); void destroyDrawingCache(); + @NonNull GeoPointImpl getMapViewCenter(); int getLatitudeSpan(); @@ -75,7 +76,7 @@ public interface MapViewImpl { /** * Indicates if the current map view supports different themes * for map rendering - * + * * @return true - supports custom themes, false - does not support custom themes */ boolean hasMapThemes(); diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java index 9e14e36..b9e40d7 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeCacheOverlay.java @@ -70,11 +70,6 @@ public class MapsforgeCacheOverlay extends ItemizedOverlay<MapsforgeCacheOverlay } @Override - public Drawable superBoundCenter(Drawable markerIn) { - return ItemizedOverlay.boundCenter(markerIn); - } - - @Override public Drawable superBoundCenterBottom(Drawable marker) { return ItemizedOverlay.boundCenterBottom(marker); } diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java index 78aa47d..e993548 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapView.java @@ -11,7 +11,6 @@ import cgeo.geocaching.maps.interfaces.MapProjectionImpl; 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.settings.Settings; import cgeo.geocaching.utils.Log; @@ -86,11 +85,6 @@ public class MapsforgeMapView extends MapView implements MapViewImpl { } @Override - public void addOverlay(OverlayImpl ovl) { - getOverlays().add((Overlay) ovl); - } - - @Override public void clearOverlays() { getOverlays().clear(); } @@ -229,7 +223,7 @@ public class MapsforgeMapView extends MapView implements MapViewImpl { @Override public void setMapTheme() { String customRenderTheme = Settings.getCustomRenderThemeFilePath(); - if (!StringUtils.isEmpty(customRenderTheme)) { + if (StringUtils.isNotEmpty(customRenderTheme)) { try { setRenderTheme(new File(customRenderTheme)); } catch (FileNotFoundException e) { diff --git a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java index 30355fd..a8111ed 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeCacheOverlay.java @@ -70,11 +70,6 @@ public class MapsforgeCacheOverlay extends ItemizedOverlay<MapsforgeCacheOverlay } @Override - public Drawable superBoundCenter(Drawable markerIn) { - return ItemizedOverlay.boundCenter(markerIn); - } - - @Override public Drawable superBoundCenterBottom(Drawable marker) { return ItemizedOverlay.boundCenterBottom(marker); } diff --git a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java index c741a31..30caed5 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/v024/MapsforgeMapView024.java @@ -10,10 +10,10 @@ import cgeo.geocaching.maps.interfaces.MapControllerImpl; 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.settings.Settings; import cgeo.geocaching.utils.Log; +import org.eclipse.jdt.annotation.NonNull; import org.mapsforge.android.mapsold.GeoPoint; import org.mapsforge.android.mapsold.MapDatabase; import org.mapsforge.android.mapsold.MapView; @@ -66,6 +66,7 @@ public class MapsforgeMapView024 extends MapView implements MapViewImpl { } @Override + @NonNull public GeoPointImpl getMapViewCenter() { GeoPoint point = getMapCenter(); return new MapsforgeGeoPoint(point.getLatitudeE6(), point.getLongitudeE6()); @@ -77,11 +78,6 @@ public class MapsforgeMapView024 extends MapView implements MapViewImpl { } @Override - public void addOverlay(OverlayImpl ovl) { - getOverlays().add((Overlay) ovl); - } - - @Override public void clearOverlays() { getOverlays().clear(); } |
