[android] #2421 - Adding session id and rotate it every 12 hours

This commit is contained in:
Brad Leege
2016-02-08 12:10:00 -08:00
parent ef7bbc93cb
commit d59d66a053
2 changed files with 31 additions and 0 deletions

View File

@@ -40,6 +40,7 @@ public class MapboxEvent implements Serializable {
// Event Attributes
public static final String ATTRIBUTE_EVENT = "event";
public static final String ATTRIBUTE_SESSION_ID = "sessionId";
public static final String ATTRIBUTE_VERSION = "version";
public static final String ATTRIBUTE_CREATED = "created";
public static final String ATTRIBUTE_INSTANCE = "instance";

View File

@@ -65,6 +65,9 @@ public class MapboxEventManager {
private String mapboxVendorId = null;
private String mapboxSessionId = null;
private static long hourInMillis = 1000 * 60 * 60;
private MapboxEventManager(@NonNull Context context) {
super();
this.accessToken = ApiAccess.getToken(context);
@@ -84,6 +87,9 @@ public class MapboxEventManager {
Log.i(TAG, "Set New Vendor Id = " + vendorId);
}
// Create Initial Session Id
rotateSessionId();
// Get DisplayMetrics Setup
displayMetrics = new DisplayMetrics();
((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(displayMetrics);
@@ -141,6 +147,8 @@ public class MapboxEventManager {
events.add(event);
rotateSessionId();
// If size > 1 then flush
if (events.size() >= 1) {
new FlushTheEventsTask().execute();
@@ -148,6 +156,27 @@ public class MapboxEventManager {
}
private void rotateSessionId() {
if (mapboxSessionId == null) {
mapboxSessionId = generateNewSessionId();
return;
}
// Rotate if it's been 12 hours and last event was over an hour ago
int start = mapboxSessionId.indexOf("-") + 1;
int end = mapboxSessionId.indexOf("-", start);
long time = Long.valueOf(mapboxSessionId.substring(start, end));
long now = System.currentTimeMillis();
if (now - time > (12 * hourInMillis)) {
mapboxSessionId = generateNewSessionId();
}
}
private String generateNewSessionId() {
return context.getPackageName() + "-" + System.currentTimeMillis() + "-" + UUID.randomUUID().toString();
}
private String getOrientation() {
switch (context.getResources().getConfiguration().orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
@@ -290,6 +319,7 @@ public class MapboxEventManager {
// Basic Event Meta Data
jsonObject.put(MapboxEvent.ATTRIBUTE_EVENT, evt.get("event"));
jsonObject.put(MapboxEvent.ATTRIBUTE_SESSION_ID, mapboxSessionId);
jsonObject.put(MapboxEvent.ATTRIBUTE_VERSION, MapboxEvent.VERSION_NUMBER);
jsonObject.put(MapboxEvent.ATTRIBUTE_CREATED, evt.get("created"));
jsonObject.put(MapboxEvent.ATTRIBUTE_INSTANCE, SESSION_UUID);