[android] push a new mapofflineevent upon region creation (#12544)

This commit is contained in:
Antonio Zugaldia
2018-10-09 13:40:41 -04:00
committed by Osana Babayan
parent 90ccf22dec
commit 442e3f350f
4 changed files with 41 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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.
*

View File

@@ -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);
}
}
/**