From 5da1e2bc7d462526e3006fd0164b0bd9a88c2413 Mon Sep 17 00:00:00 2001 From: Brad Leege Date: Tue, 16 Feb 2016 17:24:23 -0600 Subject: [PATCH] [android] #3897 - Initial Turnstile event with when to push logic infrastructure --- .../mapboxsdk/telemetry/MapboxEvent.java | 2 +- .../telemetry/MapboxEventManager.java | 45 +++++++++++++++++-- 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEvent.java index b3a4cd1ca..7962c37bd 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEvent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEvent.java @@ -5,7 +5,7 @@ import java.io.Serializable; public class MapboxEvent implements Serializable { public static final int VERSION_NUMBER = 1; public static final String MGLMapboxEventsUserAgent = "MapboxEventsAndroid/1.1"; - public static final String MGLMapboxEventsAPIBase = "https://api.tiles.mapbox.com"; + public static final String MAPBOX_EVENTS_BASE_URL = "https://api.mapbox.com"; // Event Types public static final String TYPE_TURNSTILE = "appUserTurnstile"; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java index 0727a69ca..0d168e197 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java @@ -60,8 +60,7 @@ public class MapboxEventManager { private Context context = null; private String accessToken = null; - private static final String MAPBOX_EVENTS_BASE_URL = "https://api.mapbox.com"; - private String eventsURL = MAPBOX_EVENTS_BASE_URL; + private String eventsURL = MapboxEvent.MAPBOX_EVENTS_BASE_URL; private String userAgent = MapboxEvent.MGLMapboxEventsUserAgent; @@ -232,6 +231,44 @@ public class MapboxEventManager { rotateSessionId(); } + /** + * Push Interactive Events to the system for processing + * @param eventWithAttributes Event with attributes + */ + public void pushEvent(Hashtable eventWithAttributes) { + + if (eventWithAttributes == null) { + return; + } + + if (eventWithAttributes.get(MapboxEvent.TYPE_MAP_LOAD) != null) { + pushTurnstileEvent(); + } + + // events.add(eventWithAttributes); + } + + /** + * Pushes turnstile event for internal billing purposes + */ + private void pushTurnstileEvent() { + + Hashtable event = new Hashtable<>(); + event.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_TURNSTILE); + event.put(MapboxEvent.ATTRIBUTE_CREATED, dateFormat.format(new Date())); +/* + // Already set by processing + event.put(MapboxEvent.ATTRIBUTE_APP_BUNDLE_ID, context.getPackageName()); + event.put(MapboxEvent.ATTRIBUTE_VERSION, MapboxEvent.VERSION_NUMBER); + event.put(MapboxEvent.ATTRIBUTE_VENDOR_ID, mapboxVendorId); +*/ + + events.add(event); + + // Send to Server Immediately + new FlushTheEventsTask().execute(); + } + /** * SHA-1 Encoding for strings * @param string String to encode @@ -420,10 +457,10 @@ public class MapboxEventManager { jsonObject.put(MapboxEvent.KEY_HORIZONTAL_ACCURACY, evt.get(MapboxEvent.KEY_HORIZONTAL_ACCURACY)); // Basic Event Meta Data - jsonObject.put(MapboxEvent.ATTRIBUTE_EVENT, evt.get("event")); + jsonObject.put(MapboxEvent.ATTRIBUTE_EVENT, evt.get(MapboxEvent.ATTRIBUTE_EVENT)); + jsonObject.put(MapboxEvent.ATTRIBUTE_CREATED, evt.get(MapboxEvent.ATTRIBUTE_CREATED)); jsonObject.put(MapboxEvent.ATTRIBUTE_SESSION_ID, encodeString(mapboxSessionId)); jsonObject.put(MapboxEvent.ATTRIBUTE_VERSION, MapboxEvent.VERSION_NUMBER); - jsonObject.put(MapboxEvent.ATTRIBUTE_CREATED, evt.get("created")); jsonObject.put(MapboxEvent.ATTRIBUTE_VENDOR_ID, mapboxVendorId); jsonObject.put(MapboxEvent.ATTRIBUTE_APP_BUNDLE_ID, context.getPackageName()); jsonObject.put(MapboxEvent.ATTRIBUTE_MODEL, Build.MODEL);