summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2018-11-20 10:18:45 +0100
committerTobrun <tobrun.van.nuland@gmail.com>2018-11-20 10:32:25 +0100
commit5e352d06563d591acee53473aade2fad2c8352d7 (patch)
treed92b71a2bd85c44383607a8ec11eb2129a185ca1
parent425a3ade9ebbd874fc7172afdbfa91d861b49f92 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-expose-apibaseurl.tar.gz
[android] - expose setApiBaseUrl on telemetry definition, hook into setting api cn endpoint for maps and telemetry.upstream/tvn-expose-apibaseurl
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java10
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java12
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TelemetryDefinition.java47
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java26
4 files changed, 72 insertions, 23 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
index afd25f13fc..27c25f4367 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/constants/MapboxConstants.java
@@ -117,6 +117,16 @@ public class MapboxConstants {
*/
public static final String FRAG_ARG_MAPBOXMAPOPTIONS = "MapboxMapOptions";
+ /**
+ * CN base url API endpoint
+ */
+ public static final String URL_API_CN = "api.mapbox.cn";
+
+ /**
+ * CN base url events endpoint
+ */
+ public static final String URL_EVENTS_CN = "https://events.mapbox.cn";
+
// Save instance state keys
public static final String STATE_HAS_SAVED_STATE = "mapbox_savedState";
public static final String STATE_CAMERA_POSITION = "mapbox_cameraPosition";
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
index 58fc66407f..a97ed5979a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java
@@ -22,6 +22,7 @@ import com.mapbox.android.gestures.StandardScaleGestureDetector;
import com.mapbox.geojson.Feature;
import com.mapbox.geojson.Geometry;
import com.mapbox.mapboxsdk.MapStrictMode;
+import com.mapbox.mapboxsdk.Mapbox;
import com.mapbox.mapboxsdk.annotations.Annotation;
import com.mapbox.mapboxsdk.annotations.BaseMarkerOptions;
import com.mapbox.mapboxsdk.annotations.Marker;
@@ -950,10 +951,21 @@ public final class MapboxMap {
private void setApiBaseUrl(@NonNull MapboxMapOptions options) {
String apiBaseUrl = options.getApiBaseUrl();
if (!TextUtils.isEmpty(apiBaseUrl)) {
+ validateTelemetryConfigurationForCnEndpoint(apiBaseUrl);
nativeMapView.setApiBaseUrl(apiBaseUrl);
}
}
+ private void validateTelemetryConfigurationForCnEndpoint(String apiBaseUrl) {
+ if (apiBaseUrl.contains(MapboxConstants.URL_API_CN)) {
+ // enable cn endpoint for telemetry
+ TelemetryDefinition definition = Mapbox.getTelemetry();
+ if (definition != null) {
+ definition.setApiBaseUrl(MapboxConstants.URL_EVENTS_CN);
+ }
+ }
+ }
+
//
// Styling
//
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 3918c67129..35f6a044f0 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,26 +1,16 @@
package com.mapbox.mapboxsdk.maps;
+import android.support.annotation.NonNull;
import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition;
/**
- * Definition of TelemetryImpl collection
+ * Definition of Telemetry
*/
public interface TelemetryDefinition {
- /**
- * Register the app user turnstile event
- */
- void onAppUserTurnstileEvent();
-
- /**
- * Register an end-user gesture interaction event.
- *
- * @param eventType type of gesture event occurred
- * @param latitude the latitude value of the gesture focal point
- * @param longitude the longitude value of the gesture focal point
- * @param zoom current zoom of the map
- */
- void onGestureInteraction(String eventType, double latitude, double longitude, double zoom);
+ //
+ // Configuration
+ //
/**
* Set the end-user selected state to participate or opt-out in telemetry collection.
@@ -41,9 +31,36 @@ public interface TelemetryDefinition {
boolean setSessionIdRotationInterval(int interval);
/**
+ * Set the API base url for end point configuration
+ *
+ * @param baseUrl the end point url for telemetry collection
+ */
+ void setApiBaseUrl(@NonNull String baseUrl);
+
+ //
+ // Events
+ //
+
+ /**
* Register an end-user offline download event.
*
* @param offlineDefinition the offline region definition
*/
void onCreateOfflineRegion(OfflineRegionDefinition offlineDefinition);
+
+ /**
+ * Register the app user turnstile event
+ */
+ void onAppUserTurnstileEvent();
+
+ /**
+ * Register an end-user gesture interaction event.
+ *
+ * @param eventType type of gesture event occurred
+ * @param latitude the latitude value of the gesture focal point
+ * @param longitude the longitude value of the gesture focal point
+ * @param zoom current zoom of the map
+ */
+ void onGestureInteraction(String eventType, double latitude, double longitude, double zoom);
+
}
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 56857d94c9..f8bfe5adf7 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
@@ -60,6 +60,17 @@ public class TelemetryImpl implements TelemetryDefinition {
telemetry.push(mapEventFactory.createMapGestureEvent(Event.Type.MAP_CLICK, state));
}
+ @Override
+ public void onCreateOfflineRegion(@NonNull OfflineRegionDefinition offlineDefinition) {
+ MapEventFactory mapEventFactory = new MapEventFactory();
+ telemetry.push(mapEventFactory.createOfflineDownloadStartEvent(
+ offlineDefinition instanceof OfflineTilePyramidRegionDefinition ? "tileregion" : "shaperegion",
+ offlineDefinition.getMinZoom(),
+ offlineDefinition.getMaxZoom(),
+ offlineDefinition.getStyleURL())
+ );
+ }
+
/**
* Set the end-user selected state to participate or opt-out in telemetry collection.
*/
@@ -95,14 +106,13 @@ public class TelemetryImpl implements TelemetryDefinition {
return telemetry.updateSessionIdRotationInterval(new SessionInterval(interval));
}
+ /**
+ * Set the telemetry api end point base url
+ *
+ * @param baseUrl the end point url for telemetry collection
+ */
@Override
- public void onCreateOfflineRegion(@NonNull OfflineRegionDefinition offlineDefinition) {
- MapEventFactory mapEventFactory = new MapEventFactory();
- telemetry.push(mapEventFactory.createOfflineDownloadStartEvent(
- offlineDefinition instanceof OfflineTilePyramidRegionDefinition ? "tileregion" : "shaperegion",
- offlineDefinition.getMinZoom(),
- offlineDefinition.getMaxZoom(),
- offlineDefinition.getStyleURL())
- );
+ public void setApiBaseUrl(@NonNull String baseUrl) {
+ //telemetry.updateApiBaseUrl(baseUrl);
}
} \ No newline at end of file