From 442e3f350fdd0e6472335b23d6a47f56ebeb90fd Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Tue, 9 Oct 2018 13:40:41 -0400 Subject: [android] push a new mapofflineevent upon region creation (#12544) --- .../mapbox/mapboxsdk/maps/TelemetryDefinition.java | 9 +++++++++ .../mapboxsdk/module/telemetry/TelemetryImpl.java | 23 ++++++++++++++++++++++ .../mapbox/mapboxsdk/offline/OfflineManager.java | 8 ++++++++ platform/android/gradle/dependencies.gradle | 2 +- 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TelemetryDefinition.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TelemetryDefinition.java index 6e92e48a0c..3918c67129 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TelemetryDefinition.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TelemetryDefinition.java @@ -1,5 +1,7 @@ package com.mapbox.mapboxsdk.maps; +import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition; + /** * Definition of TelemetryImpl collection */ @@ -37,4 +39,11 @@ public interface TelemetryDefinition { * @return true if rotation session id was updated */ boolean setSessionIdRotationInterval(int interval); + + /** + * Register an end-user offline download event. + * + * @param offlineDefinition the offline region definition + */ + void onCreateOfflineRegion(OfflineRegionDefinition offlineDefinition); } 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 16a99a3272..e8e0504157 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,6 +13,9 @@ 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; @@ -109,6 +112,26 @@ public class TelemetryImpl implements TelemetryDefinition { return telemetry.updateSessionIdRotationInterval(new SessionInterval(interval)); } + @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()}); + } + } + /** * Set the debug logging state of telemetry. * diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java index cb9260b3cd..01258b917e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineManager.java @@ -10,9 +10,11 @@ import android.support.annotation.NonNull; import com.mapbox.mapboxsdk.LibraryLoader; import com.mapbox.mapboxsdk.MapStrictMode; +import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.R; import com.mapbox.mapboxsdk.geometry.LatLngBounds; import com.mapbox.mapboxsdk.log.Logger; +import com.mapbox.mapboxsdk.maps.TelemetryDefinition; import com.mapbox.mapboxsdk.net.ConnectivityReceiver; import com.mapbox.mapboxsdk.storage.FileSource; import com.mapbox.mapboxsdk.utils.FileUtils; @@ -415,6 +417,12 @@ public class OfflineManager { }); } }); + + TelemetryDefinition telemetry = Mapbox.getTelemetry(); + if (telemetry != null) { + LatLngBounds bounds = definition.getBounds(); + telemetry.onCreateOfflineRegion(definition); + } } /** diff --git a/platform/android/gradle/dependencies.gradle b/platform/android/gradle/dependencies.gradle index be1c8a75e5..21b6047f9e 100644 --- a/platform/android/gradle/dependencies.gradle +++ b/platform/android/gradle/dependencies.gradle @@ -9,7 +9,7 @@ ext { versions = [ mapboxServices : '3.4.1', - mapboxTelemetry : '3.2.1', + mapboxTelemetry : '3.3.0', mapboxGestures : '0.2.0', supportLib : '27.1.1', constraintLayout: '1.1.2', -- cgit v1.2.1