From 18cd3dd7502b0682a2dfb0041fc7cb22d1746167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=83=C2=A2=C3=82=C2=80=C3=82=C2=9Cosana=C3=83=C2=A2?= =?UTF-8?q?=C3=82=C2=80=C3=82=C2=9D?= Date: Wed, 24 Oct 2018 12:52:31 -0400 Subject: [android] consolitdated OfflineRegionDefinitions --- .../java/com/mapbox/mapboxsdk/maps/MapView.java | 35 +++-------------- .../mapboxsdk/module/telemetry/TelemetryImpl.java | 24 +++--------- .../offline/OfflineGeometryRegionDefinition.java | 13 +++++-- .../mapboxsdk/offline/OfflineRegionDefinition.java | 45 ++++++++++++++++++++++ .../OfflineTilePyramidRegionDefinition.java | 13 +++++-- 5 files changed, 75 insertions(+), 55 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index ea1ad02530..a5e354e18a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -34,16 +34,13 @@ import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.camera.CameraUpdateFactory; import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.constants.Style; -import com.mapbox.mapboxsdk.geometry.LatLng; import com.mapbox.mapboxsdk.location.LocationComponent; import com.mapbox.mapboxsdk.maps.renderer.MapRenderer; import com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer; import com.mapbox.mapboxsdk.maps.renderer.textureview.TextureViewMapRenderer; import com.mapbox.mapboxsdk.maps.widgets.CompassView; import com.mapbox.mapboxsdk.net.ConnectivityReceiver; -import com.mapbox.mapboxsdk.offline.OfflineGeometryRegionDefinition; import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition; -import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition; import com.mapbox.mapboxsdk.storage.FileSource; import com.mapbox.mapboxsdk.utils.BitmapUtils; @@ -553,21 +550,15 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { return; } - if (definition instanceof OfflineTilePyramidRegionDefinition) { - setOfflineTilePyramidRegionDefinition((OfflineTilePyramidRegionDefinition) definition); - } else if (definition instanceof OfflineGeometryRegionDefinition) { - setOfflineGeometryRegionDefinition((OfflineGeometryRegionDefinition) definition); - } else { - throw new UnsupportedOperationException("OfflineRegionDefintion instance not supported"); - } - } + double minZoom = definition.getMinZoom(); + double maxZoom = definition.getMaxZoom(); - private void setOfflineRegionDefinition(String styleUrl, LatLng cameraTarget, double minZoom, double maxZoom) { CameraPosition cameraPosition = new CameraPosition.Builder() - .target(cameraTarget) + .target(definition.getBounds().getCenter()) .zoom(minZoom) .build(); - setStyleUrl(styleUrl); + setStyleUrl(definition.getStyleURL()); + if (!isMapInitialized()) { mapboxMapOptions.camera(cameraPosition); mapboxMapOptions.minZoomPreference(minZoom); @@ -579,22 +570,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { mapboxMap.setMaxZoomPreference(maxZoom); } - private void setOfflineTilePyramidRegionDefinition(OfflineTilePyramidRegionDefinition regionDefinition) { - setOfflineRegionDefinition(regionDefinition.getStyleURL(), - regionDefinition.getBounds().getCenter(), - regionDefinition.getMinZoom(), - regionDefinition.getMaxZoom() - ); - } - - private void setOfflineGeometryRegionDefinition(OfflineGeometryRegionDefinition regionDefinition) { - setOfflineRegionDefinition(regionDefinition.getStyleURL(), - regionDefinition.getBounds().getCenter(), - regionDefinition.getMinZoom(), - regionDefinition.getMaxZoom() - ); - } - // // Rendering // diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java index e8e0504157..4630f4fa6a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java @@ -13,9 +13,7 @@ import com.mapbox.mapboxsdk.MapStrictMode; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.log.Logger; import com.mapbox.mapboxsdk.maps.TelemetryDefinition; -import com.mapbox.mapboxsdk.offline.OfflineGeometryRegionDefinition; import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition; -import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition; import java.lang.reflect.Field; @@ -114,22 +112,12 @@ public class TelemetryImpl implements TelemetryDefinition { @Override public void onCreateOfflineRegion(OfflineRegionDefinition offlineDefinition) { - MapEventFactory mapEventFactory = new MapEventFactory(); - - Event mapOfflineEvent; - if (offlineDefinition instanceof OfflineTilePyramidRegionDefinition) { - OfflineTilePyramidRegionDefinition tileDefinition = - (OfflineTilePyramidRegionDefinition)offlineDefinition; - mapOfflineEvent = mapEventFactory.buildMapOfflineEvent( - tileDefinition.getMinZoom(), tileDefinition.getMaxZoom(), "bounds", - new String[]{tileDefinition.getStyleURL()}); - } else { - OfflineGeometryRegionDefinition geometryDefinition = - (OfflineGeometryRegionDefinition) offlineDefinition; - mapOfflineEvent = mapEventFactory.buildMapOfflineEvent( - geometryDefinition.getMinZoom(), geometryDefinition.getMaxZoom(), geometryDefinition.getGeometry().type(), - new String[]{geometryDefinition.getStyleURL()}); - } + telemetry.push( + new MapEventFactory().buildMapOfflineEvent( + offlineDefinition.getMinZoom(), + offlineDefinition.getMaxZoom(), + offlineDefinition.getType(), + new String[]{offlineDefinition.getStyleURL()})); } /** diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineGeometryRegionDefinition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineGeometryRegionDefinition.java index 73e277dda3..97225e7283 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineGeometryRegionDefinition.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineGeometryRegionDefinition.java @@ -66,10 +66,7 @@ public class OfflineGeometryRegionDefinition implements OfflineRegionDefinition, this.pixelRatio = parcel.readFloat(); } - /* - * Getters - */ - + @Override public String getStyleURL() { return styleURL; } @@ -93,18 +90,26 @@ public class OfflineGeometryRegionDefinition implements OfflineRegionDefinition, return LatLngBounds.from(bbox[3], bbox[2], bbox[1], bbox[0]); } + @Override public double getMinZoom() { return minZoom; } + @Override public double getMaxZoom() { return maxZoom; } + @Override public float getPixelRatio() { return pixelRatio; } + @Override + public String getType() { + return "shaperegion"; + } + /* * Parceable */ diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegionDefinition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegionDefinition.java index d1b18445fa..2631f74ccf 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegionDefinition.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegionDefinition.java @@ -12,6 +12,51 @@ import com.mapbox.mapboxsdk.geometry.LatLngBounds; @Keep public interface OfflineRegionDefinition { + /** + * Gets the bounds of the OfflineRegion. + * + * @return the bounds of the OfflineRegion. + */ LatLngBounds getBounds(); + /** + * Returns the map style url of the OfflineRegion. + * + * @return The URL of the map style. + * @since 7.0.0 + */ + String getStyleURL(); + + /** + * Gets the minimum zoom level the OfflineRegion map can be displayed at. + * + * @return The minimum zoom level. + * @since 7.0.0 + */ + double getMinZoom(); + + /** + * Gets the maximum zoom level the OfflineRegion map can be displayed at. + * + * @return The maximum zoom level. + * @since 7.0.0 + */ + double getMaxZoom(); + + /** + * Gets the pixel ratio of the OfflineRegion map. + * + * @return The pixel ratio of the OfflineRegion map. + * @since 7.0.0 + */ + float getPixelRatio(); + + /** + * Gest the type of the OfflineRegionDefinition for telemetry ("tileregion", "shaperegion"). + * + * @return The type of the OfflineRegionDefinition. + * @since 7.0.0 + */ + String getType(); + } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineTilePyramidRegionDefinition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineTilePyramidRegionDefinition.java index b0d12859ed..7458481d71 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineTilePyramidRegionDefinition.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineTilePyramidRegionDefinition.java @@ -67,30 +67,37 @@ public class OfflineTilePyramidRegionDefinition implements OfflineRegionDefiniti this.pixelRatio = parcel.readFloat(); } - /* - * Getters - */ + @Override public String getStyleURL() { return styleURL; } + @Override public LatLngBounds getBounds() { return bounds; } + @Override public double getMinZoom() { return minZoom; } + @Override public double getMaxZoom() { return maxZoom; } + @Override public float getPixelRatio() { return pixelRatio; } + @Override + public String getType() { + return "tileregion"; + } + /* * Parceable */ -- cgit v1.2.1