[android] #3897 - Initial Turnstile event with when to push logic infrastructure

This commit is contained in:
Brad Leege
2016-02-16 17:24:23 -06:00
parent e4fa1816a7
commit 5da1e2bc7d
2 changed files with 42 additions and 5 deletions

View File

@@ -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";

View File

@@ -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<String, Object> 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<String, Object> 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);