From f737632822795ef94f10aad18ee2238ccb27d772 Mon Sep 17 00:00:00 2001 From: Antonio Zugaldia Date: Fri, 3 Aug 2018 16:22:10 -0400 Subject: [android] push a new mapofflineevent upon region creation --- .../mapbox/mapboxsdk/maps/TelemetryDefinition.java | 4 ++++ .../mapboxsdk/module/telemetry/TelemetryImpl.java | 23 ++++++++++++++++++++++ .../mapbox/mapboxsdk/offline/OfflineManager.java | 9 +++++++++ platform/android/gradle/dependencies.gradle | 2 +- 4 files changed, 37 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..ea1fd7df08 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,6 @@ public interface TelemetryDefinition { * @return true if rotation session id was updated */ boolean setSessionIdRotationInterval(int interval); + + void onCreateMapOfflineRegion(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..58574dfc88 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 onCreateMapOfflineRegion(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..4e79a21cce 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 @@ -8,11 +8,14 @@ import android.os.Looper; import android.support.annotation.Keep; import android.support.annotation.NonNull; +import 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 +418,12 @@ public class OfflineManager { }); } }); + + TelemetryDefinition telemetry = Mapbox.getTelemetry(); + if (telemetry != null) { + LatLngBounds bounds = definition.getBounds(); + telemetry.onCreateMapOfflineRegion(definition); + } } /** diff --git a/platform/android/gradle/dependencies.gradle b/platform/android/gradle/dependencies.gradle index be1c8a75e5..ee1cb91853 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-SNAPSHOT', mapboxGestures : '0.2.0', supportLib : '27.1.1', constraintLayout: '1.1.2', -- cgit v1.2.1