[android] push a new mapofflineevent upon region creation (#12544)
This commit is contained in:
committed by
Osana Babayan
parent
90ccf22dec
commit
442e3f350f
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user