diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/ArriveEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/ArriveEventSerializer.java deleted file mode 100644 index c75494691..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/ArriveEventSerializer.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class ArriveEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - - @Override - public JsonElement serialize(NavigationArriveEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject arriveEvent = new JsonObject(); - arriveEvent.addProperty(EVENT, src.getEvent()); - serializeMetadata(src, context, arriveEvent); - return arriveEvent; - } - - private void serializeMetadata(NavigationArriveEvent src, JsonSerializationContext context, - JsonObject arriveEvent) { - JsonObject metadata = context.serialize(src.getMetadata()).getAsJsonObject(); - for (Map.Entry e : metadata.entrySet()) { - arriveEvent.add(e.getKey(), e.getValue()); - } - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelDataSerializer.java deleted file mode 100644 index 6f6ae4c68..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelDataSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class CancelDataSerializer implements JsonSerializer { - private static final String COMMENT = "comment"; - private static final String RATING = "rating"; - private static final String ARRIVAL_TIMESTAMP = "arrivalTimestamp"; - - @Override - public JsonElement serialize(NavigationCancelData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject cancelData = new JsonObject(); - cancelData.addProperty(COMMENT, src.getComment()); - cancelData.addProperty(RATING, src.getRating()); - cancelData.addProperty(ARRIVAL_TIMESTAMP, src.getArrivalTimestamp()); - return cancelData; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelEventSerializer.java deleted file mode 100644 index 3401a5ed0..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/CancelEventSerializer.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class CancelEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - - public JsonElement serialize(NavigationCancelEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject cancelEvent = new JsonObject(); - cancelEvent.addProperty(EVENT, src.getEvent()); - serializeCancelData(src, context, cancelEvent); - serializeMetadata(src, context, cancelEvent); - return cancelEvent; - } - - private void serializeCancelData(NavigationCancelEvent src, JsonSerializationContext context, - JsonObject cancelEvent) { - JsonObject cancelData = context.serialize(src.getCancelData()).getAsJsonObject(); - for (Map.Entry e : cancelData.entrySet()) { - cancelEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeMetadata(NavigationCancelEvent src, JsonSerializationContext context, - JsonObject cancelEvent) { - JsonObject metadata = context.serialize(src.getMetadata()).getAsJsonObject(); - for (Map.Entry e : metadata.entrySet()) { - cancelEvent.add(e.getKey(), e.getValue()); - } - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/DepartEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/DepartEventSerializer.java deleted file mode 100644 index 1ac78f702..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/DepartEventSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class DepartEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - - @Override - public JsonElement serialize(NavigationDepartEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject departEvent = context.serialize(src.getMetadata()).getAsJsonObject(); - departEvent.addProperty(EVENT, src.getEvent()); - return departEvent; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FasterRouteEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FasterRouteEventSerializer.java deleted file mode 100644 index 554d6d7f3..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FasterRouteEventSerializer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class FasterRouteEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - private static final String STEP = "step"; - - @Override - public JsonElement serialize(NavigationFasterRouteEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject fasterRoute = new JsonObject(); - fasterRoute.addProperty(EVENT, src.getEvent()); - serializeMetadata(src, context, fasterRoute); - serializeNewData(src, context, fasterRoute); - serializeStep(src, context, fasterRoute); - return fasterRoute; - } - - private void serializeMetadata(NavigationFasterRouteEvent src, JsonSerializationContext context, - JsonObject fasterRoute) { - JsonObject metadata = context.serialize(src.getMetadata()).getAsJsonObject(); - for (Map.Entry e : metadata.entrySet()) { - fasterRoute.add(e.getKey(), e.getValue()); - } - } - - private void serializeNewData(NavigationFasterRouteEvent src, JsonSerializationContext context, - JsonObject fasterRoute) { - JsonObject newData = context.serialize(src.getNavigationNewData()).getAsJsonObject(); - for (Map.Entry e : newData.entrySet()) { - fasterRoute.add(e.getKey(), e.getValue()); - } - } - - private void serializeStep(NavigationFasterRouteEvent src, JsonSerializationContext context, JsonObject fasterRoute) { - JsonElement step = context.serialize(src.getStep()); - fasterRoute.add(STEP, step); - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackData.java deleted file mode 100644 index 278b6ac4e..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackData.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mapbox.android.telemetry; - - -import android.os.Parcel; -import android.os.Parcelable; - -public class FeedbackData implements Parcelable { - private String feedbackId; - private String screenshot = null; - - public FeedbackData() { - this.feedbackId = TelemetryUtils.obtainUniversalUniqueIdentifier(); - } - - String getFeedbackId() { - return feedbackId; - } - - String getScreenshot() { - return screenshot; - } - - public void setScreenshot(String screenshot) { - this.screenshot = screenshot; - } - - private FeedbackData(Parcel in) { - feedbackId = in.readString(); - screenshot = in.readString(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(feedbackId); - dest.writeString(screenshot); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public FeedbackData createFromParcel(Parcel in) { - return new FeedbackData(in); - } - - @Override - public FeedbackData[] newArray(int size) { - return new FeedbackData[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackDataSerializer.java deleted file mode 100644 index 8b4ccb958..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackDataSerializer.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class FeedbackDataSerializer implements JsonSerializer { - private static final String FEEDBACK_ID = "feedbackId"; - private static final String SCREENSHOT = "screenshot"; - - @Override - public JsonElement serialize(FeedbackData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject feedbackData = new JsonObject(); - feedbackData.addProperty(FEEDBACK_ID, src.getFeedbackId()); - feedbackData.addProperty(SCREENSHOT, src.getScreenshot()); - return feedbackData; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventData.java deleted file mode 100644 index c78ec0db3..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -public class FeedbackEventData implements Parcelable { - private String userId; - private String feedbackType; - private String source; - private String description = null; - - public FeedbackEventData(String feedbackType, String source) { - this.userId = TelemetryUtils.retrieveVendorId(); - this.feedbackType = feedbackType; - this.source = source; - } - - // For testing only - FeedbackEventData(String userId, String feedbackType, String source) { - this.userId = userId; - this.feedbackType = feedbackType; - this.source = source; - } - - String getUserId() { - return userId; - } - - String getFeedbackType() { - return feedbackType; - } - - String getSource() { - return source; - } - - String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - private FeedbackEventData(Parcel in) { - userId = in.readString(); - feedbackType = in.readString(); - source = in.readString(); - description = in.readString(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(userId); - dest.writeString(feedbackType); - dest.writeString(source); - dest.writeString(description); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public FeedbackEventData createFromParcel(Parcel in) { - return new FeedbackEventData(in); - } - - @Override - public FeedbackEventData[] newArray(int size) { - return new FeedbackEventData[size]; - } - }; -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventDataSerializer.java deleted file mode 100644 index eeb117876..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventDataSerializer.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class FeedbackEventDataSerializer implements JsonSerializer { - private static final String FEEDBACK_TYPE = "feedbackType"; - private static final String DESCRIPTION = "description"; - private static final String SOURCE = "source"; - private static final String USER_ID = "userId"; - private static final String AUDIO = "audio"; - - @Override - public JsonElement serialize(FeedbackEventData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject feedbackEventData = new JsonObject(); - feedbackEventData.addProperty(FEEDBACK_TYPE, src.getFeedbackType()); - feedbackEventData.addProperty(DESCRIPTION, src.getDescription()); - feedbackEventData.addProperty(SOURCE, src.getSource()); - feedbackEventData.addProperty(USER_ID, src.getUserId()); - return feedbackEventData; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventSerializer.java deleted file mode 100644 index ab6b9c77d..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/FeedbackEventSerializer.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class FeedbackEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - private static final String STEP = "step"; - - @Override - public JsonElement serialize(NavigationFeedbackEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject feedbackEvent = new JsonObject(); - feedbackEvent.addProperty(EVENT, src.getEvent()); - serializeMetadata(src, context, feedbackEvent); - serializeFeedbackEventData(src, context, feedbackEvent); - serializeLocationData(src, context, feedbackEvent); - serializeFeedbackData(src, context, feedbackEvent); - serializeStep(src, context, feedbackEvent); - return feedbackEvent; - } - - private void serializeMetadata(NavigationFeedbackEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject metadata = context.serialize(src.getMetadata()).getAsJsonObject(); - for (Map.Entry e : metadata.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeFeedbackEventData(NavigationFeedbackEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject feedbackEventData = context.serialize(src.getFeedbackEventData()).getAsJsonObject(); - for (Map.Entry e : feedbackEventData.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeLocationData(NavigationFeedbackEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject locationData = context.serialize(src.getNavigationLocationData()).getAsJsonObject(); - for (Map.Entry e : locationData.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeFeedbackData(NavigationFeedbackEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject feedbackData = context.serialize(src.getFeedbackData()).getAsJsonObject(); - for (Map.Entry e : feedbackData.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeStep(NavigationFeedbackEvent src, JsonSerializationContext context, JsonObject feedbackEvent) { - JsonElement step = context.serialize(src.getStep()); - feedbackEvent.add(STEP, step); - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/LocationDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/LocationDataSerializer.java deleted file mode 100644 index 267391a27..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/LocationDataSerializer.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class LocationDataSerializer implements JsonSerializer { - private static final String LOCATIONS_BEFORE = "locationsBefore"; - private static final String LOCATIONS_AFTER = "locationsAfter"; - - @Override - public JsonElement serialize(NavigationLocationData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject locationData = new JsonObject(); - JsonArray locationsBefore = context.serialize(src.getLocationsBefore()).getAsJsonArray(); - JsonArray locationsAfter = context.serialize(src.getLocationsAfter()).getAsJsonArray(); - locationData.add(LOCATIONS_BEFORE, locationsBefore); - locationData.add(LOCATIONS_AFTER, locationsAfter); - return locationData; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavBuildEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavBuildEvent.java deleted file mode 100644 index 11cd55cf4..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavBuildEvent.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.mapbox.android.telemetry; - -interface NavBuildEvent { - - Event build(NavigationState navigationState); -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationArriveEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationArriveEvent.java deleted file mode 100644 index b3aa75d80..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationArriveEvent.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationArriveEvent extends Event implements Parcelable { - private static final String NAVIGATION_ARRIVE = "navigation.arrive"; - private final String event; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata metadata; - - NavigationArriveEvent(NavigationState navigationState) { - this.event = NAVIGATION_ARRIVE; - this.metadata = navigationState.getNavigationMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_ARRIVE; - } - - String getEvent() { - return event; - } - - NavigationMetadata getMetadata() { - return metadata; - } - - private NavigationArriveEvent(Parcel in) { - event = in.readString(); - metadata = in.readParcelable(NavigationMetadata.class.getClassLoader()); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeParcelable(metadata, flags); - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationArriveEvent createFromParcel(Parcel in) { - return new NavigationArriveEvent(in); - } - - @Override - public NavigationArriveEvent[] newArray(int size) { - return new NavigationArriveEvent[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelData.java deleted file mode 100644 index 43b5e7afe..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelData.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import java.util.Date; - -public class NavigationCancelData implements Parcelable { - private String arrivalTimestamp = null; - private Integer rating = null; - private String comment = null; - - public NavigationCancelData() { - } - - public void setArrivalTimestamp(Date arrivalTimestamp) { - this.arrivalTimestamp = TelemetryUtils.generateCreateDateFormatted(arrivalTimestamp); - } - - String getArrivalTimestamp() { - return arrivalTimestamp; - } - - Integer getRating() { - return rating; - } - - public void setRating(Integer rating) { - this.rating = rating; - } - - String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - private NavigationCancelData(Parcel in) { - arrivalTimestamp = in.readString(); - rating = in.readByte() == 0x00 ? null : in.readInt(); - comment = in.readString(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(arrivalTimestamp); - if (rating == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(rating); - } - dest.writeString(comment); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { - @Override - public NavigationCancelData createFromParcel(Parcel in) { - return new NavigationCancelData(in); - } - - @Override - public NavigationCancelData[] newArray(int size) { - return new NavigationCancelData[size]; - } - }; -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelEvent.java deleted file mode 100644 index d9293b70c..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationCancelEvent.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationCancelEvent extends Event implements Parcelable { - private static final String NAVIGATION_CANCEL = "navigation.cancel"; - private final String event; - @JsonAdapter(CancelDataSerializer.class) - private NavigationCancelData cancelData; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata metadata; - - NavigationCancelEvent(NavigationState navigationState) { - this.event = NAVIGATION_CANCEL; - this.cancelData = navigationState.getNavigationCancelData(); - this.metadata = navigationState.getNavigationMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_CANCEL; - } - - String getEvent() { - return event; - } - - NavigationCancelData getCancelData() { - return cancelData; - } - - NavigationMetadata getMetadata() { - return metadata; - } - - private NavigationCancelEvent(Parcel in) { - event = in.readString(); - cancelData = in.readParcelable(NavigationCancelData.class.getClassLoader()); - metadata = in.readParcelable(NavigationMetadata.class.getClassLoader()); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeParcelable(cancelData, flags); - dest.writeParcelable(metadata, flags); - } - - @Override - public int describeContents() { - return 0; - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationCancelEvent createFromParcel(Parcel in) { - return new NavigationCancelEvent(in); - } - - @Override - public NavigationCancelEvent[] newArray(int size) { - return new NavigationCancelEvent[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationDepartEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationDepartEvent.java deleted file mode 100644 index d6c80b94b..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationDepartEvent.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationDepartEvent extends Event implements Parcelable { - private static final String NAVIGATION_DEPART = "navigation.depart"; - private final String event; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata metadata; - - NavigationDepartEvent(NavigationState navigationState) { - this.event = NAVIGATION_DEPART; - this.metadata = navigationState.getNavigationMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_DEPART; - } - - String getEvent() { - return event; - } - - NavigationMetadata getMetadata() { - return metadata; - } - - private NavigationDepartEvent(Parcel in) { - event = in.readString(); - metadata = in.readParcelable(NavigationMetadata.class.getClassLoader()); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeParcelable(metadata, flags); - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationDepartEvent createFromParcel(Parcel in) { - return new NavigationDepartEvent(in); - } - - @Override - public NavigationDepartEvent[] newArray(int size) { - return new NavigationDepartEvent[size]; - } - }; -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationEventFactory.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationEventFactory.java deleted file mode 100644 index e37cd4f5f..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationEventFactory.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.mapbox.android.telemetry; - -import java.util.HashMap; -import java.util.Map; - -public class NavigationEventFactory { - - private static final String NOT_A_NAVIGATION_EVENT_TYPE = "Type must be a navigation event."; - private static final String NAVIGATION_STATE_ILLEGAL_NULL = "NavigationState cannot be null."; - private final Map BUILD_NAV_EVENT = new HashMap() { - { - put(Event.Type.NAV_ARRIVE, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationArriveEvent(navigationState); - } - }); - put(Event.Type.NAV_DEPART, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationDepartEvent(navigationState); - } - }); - put(Event.Type.NAV_CANCEL, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationCancelEvent(navigationState); - } - }); - put(Event.Type.NAV_FEEDBACK, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationFeedbackEvent(navigationState); - } - }); - put(Event.Type.NAV_REROUTE, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationRerouteEvent(navigationState); - } - }); - put(Event.Type.NAV_FASTER_ROUTE, new NavBuildEvent() { - @Override - public Event build(NavigationState navigationState) { - return buildNavigationFasterRouteEvent(navigationState); - } - }); - } - }; - - public Event createNavigationEvent(Event.Type type, NavigationState navigationState) { - check(type, navigationState); - return BUILD_NAV_EVENT.get(type).build(navigationState); - } - - private NavigationDepartEvent buildNavigationDepartEvent(NavigationState navigationState) { - return new NavigationDepartEvent(navigationState); - } - - private NavigationArriveEvent buildNavigationArriveEvent(NavigationState navigationState) { - return new NavigationArriveEvent(navigationState); - } - - private NavigationCancelEvent buildNavigationCancelEvent(NavigationState navigationState) { - return new NavigationCancelEvent(navigationState); - } - - private NavigationRerouteEvent buildNavigationRerouteEvent(NavigationState navigationState) { - return new NavigationRerouteEvent(navigationState); - } - - private NavigationFeedbackEvent buildNavigationFeedbackEvent(NavigationState navigationState) { - return new NavigationFeedbackEvent(navigationState); - } - - private NavigationFasterRouteEvent buildNavigationFasterRouteEvent(NavigationState navigationState) { - return new NavigationFasterRouteEvent(navigationState); - } - - private void check(Event.Type type, NavigationState navigationState) { - checkNavigationEvent(type); - isNotNull(navigationState); - } - - private void checkNavigationEvent(Event.Type type) { - if (!Event.navigationEventTypes.contains(type)) { - throw new IllegalArgumentException(NOT_A_NAVIGATION_EVENT_TYPE); - } - } - - private void isNotNull(NavigationState navigationState) { - if (navigationState == null) { - throw new IllegalArgumentException(NAVIGATION_STATE_ILLEGAL_NULL); - } - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFasterRouteEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFasterRouteEvent.java deleted file mode 100644 index 1bb5ff81d..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFasterRouteEvent.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationFasterRouteEvent extends Event implements Parcelable { - private static final String NAVIGATION_REROUTE_DATA_STATE_ILLEGAL_NULL = "NavigationRerouteData cannot be null."; - private static final String NAVIGATION_FASTER_ROUTE = "navigation.fasterRoute"; - private final String event; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata metadata = null; - @JsonAdapter(NewDataSerializer.class) - private NavigationNewData navigationNewData = null; - private NavigationStepMetadata step = null; - - NavigationFasterRouteEvent(NavigationState navigationState) { - this.event = NAVIGATION_FASTER_ROUTE; - NavigationRerouteData navigationRerouteData = navigationState.getNavigationRerouteData(); - check(navigationRerouteData); - this.navigationNewData = navigationRerouteData.getNavigationNewData(); - this.step = navigationState.getNavigationStepMetadata(); - this.metadata = navigationState.getNavigationMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_FASTER_ROUTE; - } - - String getEvent() { - return event; - } - - NavigationNewData getNavigationNewData() { - return navigationNewData; - } - - NavigationStepMetadata getStep() { - return step; - } - - NavigationMetadata getMetadata() { - return metadata; - } - - private NavigationFasterRouteEvent(Parcel in) { - event = in.readString(); - navigationNewData = in.readParcelable(NavigationNewData.class.getClassLoader()); - step = in.readParcelable(NavigationStepMetadata.class.getClassLoader()); - metadata = in.readParcelable(NavigationMetadata.class.getClassLoader()); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeParcelable(navigationNewData, flags); - dest.writeParcelable(step, flags); - dest.writeParcelable(metadata, flags); - } - - @Override - public int describeContents() { - return 0; - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationFasterRouteEvent createFromParcel(Parcel in) { - return new NavigationFasterRouteEvent(in); - } - - @Override - public NavigationFasterRouteEvent[] newArray(int size) { - return new NavigationFasterRouteEvent[size]; - } - }; - - private void check(NavigationRerouteData navigationRerouteData) { - if (navigationRerouteData == null) { - throw new IllegalArgumentException(NAVIGATION_REROUTE_DATA_STATE_ILLEGAL_NULL); - } - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFeedbackEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFeedbackEvent.java deleted file mode 100644 index 0ffc17109..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationFeedbackEvent.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationFeedbackEvent extends Event implements Parcelable { - private static final String NAVIGATION_FEEDBACK = "navigation.feedback"; - private final String event; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata metadata; - @JsonAdapter(FeedbackEventDataSerializer.class) - private FeedbackEventData feedbackEventData; - @JsonAdapter(LocationDataSerializer.class) - private NavigationLocationData navigationLocationData; - @JsonAdapter(FeedbackDataSerializer.class) - private FeedbackData feedbackData; - private NavigationStepMetadata step = null; - - NavigationFeedbackEvent(NavigationState navigationState) { - this.event = NAVIGATION_FEEDBACK; - this.metadata = navigationState.getNavigationMetadata(); - this.feedbackEventData = navigationState.getFeedbackEventData(); - this.navigationLocationData = navigationState.getNavigationLocationData(); - this.feedbackData = navigationState.getFeedbackData(); - this.step = navigationState.getNavigationStepMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_FEEDBACK; - } - - String getEvent() { - return event; - } - - NavigationMetadata getMetadata() { - return metadata; - } - - FeedbackEventData getFeedbackEventData() { - return feedbackEventData; - } - - NavigationLocationData getNavigationLocationData() { - return navigationLocationData; - } - - FeedbackData getFeedbackData() { - return feedbackData; - } - - NavigationStepMetadata getStep() { - return step; - } - - private NavigationFeedbackEvent(Parcel in) { - event = in.readString(); - metadata = (NavigationMetadata) in.readValue(NavigationMetadata.class.getClassLoader()); - feedbackEventData = (FeedbackEventData) in.readValue(FeedbackEventData.class.getClassLoader()); - navigationLocationData = (NavigationLocationData) in.readValue(NavigationLocationData.class.getClassLoader()); - feedbackData = (FeedbackData) in.readValue(FeedbackData.class.getClassLoader()); - step = (NavigationStepMetadata) in.readValue(NavigationStepMetadata.class.getClassLoader()); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeValue(metadata); - dest.writeValue(feedbackEventData); - dest.writeValue(navigationLocationData); - dest.writeValue(feedbackData); - dest.writeValue(step); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { - @Override - public NavigationFeedbackEvent createFromParcel(Parcel in) { - return new NavigationFeedbackEvent(in); - } - - @Override - public NavigationFeedbackEvent[] newArray(int size) { - return new NavigationFeedbackEvent[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationLocationData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationLocationData.java deleted file mode 100644 index 2439296c5..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationLocationData.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.location.Location; -import android.os.Parcel; -import android.os.Parcelable; - -public class NavigationLocationData implements Parcelable { - private Location[] locationsBefore; - private Location[] locationsAfter; - - public NavigationLocationData(Location[] locationsBefore, Location[] locationsAfter) { - this.locationsBefore = locationsBefore; - this.locationsAfter = locationsAfter; - } - - Location[] getLocationsBefore() { - return locationsBefore; - } - - Location[] getLocationsAfter() { - return locationsAfter; - } - - private NavigationLocationData(Parcel in) { - locationsBefore = in.createTypedArray(Location.CREATOR); - locationsAfter = in.createTypedArray(Location.CREATOR); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeTypedArray(locationsBefore, flags); - dest.writeTypedArray(locationsAfter, flags); - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationLocationData createFromParcel(Parcel in) { - return new NavigationLocationData(in); - } - - @Override - public NavigationLocationData[] newArray(int size) { - return new NavigationLocationData[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadata.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadata.java deleted file mode 100644 index 991326626..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadata.java +++ /dev/null @@ -1,505 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.content.Context; -import android.os.Build; -import android.os.Parcel; -import android.os.Parcelable; - -import java.util.Date; - -public class NavigationMetadata implements Parcelable { - private static final String OPERATING_SYSTEM = "Android - " + Build.VERSION.RELEASE; - private int absoluteDistanceToDestination; - private Integer percentTimeInPortrait = null; - private Integer percentTimeInForeground = null; - private String startTimestamp; - private int distanceCompleted; - private int distanceRemaining; - private int durationRemaining; - private String operatingSystem; - private int eventVersion; - private String sdkIdentifier; - private String sdkVersion; - private String sessionIdentifier; - private double lat; - private double lng; - private String geometry; - private String created; - private String profile; - private Integer estimatedDistance = null; - private Integer estimatedDuration = null; - private Integer rerouteCount = null; - private boolean simulation; - private String originalRequestIdentifier = null; - private String requestIdentifier = null; - private String originalGeometry = null; - private Integer originalEstimatedDistance = null; - private Integer originalEstimatedDuration = null; - private String audioType; - private int stepCount; - private Integer originalStepCount = null; - private String device; - private String locationEngine; - private int volumeLevel; - private int screenBrightness; - private String applicationState; - private Boolean batteryPluggedIn; - private int batteryLevel; - private String connectivity; - private String tripIdentifier; - private int legIndex; - private int legCount; - private int stepIndex; - private Integer voiceIndex = null; - private Integer bannerIndex = null; - private int totalStepCount; - - public NavigationMetadata(Date startTimestamp, int distanceCompleted, int distanceRemaining, int durationRemaining, - String sdkIdentifier, String sdkVersion, int eventVersion, String sessionIdentifier, - double lat, double lng, String geometry, String profile, boolean isSimulation, - String locationEngine, int absoluteDistanceToDestination, String tripIdentifier, - int legIndex, int legCount, int stepIndex, int stepCount, int totalStepCount) { - this.startTimestamp = TelemetryUtils.generateCreateDateFormatted(startTimestamp); - this.distanceCompleted = distanceCompleted; - this.distanceRemaining = distanceRemaining; - this.durationRemaining = durationRemaining; - this.operatingSystem = OPERATING_SYSTEM; - this.sdkIdentifier = sdkIdentifier; - this.sdkVersion = sdkVersion; - this.eventVersion = eventVersion; - this.sessionIdentifier = sessionIdentifier; - this.lat = lat; - this.lng = lng; - this.geometry = geometry; - this.created = TelemetryUtils.obtainCurrentDate(); - this.profile = profile; - this.simulation = isSimulation; - this.device = Build.MODEL; - this.locationEngine = locationEngine; - this.absoluteDistanceToDestination = absoluteDistanceToDestination; - this.volumeLevel = 0; - this.batteryLevel = 0; - this.screenBrightness = 0; - this.batteryPluggedIn = false; - this.connectivity = ""; - this.audioType = ""; - this.applicationState = ""; - this.tripIdentifier = tripIdentifier; - this.legIndex = legIndex; - this.legCount = legCount; - this.stepIndex = stepIndex; - this.stepCount = stepCount; - this.totalStepCount = totalStepCount; - } - - NavigationMetadata setDeviceInfo(Context context) { - this.volumeLevel = NavigationUtils.obtainVolumeLevel(context); - this.batteryLevel = TelemetryUtils.obtainBatteryLevel(context); - this.screenBrightness = NavigationUtils.obtainScreenBrightness(context); - this.batteryPluggedIn = TelemetryUtils.isPluggedIn(context); - this.connectivity = TelemetryUtils.obtainCellularNetworkType(context); - this.audioType = NavigationUtils.obtainAudioType(context); - this.applicationState = TelemetryUtils.obtainApplicationState(context); - return this; - } - - public void setCreated(Date created) { - this.created = TelemetryUtils.generateCreateDateFormatted(created); - } - - String getCreated() { - return created; - } - - String getStartTimestamp() { - return startTimestamp; - } - - Integer getDistanceCompleted() { - return distanceCompleted; - } - - Integer getDistanceRemaining() { - return distanceRemaining; - } - - Integer getDurationRemaining() { - return durationRemaining; - } - - String getOperatingSystem() { - return operatingSystem; - } - - int getEventVersion() { - return eventVersion; - } - - String getSdKIdentifier() { - return sdkIdentifier; - } - - String getSdkVersion() { - return sdkVersion; - } - - String getSessionIdentifier() { - return sessionIdentifier; - } - - double getLat() { - return lat; - } - - double getLng() { - return lng; - } - - String getGeometry() { - return geometry; - } - - String getProfile() { - return profile; - } - - Integer getEstimatedDistance() { - return estimatedDistance; - } - - public void setEstimatedDistance(Integer estimatedDistance) { - this.estimatedDistance = estimatedDistance; - } - - Integer getEstimatedDuration() { - return estimatedDuration; - } - - public void setEstimatedDuration(Integer estimatedDuration) { - this.estimatedDuration = estimatedDuration; - } - - Integer getRerouteCount() { - return rerouteCount; - } - - public void setRerouteCount(Integer rerouteCount) { - this.rerouteCount = rerouteCount; - } - - boolean isSimulation() { - return simulation; - } - - String getOriginalRequestIdentifier() { - return originalRequestIdentifier; - } - - public void setOriginalRequestIdentifier(String originalRequestIdentifier) { - this.originalRequestIdentifier = originalRequestIdentifier; - } - - String getRequestIdentifier() { - return requestIdentifier; - } - - public void setRequestIdentifier(String requestIdentifier) { - this.requestIdentifier = requestIdentifier; - } - - String getOriginalGeometry() { - return originalGeometry; - } - - public void setOriginalGeometry(String originalGeometry) { - this.originalGeometry = originalGeometry; - } - - Integer getOriginalEstimatedDistance() { - return originalEstimatedDistance; - } - - public void setOriginalEstimatedDistance(Integer originalEstimatedDistance) { - this.originalEstimatedDistance = originalEstimatedDistance; - } - - Integer getOriginalEstimatedDuration() { - return originalEstimatedDuration; - } - - public void setOriginalEstimatedDuration(Integer originalEstimatedDuration) { - this.originalEstimatedDuration = originalEstimatedDuration; - } - - String getAudioType() { - return audioType; - } - - Integer getOriginalStepCount() { - return originalStepCount; - } - - public void setOriginalStepCount(Integer originalStepCount) { - this.originalStepCount = originalStepCount; - } - - String getDevice() { - return device; - } - - String getLocationEngine() { - return locationEngine; - } - - Integer getVolumeLevel() { - return volumeLevel; - } - - Integer getScreenBrightness() { - return screenBrightness; - } - - String getApplicationState() { - return applicationState; - } - - Boolean isBatteryPluggedIn() { - return batteryPluggedIn; - } - - //for testing - void setBatteryLevel(Integer batteryLevel) { - this.batteryLevel = batteryLevel; - } - - Integer getBatteryLevel() { - return batteryLevel; - } - - String getConnectivity() { - return connectivity; - } - - int getAbsoluteDistanceToDestination() { - return absoluteDistanceToDestination; - } - - Integer getPercentTimeInPortrait() { - return percentTimeInPortrait; - } - - public void setPercentTimeInPortrait(Integer percentTimeInPortrait) { - this.percentTimeInPortrait = percentTimeInPortrait; - } - - Integer getPercentTimeInForeground() { - return percentTimeInForeground; - } - - public void setPercentTimeInForeground(Integer percentTimeInForeground) { - this.percentTimeInForeground = percentTimeInForeground; - } - - String getTripIdentifier() { - return tripIdentifier; - } - - Integer getLegIndex() { - return legIndex; - } - - Integer getLegCount() { - return legCount; - } - - Integer getStepIndex() { - return stepIndex; - } - - Integer getStepCount() { - return stepCount; - } - - Integer getVoiceIndex() { - return voiceIndex; - } - - void setVoiceIndex(int voiceIndex) { - this.voiceIndex = voiceIndex; - } - - Integer getBannerIndex() { - return bannerIndex; - } - - public void setBannerIndex(int bannerIndex) { - this.bannerIndex = bannerIndex; - } - - Integer getTotalStepCount() { - return totalStepCount; - } - - private NavigationMetadata(Parcel in) { - absoluteDistanceToDestination = in.readInt(); - percentTimeInPortrait = in.readByte() == 0x00 ? null : in.readInt(); - percentTimeInForeground = in.readByte() == 0x00 ? null : in.readInt(); - startTimestamp = in.readString(); - distanceCompleted = in.readInt(); - distanceRemaining = in.readInt(); - durationRemaining = in.readInt(); - operatingSystem = in.readString(); - eventVersion = in.readInt(); - sdkIdentifier = in.readString(); - sdkVersion = in.readString(); - sessionIdentifier = in.readString(); - lat = in.readDouble(); - lng = in.readDouble(); - geometry = in.readString(); - created = in.readString(); - profile = in.readString(); - estimatedDistance = in.readByte() == 0x00 ? null : in.readInt(); - estimatedDuration = in.readByte() == 0x00 ? null : in.readInt(); - rerouteCount = in.readByte() == 0x00 ? null : in.readInt(); - simulation = in.readByte() != 0x00; - originalRequestIdentifier = in.readString(); - requestIdentifier = in.readString(); - originalGeometry = in.readString(); - originalEstimatedDistance = in.readByte() == 0x00 ? null : in.readInt(); - originalEstimatedDuration = in.readByte() == 0x00 ? null : in.readInt(); - audioType = in.readString(); - originalStepCount = in.readByte() == 0x00 ? null : in.readInt(); - device = in.readString(); - locationEngine = in.readString(); - volumeLevel = in.readInt(); - screenBrightness = in.readInt(); - applicationState = in.readString(); - batteryPluggedIn = in.readByte() != 0x00; - batteryLevel = in.readInt(); - connectivity = in.readString(); - tripIdentifier = in.readString(); - legIndex = in.readInt(); - legCount = in.readInt(); - stepIndex = in.readInt(); - stepCount = in.readInt(); - voiceIndex = in.readByte() == 0x00 ? null : in.readInt(); - bannerIndex = in.readByte() == 0x00 ? null : in.readInt(); - totalStepCount = in.readInt(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeInt(absoluteDistanceToDestination); - if (percentTimeInPortrait == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(percentTimeInPortrait); - } - if (percentTimeInForeground == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(percentTimeInForeground); - } - dest.writeString(startTimestamp); - dest.writeInt(distanceCompleted); - dest.writeInt(distanceRemaining); - dest.writeInt(durationRemaining); - dest.writeString(operatingSystem); - dest.writeInt(eventVersion); - dest.writeString(sdkIdentifier); - dest.writeString(sdkVersion); - dest.writeString(sessionIdentifier); - dest.writeDouble(lat); - dest.writeDouble(lng); - dest.writeString(geometry); - dest.writeString(created); - dest.writeString(profile); - if (estimatedDistance == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(estimatedDistance); - } - if (estimatedDuration == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(estimatedDuration); - } - if (rerouteCount == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(rerouteCount); - } - dest.writeByte((byte) (simulation ? 0x01 : 0x00)); - dest.writeString(originalRequestIdentifier); - dest.writeString(requestIdentifier); - dest.writeString(originalGeometry); - if (originalEstimatedDistance == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(originalEstimatedDistance); - } - if (originalEstimatedDuration == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(originalEstimatedDuration); - } - dest.writeString(audioType); - if (originalStepCount == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(originalStepCount); - } - dest.writeString(device); - dest.writeString(locationEngine); - dest.writeInt(volumeLevel); - dest.writeInt(screenBrightness); - dest.writeString(applicationState); - dest.writeByte((byte) (batteryPluggedIn ? 0x01 : 0x00)); - dest.writeInt(batteryLevel); - dest.writeString(connectivity); - dest.writeString(tripIdentifier); - dest.writeInt(legIndex); - dest.writeInt(legCount); - dest.writeInt(stepIndex); - dest.writeInt(stepCount); - if (voiceIndex == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(voiceIndex); - } - if (bannerIndex == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(bannerIndex); - } - dest.writeInt(totalStepCount); - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public NavigationMetadata createFromParcel(Parcel in) { - return new NavigationMetadata(in); - } - - @Override - public NavigationMetadata[] newArray(int size) { - return new NavigationMetadata[size]; - } - }; -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadataSerializer.java deleted file mode 100644 index b9d98d07c..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationMetadataSerializer.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.mapbox.android.telemetry; - - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class NavigationMetadataSerializer implements JsonSerializer { - private static final String CREATED = "created"; - private static final String ABSOLUTE_DISTANCE_TO_DESTINATION = "absoluteDistanceToDestination"; - private static final String PERCENT_TIME_IN_PORTRAIT = "percentTimeInPortrait"; - private static final String PERCENT_TIME_IN_FOREGROUND = "percentTimeInForeground"; - private static final String START_TIMESTAMP = "startTimestamp"; - private static final String DISTANCE_COMPLETED = "distanceCompleted"; - private static final String DISTANCE_REMAINING = "distanceRemaining"; - private static final String DURATION_REMAINING = "durationRemaining"; - private static final String OPERATING_SYSTEM = "operatingSystem"; - private static final String EVENT_VERSION = "eventVersion"; - private static final String SDK_IDENTIFIER = "sdKIdentifier"; - private static final String SDK_VERSION = "sdkVersion"; - private static final String SESSION_IDENTIFIER = "sessionIdentifier"; - private static final String LATITUDE = "lat"; - private static final String LONGITUDE = "lng"; - private static final String GEOMETRY = "geometry"; - private static final String PROFILE = "profile"; - private static final String ESTIMATED_DISTANCE = "estimatedDistance"; - private static final String ESTIMATED_DURATION = "estimatedDuration"; - private static final String REROUTE_COUNT = "rerouteCount"; - private static final String SIMULATION = "simulation"; - private static final String ORIGINAL_REQUEST_IDENTIFIER = "originalRequestIdentifier"; - private static final String REQUEST_IDENTIFIER = "requestIdentifier"; - private static final String ORIGINAL_GEOMETRY = "originalGeometry"; - private static final String ORIGINAL_ESTIMATED_DISTANCE = "originalEstimatedDistance"; - private static final String ORIGINAL_ESTIMATED_DURATION = "originalEstimatedDuration"; - private static final String AUDIO_TYPE = "audioType"; - private static final String ORIGINAL_STEP_COUNT = "originalStepCount"; - private static final String DEVICE = "device"; - private static final String LOCATION_ENGINE = "locationEngine"; - private static final String VOLUME_LEVEL = "volumeLevel"; - private static final String SCREEN_BRIGHTNESS = "screenBrightness"; - private static final String APPLICATION_STATE = "applicationState"; - private static final String BATTERY_PLUGGED_IN = "batteryPluggedIn"; - private static final String BATTERY_LEVEL = "batteryLevel"; - private static final String CONNECTIVITY = "connectivity"; - private static final String TRIP_IDENTIFIER = "tripIdentifier"; - private static final String LEG_INDEX = "legIndex"; - private static final String LEG_COUNT = "legCount"; - private static final String STEP_INDEX = "stepIndex"; - private static final String STEP_COUNT = "stepCount"; - private static final String VOICE_INDEX = "voiceIndex"; - private static final String BANNER_INDEX = "bannerIndex"; - private static final String TOTAL_STEP_COUNT = "totalStepCount"; - - @Override - public JsonElement serialize(NavigationMetadata src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject metadata = new JsonObject(); - serializeRequired(src, metadata); - serializeOptional(src, metadata); - return metadata; - } - - private void serializeRequired(NavigationMetadata src, JsonObject metadata) { - metadata.addProperty(START_TIMESTAMP, src.getStartTimestamp()); - metadata.addProperty(DISTANCE_COMPLETED, src.getDistanceCompleted()); - metadata.addProperty(DISTANCE_REMAINING, src.getDistanceRemaining()); - metadata.addProperty(DURATION_REMAINING, src.getDurationRemaining()); - metadata.addProperty(OPERATING_SYSTEM, src.getOperatingSystem()); - metadata.addProperty(EVENT_VERSION, src.getEventVersion()); - metadata.addProperty(SDK_IDENTIFIER, src.getSdKIdentifier()); - metadata.addProperty(SDK_VERSION, src.getSdkVersion()); - metadata.addProperty(SESSION_IDENTIFIER, src.getSessionIdentifier()); - metadata.addProperty(LATITUDE, src.getLat()); - metadata.addProperty(LONGITUDE, src.getLng()); - metadata.addProperty(GEOMETRY, src.getGeometry()); - metadata.addProperty(PROFILE, src.getProfile()); - metadata.addProperty(SIMULATION, src.isSimulation()); - metadata.addProperty(DEVICE, src.getDevice()); - metadata.addProperty(LOCATION_ENGINE, src.getLocationEngine()); - metadata.addProperty(CREATED, src.getCreated()); - metadata.addProperty(ABSOLUTE_DISTANCE_TO_DESTINATION, src.getAbsoluteDistanceToDestination()); - metadata.addProperty(TRIP_IDENTIFIER, src.getTripIdentifier()); - metadata.addProperty(LEG_INDEX, src.getLegIndex()); - metadata.addProperty(LEG_COUNT, src.getLegCount()); - metadata.addProperty(STEP_INDEX, src.getStepIndex()); - metadata.addProperty(STEP_COUNT, src.getStepCount()); - metadata.addProperty(TOTAL_STEP_COUNT, src.getTotalStepCount()); - } - - private void serializeOptional(NavigationMetadata src, JsonObject metadata) { - metadata.addProperty(ESTIMATED_DISTANCE, src.getEstimatedDistance()); - metadata.addProperty(ESTIMATED_DURATION, src.getEstimatedDuration()); - metadata.addProperty(REROUTE_COUNT, src.getRerouteCount()); - metadata.addProperty(ORIGINAL_REQUEST_IDENTIFIER, src.getOriginalRequestIdentifier()); - metadata.addProperty(REQUEST_IDENTIFIER, src.getRequestIdentifier()); - metadata.addProperty(ORIGINAL_GEOMETRY, src.getOriginalGeometry()); - metadata.addProperty(ORIGINAL_ESTIMATED_DISTANCE, src.getOriginalEstimatedDistance()); - metadata.addProperty(ORIGINAL_ESTIMATED_DURATION, src.getOriginalEstimatedDuration()); - metadata.addProperty(AUDIO_TYPE, src.getAudioType()); - metadata.addProperty(ORIGINAL_STEP_COUNT, src.getOriginalStepCount()); - metadata.addProperty(VOLUME_LEVEL, src.getVolumeLevel()); - metadata.addProperty(SCREEN_BRIGHTNESS, src.getScreenBrightness()); - metadata.addProperty(APPLICATION_STATE, src.getApplicationState()); - metadata.addProperty(BATTERY_PLUGGED_IN, src.isBatteryPluggedIn()); - metadata.addProperty(BATTERY_LEVEL, src.getBatteryLevel()); - metadata.addProperty(CONNECTIVITY, src.getConnectivity()); - metadata.addProperty(PERCENT_TIME_IN_PORTRAIT, src.getPercentTimeInPortrait()); - metadata.addProperty(PERCENT_TIME_IN_FOREGROUND, src.getPercentTimeInForeground()); - metadata.addProperty(VOICE_INDEX, src.getVoiceIndex()); - metadata.addProperty(BANNER_INDEX, src.getBannerIndex()); - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationNewData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationNewData.java deleted file mode 100644 index 6ad33db5c..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationNewData.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -public class NavigationNewData implements Parcelable { - private Integer newDistanceRemaining; - private Integer newDurationRemaining; - private String newGeometry; - - public NavigationNewData(int newDistanceRemaining, int newDurationRemaining, String newGeometry) { - this.newDistanceRemaining = newDistanceRemaining; - this.newDurationRemaining = newDurationRemaining; - this.newGeometry = newGeometry; - } - - Integer getNewDistanceRemaining() { - return newDistanceRemaining; - } - - Integer getNewDurationRemaining() { - return newDurationRemaining; - } - - String getNewGeometry() { - return newGeometry; - } - - private NavigationNewData(Parcel in) { - if (in.readByte() == 0) { - newDistanceRemaining = null; - } else { - newDistanceRemaining = in.readInt(); - } - if (in.readByte() == 0) { - newDurationRemaining = null; - } else { - newDurationRemaining = in.readInt(); - } - newGeometry = in.readString(); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - if (newDistanceRemaining == null) { - dest.writeByte((byte) 0); - } else { - dest.writeByte((byte) 1); - dest.writeInt(newDistanceRemaining); - } - if (newDurationRemaining == null) { - dest.writeByte((byte) 0); - } else { - dest.writeByte((byte) 1); - dest.writeInt(newDurationRemaining); - } - dest.writeString(newGeometry); - } - - @Override - public int describeContents() { - return 0; - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationNewData createFromParcel(Parcel in) { - return new NavigationNewData(in); - } - - @Override - public NavigationNewData[] newArray(int size) { - return new NavigationNewData[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteData.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteData.java deleted file mode 100644 index 8c9ff9fae..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteData.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.annotations.JsonAdapter; - -public class NavigationRerouteData { - @JsonAdapter(NewDataSerializer.class) - private NavigationNewData navigationNewData; - private int secondsSinceLastReroute; - - public NavigationRerouteData(NavigationNewData navigationNewData, int secondsSinceLastReroute) { - this.navigationNewData = navigationNewData; - this.secondsSinceLastReroute = secondsSinceLastReroute; - } - - NavigationNewData getNavigationNewData() { - return navigationNewData; - } - - Integer getSecondsSinceLastReroute() { - return secondsSinceLastReroute; - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteEvent.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteEvent.java deleted file mode 100644 index 78798c166..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationRerouteEvent.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -import com.google.gson.annotations.JsonAdapter; - -class NavigationRerouteEvent extends Event implements Parcelable { - private static final String NAVIGATION_REROUTE = "navigation.reroute"; - private final String event; - @JsonAdapter(NavigationMetadataSerializer.class) - private NavigationMetadata navigationMetadata; - @JsonAdapter(RerouteDataSerializer.class) - private NavigationRerouteData navigationRerouteData; - @JsonAdapter(LocationDataSerializer.class) - private NavigationLocationData navigationLocationData; - @JsonAdapter(FeedbackDataSerializer.class) - private FeedbackData feedbackData; - private NavigationStepMetadata step = null; - - NavigationRerouteEvent(NavigationState navigationState) { - this.event = NAVIGATION_REROUTE; - this.feedbackData = navigationState.getFeedbackData(); - this.navigationMetadata = navigationState.getNavigationMetadata(); - this.navigationRerouteData = navigationState.getNavigationRerouteData(); - this.navigationLocationData = navigationState.getNavigationLocationData(); - this.step = navigationState.getNavigationStepMetadata(); - } - - @Override - Type obtainType() { - return Type.NAV_REROUTE; - } - - String getEvent() { - return event; - } - - NavigationLocationData getNavigationLocationData() { - return navigationLocationData; - } - - NavigationRerouteData getNavigationRerouteData() { - return navigationRerouteData; - } - - NavigationStepMetadata getStep() { - return step; - } - - FeedbackData getFeedbackData() { - return feedbackData; - } - - NavigationMetadata getNavigationMetadata() { - return navigationMetadata; - } - - private NavigationRerouteEvent(Parcel in) { - event = in.readString(); - navigationMetadata = in.readParcelable(NavigationMetadata.class.getClassLoader()); - navigationLocationData = in.readParcelable(NavigationLocationData.class.getClassLoader()); - feedbackData = in.readParcelable(FeedbackData.class.getClassLoader()); - step = in.readParcelable(NavigationStepMetadata.class.getClassLoader()); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(event); - dest.writeParcelable(navigationMetadata, flags); - dest.writeParcelable(navigationLocationData, flags); - dest.writeParcelable(feedbackData, flags); - dest.writeParcelable(step, flags); - } - - @Override - public int describeContents() { - return 0; - } - - @SuppressWarnings("unused") - public static final Creator CREATOR = new Creator() { - @Override - public NavigationRerouteEvent createFromParcel(Parcel in) { - return new NavigationRerouteEvent(in); - } - - @Override - public NavigationRerouteEvent[] newArray(int size) { - return new NavigationRerouteEvent[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationState.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationState.java deleted file mode 100644 index ae2ee7c34..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationState.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.content.Context; - -public class NavigationState { - private NavigationMetadata navigationMetadata; - private NavigationStepMetadata navigationStepMetadata; - private NavigationCancelData navigationCancelData; - private NavigationLocationData navigationLocationData; - private NavigationRerouteData navigationRerouteData; - private FeedbackEventData feedbackEventData; - private FeedbackData feedbackData; - - @Deprecated - public NavigationState(NavigationMetadata navigationMetadata) { - this.navigationMetadata = navigationMetadata; - } - - public static NavigationState create(NavigationMetadata navigationMetadata, Context context) { - return new NavigationState(navigationMetadata.setDeviceInfo(context)); - } - - NavigationMetadata getNavigationMetadata() { - return navigationMetadata; - } - - NavigationStepMetadata getNavigationStepMetadata() { - return navigationStepMetadata; - } - - public void setNavigationStepMetadata(NavigationStepMetadata navigationStepMetadata) { - this.navigationStepMetadata = navigationStepMetadata; - } - - NavigationCancelData getNavigationCancelData() { - return navigationCancelData; - } - - public void setNavigationCancelData(NavigationCancelData navigationCancelData) { - this.navigationCancelData = navigationCancelData; - } - - NavigationLocationData getNavigationLocationData() { - return navigationLocationData; - } - - public void setNavigationLocationData(NavigationLocationData navigationLocationData) { - this.navigationLocationData = navigationLocationData; - } - - NavigationRerouteData getNavigationRerouteData() { - return navigationRerouteData; - } - - public void setNavigationRerouteData(NavigationRerouteData navigationRerouteData) { - this.navigationRerouteData = navigationRerouteData; - } - - FeedbackEventData getFeedbackEventData() { - return feedbackEventData; - } - - public void setFeedbackEventData(FeedbackEventData feedbackEventData) { - this.feedbackEventData = feedbackEventData; - } - - FeedbackData getFeedbackData() { - return feedbackData; - } - - public void setFeedbackData(FeedbackData feedbackData) { - this.feedbackData = feedbackData; - } -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationStepMetadata.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationStepMetadata.java deleted file mode 100644 index 608c70552..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationStepMetadata.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.os.Parcel; -import android.os.Parcelable; - -public class NavigationStepMetadata implements Parcelable { - private String upcomingInstruction = null; - private String upcomingType = null; - private String upcomingModifier = null; - private String upcomingName = null; - private String previousInstruction = null; - private String previousType = null; - private String previousModifier = null; - private String previousName = null; - private Integer distance = null; - private Integer duration = null; - private Integer distanceRemaining = null; - private Integer durationRemaining = null; - - public NavigationStepMetadata() { - } - - public void setUpcomingInstruction(String upcomingInstruction) { - this.upcomingInstruction = upcomingInstruction; - } - - public void setUpcomingType(String upcomingType) { - this.upcomingType = upcomingType; - } - - public void setUpcomingModifier(String upcomingModifier) { - this.upcomingModifier = upcomingModifier; - } - - public void setUpcomingName(String upcomingName) { - this.upcomingName = upcomingName; - } - - public void setPreviousInstruction(String previousInstruction) { - this.previousInstruction = previousInstruction; - } - - public void setPreviousType(String previousType) { - this.previousType = previousType; - } - - public void setPreviousModifier(String previousModifier) { - this.previousModifier = previousModifier; - } - - public void setPreviousName(String previousName) { - this.previousName = previousName; - } - - public void setDistance(Integer distance) { - this.distance = distance; - } - - public void setDuration(Integer duration) { - this.duration = duration; - } - - public void setDistanceRemaining(Integer distanceRemaining) { - this.distanceRemaining = distanceRemaining; - } - - public void setDurationRemaining(Integer durationRemaining) { - this.durationRemaining = durationRemaining; - } - - private NavigationStepMetadata(Parcel in) { - upcomingInstruction = in.readString(); - upcomingType = in.readString(); - upcomingModifier = in.readString(); - upcomingName = in.readString(); - previousInstruction = in.readString(); - previousType = in.readString(); - previousModifier = in.readString(); - previousName = in.readString(); - distance = in.readByte() == 0x00 ? null : in.readInt(); - duration = in.readByte() == 0x00 ? null : in.readInt(); - distanceRemaining = in.readByte() == 0x00 ? null : in.readInt(); - durationRemaining = in.readByte() == 0x00 ? null : in.readInt(); - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(upcomingInstruction); - dest.writeString(upcomingType); - dest.writeString(upcomingModifier); - dest.writeString(upcomingName); - dest.writeString(previousInstruction); - dest.writeString(previousType); - dest.writeString(previousModifier); - dest.writeString(previousName); - if (distance == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(distance); - } - if (duration == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(duration); - } - if (distanceRemaining == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(distanceRemaining); - } - if (durationRemaining == null) { - dest.writeByte((byte) (0x00)); - } else { - dest.writeByte((byte) (0x01)); - dest.writeInt(durationRemaining); - } - } - - @SuppressWarnings("unused") - public static final Parcelable.Creator CREATOR = - new Parcelable.Creator() { - @Override - public NavigationStepMetadata createFromParcel(Parcel in) { - return new NavigationStepMetadata(in); - } - - @Override - public NavigationStepMetadata[] newArray(int size) { - return new NavigationStepMetadata[size]; - } - }; -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationUtils.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationUtils.java deleted file mode 100644 index 4bf39ab3a..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NavigationUtils.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.content.Context; -import android.media.AudioManager; -import android.provider.Settings; - -class NavigationUtils { - private static final double PERCENT_NORMALIZER = 100.0; - private static final double SCREEN_BRIGHTNESS_MAX = 255.0; - private static final int BRIGHTNESS_EXCEPTION_VALUE = -1; - - static int obtainVolumeLevel(Context context) { - AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - return (int) Math.floor(PERCENT_NORMALIZER * audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) - / audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)); - } - - static int obtainScreenBrightness(Context context) { - int screenBrightness; - try { - screenBrightness = android.provider.Settings.System.getInt(context.getContentResolver(), - android.provider.Settings.System.SCREEN_BRIGHTNESS); - - screenBrightness = calculateScreenBrightnessPercentage(screenBrightness); - } catch (Settings.SettingNotFoundException exception) { - screenBrightness = BRIGHTNESS_EXCEPTION_VALUE; - } - return screenBrightness; - } - - static String obtainAudioType(Context context) { - AudioTypeChain audioTypeChain = new AudioTypeChain(); - AudioTypeResolver setupChain = audioTypeChain.setup(); - - return setupChain.obtainAudioType(context); - } - - private static int calculateScreenBrightnessPercentage(int screenBrightness) { - return (int) Math.floor(PERCENT_NORMALIZER * screenBrightness / SCREEN_BRIGHTNESS_MAX); - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NewDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/NewDataSerializer.java deleted file mode 100644 index a4aa4032c..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/NewDataSerializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; - -class NewDataSerializer implements JsonSerializer { - private static final String NEW_DISTANCE_REMAINING = "newDistanceRemaining"; - private static final String NEW_DURATION_REMAINING = "newDurationRemaining"; - private static final String NEW_GEOMETRY = "newGeometry"; - - @Override - public JsonElement serialize(NavigationNewData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject newData = new JsonObject(); - newData.addProperty(NEW_DISTANCE_REMAINING, src.getNewDistanceRemaining()); - newData.addProperty(NEW_DURATION_REMAINING, src.getNewDurationRemaining()); - newData.addProperty(NEW_GEOMETRY, src.getNewGeometry()); - return newData; - } -} \ No newline at end of file diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteDataSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteDataSerializer.java deleted file mode 100644 index 13f8f617a..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteDataSerializer.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class RerouteDataSerializer implements JsonSerializer { - private static final String SECOND_SINCE_LAST_REROUTE = "secondsSinceLastReroute"; - - @Override - public JsonElement serialize(NavigationRerouteData src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject rerouteData = new JsonObject(); - rerouteData.addProperty(SECOND_SINCE_LAST_REROUTE, src.getSecondsSinceLastReroute()); - serializeNewData(src, context, rerouteData); - return rerouteData; - } - - private void serializeNewData(NavigationRerouteData src, JsonSerializationContext context, - JsonObject rerouteData) { - JsonObject newData = context.serialize(src.getNavigationNewData()).getAsJsonObject(); - for (Map.Entry e : newData.entrySet()) { - rerouteData.add(e.getKey(), e.getValue()); - } - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteEventSerializer.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteEventSerializer.java deleted file mode 100644 index 97715cbd9..000000000 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/RerouteEventSerializer.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.mapbox.android.telemetry; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonSerializationContext; -import com.google.gson.JsonSerializer; - -import java.lang.reflect.Type; -import java.util.Map; - -class RerouteEventSerializer implements JsonSerializer { - private static final String EVENT = "event"; - private static final String STEP = "step"; - - @Override - public JsonElement serialize(NavigationRerouteEvent src, Type typeOfSrc, JsonSerializationContext context) { - JsonObject rerouteEvent = new JsonObject(); - rerouteEvent.addProperty(EVENT, src.getEvent()); - serializeMetadata(src, context, rerouteEvent); - serializeRerouteData(src, context, rerouteEvent); - serializeLocationData(src, context, rerouteEvent); - serializeFeedbackData(src, context, rerouteEvent); - serializeStep(src, context, rerouteEvent); - return rerouteEvent; - } - - private void serializeMetadata(NavigationRerouteEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject metadata = context.serialize(src.getNavigationMetadata()).getAsJsonObject(); - for (Map.Entry e : metadata.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeRerouteData(NavigationRerouteEvent src, JsonSerializationContext context, - JsonObject rerouteEvent) { - JsonObject rerouteData = context.serialize(src.getNavigationRerouteData()).getAsJsonObject(); - for (Map.Entry e : rerouteData.entrySet()) { - rerouteEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeLocationData(NavigationRerouteEvent src, JsonSerializationContext context, - JsonObject rerouteEvent) { - JsonObject locationData = context.serialize(src.getNavigationLocationData()).getAsJsonObject(); - for (Map.Entry e : locationData.entrySet()) { - rerouteEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeFeedbackData(NavigationRerouteEvent src, JsonSerializationContext context, - JsonObject feedbackEvent) { - JsonObject feedbackData = context.serialize(src.getFeedbackData()).getAsJsonObject(); - for (Map.Entry e : feedbackData.entrySet()) { - feedbackEvent.add(e.getKey(), e.getValue()); - } - } - - private void serializeStep(NavigationRerouteEvent src, JsonSerializationContext context, JsonObject rerouteEvent) { - JsonElement step = context.serialize(src.getStep()); - rerouteEvent.add(STEP, step); - } -} diff --git a/libtelemetry/src/main/java/com/mapbox/android/telemetry/TelemetryClient.java b/libtelemetry/src/main/java/com/mapbox/android/telemetry/TelemetryClient.java index 6f0db0366..bb1c61d9f 100644 --- a/libtelemetry/src/main/java/com/mapbox/android/telemetry/TelemetryClient.java +++ b/libtelemetry/src/main/java/com/mapbox/android/telemetry/TelemetryClient.java @@ -1,8 +1,6 @@ package com.mapbox.android.telemetry; import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonSerializer; import java.io.File; import java.io.IOException; @@ -69,7 +67,7 @@ void sendAttachment(Attachment attachment, final CopyOnWriteArraySet batch, Callback callback) { - GsonBuilder gsonBuilder = configureGsonBuilder(); - Gson gson = gsonBuilder.create(); + Gson gson = new Gson(); String payload = gson.toJson(batch); RequestBody body = RequestBody.create(JSON, payload); HttpUrl baseUrl = setting.getBaseUrl(); @@ -161,30 +158,13 @@ private boolean isExtraDebuggingNeeded() { return setting.isDebugLoggingEnabled() || setting.getEnvironment().equals(Environment.STAGING); } - private GsonBuilder configureGsonBuilder() { - GsonBuilder gsonBuilder = new GsonBuilder(); - JsonSerializer arriveSerializer = new ArriveEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationArriveEvent.class, arriveSerializer); - JsonSerializer departSerializer = new DepartEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationDepartEvent.class, departSerializer); - JsonSerializer cancelSerializer = new CancelEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationCancelEvent.class, cancelSerializer); - JsonSerializer feedbackSerializer = new FeedbackEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationFeedbackEvent.class, feedbackSerializer); - JsonSerializer rerouteSerializer = new RerouteEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationRerouteEvent.class, rerouteSerializer); - JsonSerializer fasterRouteSerializer = new FasterRouteEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationFasterRouteEvent.class, fasterRouteSerializer); - return gsonBuilder; - } - private RequestBody reverseMultiForm(MultipartBody.Builder builder) { MultipartBody multipartBody = builder.build(); builder = new MultipartBody.Builder(BOUNDARY) .setType(MultipartBody.FORM); - for (int i = multipartBody.size() - 1; i > -1 ; i--) { + for (int i = multipartBody.size() - 1; i > -1; i--) { builder.addPart(multipartBody.part(i)); } diff --git a/libtelemetry/src/test/java/com/mapbox/android/telemetry/NavigationEventFactoryTest.java b/libtelemetry/src/test/java/com/mapbox/android/telemetry/NavigationEventFactoryTest.java deleted file mode 100644 index 677ad763e..000000000 --- a/libtelemetry/src/test/java/com/mapbox/android/telemetry/NavigationEventFactoryTest.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.app.ActivityManager; -import android.content.Context; -import android.media.AudioManager; -import android.telephony.TelephonyManager; - -import org.junit.Test; - -import java.util.Date; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class NavigationEventFactoryTest { - - @Test - public void checksNavigationDepartEvent() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event departEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_DEPART, mockedNavigationState); - - assertTrue(departEvent instanceof NavigationDepartEvent); - } - - @Test - public void checksDepartType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event departEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_DEPART, mockedNavigationState); - - assertEquals(Event.Type.NAV_DEPART, departEvent.obtainType()); - } - - @Test - public void checksNavigationArriveEvent() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event arriveEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_ARRIVE, mockedNavigationState); - - assertTrue(arriveEvent instanceof NavigationArriveEvent); - } - - @Test - public void checksArriveType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event arriveEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_ARRIVE, mockedNavigationState); - - assertEquals(Event.Type.NAV_ARRIVE, arriveEvent.obtainType()); - } - - @Test - public void checksNavigationCancelEvent() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event cancelEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_CANCEL, mockedNavigationState); - - assertTrue(cancelEvent instanceof NavigationCancelEvent); - } - - @Test - public void checksCancelType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event cancelEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_CANCEL, mockedNavigationState); - - assertEquals(Event.Type.NAV_CANCEL, cancelEvent.obtainType()); - } - - @Test - public void checksNavigationRerouteEvent() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event rerouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_REROUTE, mockedNavigationState); - - assertTrue(rerouteEvent instanceof NavigationRerouteEvent); - } - - @Test - public void checksRerouteType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event rerouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_REROUTE, mockedNavigationState); - - assertEquals(Event.Type.NAV_REROUTE, rerouteEvent.obtainType()); - } - - @Test - public void checksNavigationFeedbackEvent() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event feedbackEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FEEDBACK, mockedNavigationState); - - assertTrue(feedbackEvent instanceof NavigationFeedbackEvent); - } - - @Test - public void checksFeedbackType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - - Event feedbackEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FEEDBACK, mockedNavigationState); - - assertEquals(Event.Type.NAV_FEEDBACK, feedbackEvent.obtainType()); - } - - @Test - public void checksNavigationFasterRouteEvent() throws Exception { - Context mockedContext = mock(Context.class); - ActivityManager mockedActivityManager = mock(ActivityManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mockedActivityManager); - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState aValidNavigationState = obtainAValidNavigationState(); - NavigationRerouteData mockedNavigationRerouteData = mock(NavigationRerouteData.class); - aValidNavigationState.setNavigationRerouteData(mockedNavigationRerouteData); - - - Event fasterRouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FASTER_ROUTE, - aValidNavigationState); - - assertTrue(fasterRouteEvent instanceof NavigationFasterRouteEvent); - } - - @Test - public void checksFasterRouteType() throws Exception { - Context mockedContext = mock(Context.class); - MapboxTelemetry.applicationContext = mockedContext; - ActivityManager mockedActivityManager = mock(ActivityManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mockedActivityManager); - AudioManager mockedAudioManager = mock(AudioManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mockedAudioManager); - TelephonyManager mockedTelephonyManager = mock(TelephonyManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mockedTelephonyManager); - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState aValidNavigationState = obtainAValidNavigationState(); - NavigationRerouteData mockedNavigationRerouteData = mock(NavigationRerouteData.class); - aValidNavigationState.setNavigationRerouteData(mockedNavigationRerouteData); - - Event fasterRouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FASTER_ROUTE, - aValidNavigationState); - - assertEquals(Event.Type.NAV_FASTER_ROUTE, fasterRouteEvent.obtainType()); - } - - @Test(expected = IllegalArgumentException.class) - public void checksFasterRouteTypeWithoutNavigationRerouteData() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState invalidFasterRouteNavigationState = mock(NavigationState.class); - - navigationEventFactory.createNavigationEvent(Event.Type.NAV_FASTER_ROUTE, invalidFasterRouteNavigationState); - } - - @Test(expected = IllegalArgumentException.class) - public void checksInvalidType() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - NavigationState mockedNavigationState = mock(NavigationState.class); - Event.Type notANavigationType = Event.Type.LOCATION; - - navigationEventFactory.createNavigationEvent(notANavigationType, mockedNavigationState); - } - - @Test - public void checksValidNavigationState() throws Exception { - Context mockedContext = mock(Context.class); - ActivityManager mockedActivityManager = mock(ActivityManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mockedActivityManager); - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Event.Type aNavFeedbackEventType = Event.Type.NAV_FEEDBACK; - NavigationState aValidNavigationState = obtainAValidNavigationState(); - - Event aNavFeedbackEvent = navigationEventFactory.createNavigationEvent(aNavFeedbackEventType, - aValidNavigationState); - - assertTrue(aNavFeedbackEvent instanceof NavigationFeedbackEvent); - } - - @Test(expected = IllegalArgumentException.class) - public void checksInvalidNavigationState() throws Exception { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Event.Type aNavArriveEventType = Event.Type.NAV_ARRIVE; - NavigationState nullNavigationState = null; - - navigationEventFactory.createNavigationEvent(aNavArriveEventType, nullNavigationState); - } - - private NavigationState obtainAValidNavigationState() { - NavigationMetadata metadata = new NavigationMetadata(new Date(), 13, 22, 180, "sdkIdentifier", "sdkVersion", - 3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - return new NavigationState(metadata); - } -} \ No newline at end of file diff --git a/libtelemetry/src/test/java/com/mapbox/android/telemetry/SchemaTest.java b/libtelemetry/src/test/java/com/mapbox/android/telemetry/SchemaTest.java index a3c6f85f1..02c2151ff 100644 --- a/libtelemetry/src/test/java/com/mapbox/android/telemetry/SchemaTest.java +++ b/libtelemetry/src/test/java/com/mapbox/android/telemetry/SchemaTest.java @@ -30,15 +30,6 @@ public class SchemaTest { private static final String APP_USER_TURNSTILE = "appUserTurnstile"; private static final String LOCATION = "location"; - private static final String MAP_CLICK = "map.click"; - private static final String MAP_DRAG = "map.dragend"; - private static final String MAP_LOAD = "map.load"; - private static final String NAVIGATION_ARRIVE = "navigation.arrive"; - private static final String NAVIGATION_CANCEL = "navigation.cancel"; - private static final String NAVIGATION_DEPART = "navigation.depart"; - private static final String NAVIGATION_FASTER_ROUTE = "navigation.fasterRoute"; - private static final String NAVIGATION_FEEDBACK = "navigation.feedback"; - private static final String NAVIGATION_REROUTE = "navigation.reroute"; private static ArrayList schemaArray; @BeforeClass @@ -78,137 +69,7 @@ public void checkLocationEventFields() throws Exception { schemaContainsFields(schema, fields); } - @Test - public void checkNavigationArriveEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_ARRIVE); - List fields = grabClassFields(NavigationArriveEvent.class); - fields = addNavigationMetadata(fields); - - assertEquals(schema.size(), fields.size()); - } - - @Test - public void checkNavigationArriveEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_ARRIVE); - List fields = grabClassFields(NavigationArriveEvent.class); - fields = addNavigationMetadata(fields); - - schemaContainsFields(schema, fields); - } - - @Test - public void checkNavigationCancelEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_CANCEL); - List fields = grabClassFields(NavigationCancelEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationCancelData(fields); - - assertEquals(schema.size(), fields.size()); - } - - @Test - public void checkNavigationCancelEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_CANCEL); - List fields = grabClassFields(NavigationCancelEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationCancelData(fields); - - schemaContainsFields(schema, fields); - } - - @Test - public void checkNavigationDepartEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_DEPART); - List fields = grabClassFields(NavigationDepartEvent.class); - fields = addNavigationMetadata(fields); - - assertEquals(schema.size(), fields.size()); - } - - @Test - public void checkNavigationDepartEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_DEPART); - List fields = grabClassFields(NavigationDepartEvent.class); - fields = addNavigationMetadata(fields); - - schemaContainsFields(schema, fields); - } - - @Test - public void checkNavigationFasterRouteEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_FASTER_ROUTE); - List fields = grabClassFields(NavigationFasterRouteEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationNewData(fields); - - assertEquals(schema.size(), fields.size()); - } - @Test - public void checkNavigationFasterRouteEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_FASTER_ROUTE); - List fields = grabClassFields(NavigationFasterRouteEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationNewData(fields); - - schemaContainsFields(schema, fields); - } - - @Test - public void checkNavigationFeedbackEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_FEEDBACK); - List fields = grabClassFields(NavigationFeedbackEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationFeedbackData(fields); - fields = addNavigationLocationData(fields); - fields = addFeedbackEventData(fields); - - assertEquals(schema.size(), fields.size()); - } - - @Test - public void checkNavigationFeedbackEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_FEEDBACK); - List fields = grabClassFields(NavigationFeedbackEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationFeedbackData(fields); - fields = addNavigationLocationData(fields); - fields = addFeedbackEventData(fields); - - schemaContainsFields(schema, fields); - } - - @Test - public void checkNavigationRerouteEventSize() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_REROUTE); - List fields = grabClassFields(NavigationRerouteEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationFeedbackData(fields); - fields = addNavigationRerouteData(fields); - fields = addNavigationLocationData(fields); - fields = addNavigationNewData(fields); - - assertEquals(schema.size(), fields.size()); - } - - @Test - public void checkNavigationRerouteEventFields() throws Exception { - JsonObject schema = grabSchema(NAVIGATION_REROUTE); - List fields = grabClassFields(NavigationRerouteEvent.class); - fields = addNavigationMetadata(fields); - fields = addNavigationStepData(fields); - fields = addNavigationFeedbackData(fields); - fields = addNavigationRerouteData(fields); - fields = addNavigationLocationData(fields); - fields = addNavigationNewData(fields); - - schemaContainsFields(schema, fields); - } @Test public void validateVisionEventFormat() { @@ -362,125 +223,6 @@ private List grabClassFields(Class aClass) { return fields; } - private List addNavigationMetadata(List fields) { - fields = removeField(fields, "metadata"); - fields = removeField(fields, "navigationMetadata"); - - Field[] navMetadataFields = NavigationMetadata.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationStepData(List fields) { - fields = removeField(fields, "step"); - fields = removeField(fields, "navigationstepmetada"); - - Field[] navMetadataFields = NavigationStepMetadata.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationNewData(List fields) { - fields = removeField(fields, "navigationNewData"); - - Field[] navMetadataFields = NavigationNewData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationCancelData(List fields) { - fields = removeField(fields, "cancelData"); - - Field[] navMetadataFields = NavigationCancelData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationFeedbackData(List fields) { - fields = removeField(fields, "feedbackData"); - - Field[] navMetadataFields = FeedbackData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationRerouteData(List fields) { - fields = removeField(fields, "navigationRerouteData"); - - Field[] navMetadataFields = NavigationRerouteData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addNavigationLocationData(List fields) { - fields = removeField(fields, "navigationLocationData"); - - Field[] navMetadataFields = NavigationLocationData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List addFeedbackEventData(List fields) { - fields = removeField(fields, "feedbackEventData"); - - Field[] navMetadataFields = FeedbackEventData.class.getDeclaredFields(); - for (Field field : navMetadataFields) { - if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) { - fields.add(field); - } - } - - return fields; - } - - private List removeField(List fields, String fieldName) { - for (Field field : new ArrayList<>(fields)) { - String thisField = String.valueOf(field); - String[] fieldArray = thisField.split("\\."); - String simpleField = fieldArray[fieldArray.length - 1]; - if (simpleField.equalsIgnoreCase(fieldName)) { - fields.remove(field); - } - } - - return fields; - } - private String generateStepSchemaString(String stepJson, String schemaString) { stepJson = stepJson.replace("\"distanceRemaining\"", "\"stepdistanceRemaining\""); stepJson = stepJson.replace("durationRemaining", "stepdurationRemaining"); diff --git a/libtelemetry/src/test/java/com/mapbox/android/telemetry/SerializerTest.java b/libtelemetry/src/test/java/com/mapbox/android/telemetry/SerializerTest.java deleted file mode 100644 index eaa8441a8..000000000 --- a/libtelemetry/src/test/java/com/mapbox/android/telemetry/SerializerTest.java +++ /dev/null @@ -1,326 +0,0 @@ -package com.mapbox.android.telemetry; - -import android.app.ActivityManager; -import android.content.Context; -import android.location.Location; -import android.media.AudioManager; -import android.telephony.TelephonyManager; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.JsonSerializer; - -import org.junit.Test; - -import java.util.Date; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class SerializerTest { - - @Test - public void checkArriveSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, 180, "sdkIdentifier", "sdkVersion", - 3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - - NavigationArriveEvent navigationArriveEvent = new NavigationArriveEvent(navigationState); - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new ArriveEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationArriveEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationArriveEvent); - - String expectedJson = "{\"event\":\"navigation.arrive\",\"absoluteDistanceToDestination\":50,\"startTimestamp\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"distanceCompleted\":13,\"distanceRemaining\":22," - + "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"AndroidLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10}"; - - assertEquals(expectedJson, payload); - } - - @Test - public void checkDepartSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, 180, "sdkIdentifier", "sdkVersion", - 3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - - NavigationDepartEvent navigationDepartEvent = new NavigationDepartEvent(navigationState); - - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new DepartEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationDepartEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationDepartEvent); - - String expectedJson = "{\"absoluteDistanceToDestination\":50,\"startTimestamp\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"distanceCompleted\":13,\"distanceRemaining\":22," - + "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"AndroidLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10,\"event\":\"navigation.depart\"}"; - - assertEquals(expectedJson, payload); - } - - - @Test - public void checkCancelSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, - 180, "sdkIdentifier", "sdkVersion", 3, "sessionID", 10.5, - 15.67, "geometry", "profile", false, - "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - - NavigationCancelData navigationCancelData = new NavigationCancelData(); - navigationCancelData.setComment("Test"); - navigationCancelData.setRating(75); - - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - navigationState.setNavigationCancelData(navigationCancelData); - - NavigationCancelEvent navigationCancelEvent = new NavigationCancelEvent(navigationState); - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new CancelEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationCancelEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationCancelEvent); - - String expectedJson = "{\"event\":\"navigation.cancel\",\"rating\":75,\"comment\":\"Test\"," - + "\"absoluteDistanceToDestination\":50,\"startTimestamp\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"distanceCompleted\":13,\"distanceRemaining\":22," - + "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"AndroidLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10}"; - - assertEquals(expectedJson, payload); - } - - @Test - public void checkFeedbackSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, 180, "sdkIdentifier", "sdkVersion", - 3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - FeedbackEventData navigationFeedbackData = new FeedbackEventData("userId", "general", - "unknown"); - FeedbackData feedbackData = new FeedbackData(); - Location[] locationsBefore = new Location[1]; - locationsBefore[0] = mock(Location.class); - Location[] locationsAfter = new Location[1]; - locationsAfter[0] = mock(Location.class); - NavigationLocationData navigationLocationData = new NavigationLocationData(locationsBefore, locationsAfter); - - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - navigationState.setNavigationLocationData(navigationLocationData); - navigationState.setFeedbackEventData(navigationFeedbackData); - navigationState.setFeedbackData(feedbackData); - - NavigationFeedbackEvent navigationFeedbackEvent = new NavigationFeedbackEvent(navigationState); - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new FeedbackEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationFeedbackEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationFeedbackEvent); - - String expectedJson = "{\"event\":\"navigation.feedback\",\"absoluteDistanceToDestination\":50," - + "\"startTimestamp\":\"" + TelemetryUtils.generateCreateDateFormatted(testDate) - + "\",\"distanceCompleted\":13,\"distanceRemaining\":22,\"durationRemaining\":180," - + "\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdentifier\",\"sdkVersion\":\"sdkVersion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":false," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"AndroidLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10,\"userId\":\"userId\",\"feedbackType\":\"general\"," - + "\"source\":\"unknown\",\"locationsBefore\":[{}],\"locationsAfter\":[{}],\"feedbackId\":\"" - + feedbackData.getFeedbackId() + "\"}"; - - assertEquals(expectedJson, payload); - } - - @Test - public void checkRerouteSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, - 180, "sdkIdent", "sdkversion", 3, "sessionID", 10.5, - 15.67, "geometry", "profile", true, - "MockLocationEngine", 1300, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - NavigationNewData navigationNewData = new NavigationNewData(100, 750, - "mewGeometry"); - NavigationRerouteData navigationRerouteData = new NavigationRerouteData(navigationNewData, 12000); - FeedbackData feedbackData = new FeedbackData(); - feedbackData.setScreenshot("screenshot"); - - NavigationStepMetadata navigationStepMetadata = new NavigationStepMetadata(); - navigationStepMetadata.setUpcomingInstruction("upcomingInstruction"); - navigationStepMetadata.setUpcomingType("upcomingType"); - navigationStepMetadata.setUpcomingModifier("upcomingModifier"); - navigationStepMetadata.setUpcomingName("upcomingName"); - navigationStepMetadata.setPreviousInstruction("previousInstruction"); - navigationStepMetadata.setPreviousType("previousType"); - navigationStepMetadata.setPreviousModifier("previousModifier"); - navigationStepMetadata.setPreviousName("previousName"); - navigationStepMetadata.setDistance(100); - navigationStepMetadata.setDuration(1200); - navigationStepMetadata.setDistanceRemaining(250); - navigationStepMetadata.setDurationRemaining(2200); - - Location[] locationsBefore = new Location[1]; - Location[] locationsAfter = new Location[1]; - NavigationLocationData navigationLocationData = new NavigationLocationData(locationsBefore, locationsAfter); - - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - - navigationState.setNavigationLocationData(navigationLocationData); - navigationState.setNavigationRerouteData(navigationRerouteData); - navigationState.setFeedbackData(feedbackData); - navigationState.setNavigationStepMetadata(navigationStepMetadata); - - NavigationRerouteEvent navigationRerouteEvent = new NavigationRerouteEvent(navigationState); - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new RerouteEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationRerouteEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationRerouteEvent); - - String expectedJson = "{\"event\":\"navigation.reroute\",\"absoluteDistanceToDestination\":1300," - + "\"startTimestamp\":\"" + TelemetryUtils.generateCreateDateFormatted(testDate) - + "\",\"distanceCompleted\":13,\"distanceRemaining\":22," - + "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdent\",\"sdkVersion\":\"sdkversion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":true," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"MockLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10,\"navigationNewData\":{\"newDistanceRemaining\":100," - + "\"newDurationRemaining\":750,\"newGeometry\":\"mewGeometry\"},\"secondsSinceLastReroute\":12000," - + "\"locationsBefore\":[null],\"locationsAfter\":[null],\"feedbackId\":\"" + feedbackData.getFeedbackId() + "\"," - + "\"screenshot\":\"screenshot\",\"step\":{\"upcomingInstruction\":\"upcomingInstruction\"," - + "\"upcomingType\":\"upcomingType\",\"upcomingModifier\":\"upcomingModifier\",\"upcomingName\":\"upcomingName\"," - + "\"previousInstruction\":\"previousInstruction\",\"previousType\":\"previousType\"," - + "\"previousModifier\":\"previousModifier\",\"previousName\":\"previousName\",\"distance\":100," - + "\"duration\":1200,\"distanceRemaining\":250,\"durationRemaining\":2200}}"; - - assertEquals(expectedJson, payload); - } - - @Test - public void checkFasterRouteSerializing() throws Exception { - Date testDate = new Date(); - NavigationMetadata metadata = new NavigationMetadata(testDate, 13, 22, - 180, "sdkIdent", "sdkversion", 3, "sessionID", 10.5, - 15.67, "geometry", "profile", true, - "MockLocationEngine", 1300, - "tripIdentifier", 3, 5, 2, 3, 10); - metadata.setCreated(testDate); - NavigationNewData navigationNewData = new NavigationNewData(100, 750, - "mewGeometry"); - NavigationRerouteData navigationRerouteData = new NavigationRerouteData(navigationNewData, 12000); - - NavigationStepMetadata navigationStepMetadata = new NavigationStepMetadata(); - navigationStepMetadata.setUpcomingInstruction("upcomingInstruction"); - navigationStepMetadata.setUpcomingType("upcomingType"); - navigationStepMetadata.setUpcomingModifier("upcomingModifier"); - navigationStepMetadata.setUpcomingName("upcomingName"); - navigationStepMetadata.setPreviousInstruction("previousInstruction"); - navigationStepMetadata.setPreviousType("previousType"); - navigationStepMetadata.setPreviousModifier("previousModifier"); - navigationStepMetadata.setPreviousName("previousName"); - navigationStepMetadata.setDistance(100); - navigationStepMetadata.setDuration(1200); - navigationStepMetadata.setDistanceRemaining(250); - navigationStepMetadata.setDurationRemaining(2200); - - NavigationState navigationState = NavigationState.create(metadata, getMockedContext()); - metadata.setBatteryLevel(50); - navigationState.setNavigationRerouteData(navigationRerouteData); - navigationState.setNavigationStepMetadata(navigationStepMetadata); - - NavigationFasterRouteEvent navigationFasterRouteEvent = new NavigationFasterRouteEvent(navigationState); - GsonBuilder gsonBuilder = new GsonBuilder(); - - JsonSerializer serializer = new FasterRouteEventSerializer(); - gsonBuilder.registerTypeAdapter(NavigationFasterRouteEvent.class, serializer); - - Gson customGson = gsonBuilder.create(); - String payload = customGson.toJson(navigationFasterRouteEvent); - - String expectedJson = "{\"event\":\"navigation.fasterRoute\",\"absoluteDistanceToDestination\":1300," - + "\"startTimestamp\":\"" + TelemetryUtils.generateCreateDateFormatted(testDate) - + "\",\"distanceCompleted\":13,\"distanceRemaining\":22," - + "\"durationRemaining\":180,\"operatingSystem\":\"Android - null\",\"eventVersion\":3," - + "\"sdkIdentifier\":\"sdkIdent\",\"sdkVersion\":\"sdkversion\",\"sessionIdentifier\":\"sessionID\"," - + "\"lat\":10.5,\"lng\":15.67,\"geometry\":\"geometry\",\"created\":\"" - + TelemetryUtils.generateCreateDateFormatted(testDate) + "\",\"profile\":\"profile\",\"simulation\":true," - + "\"audioType\":\"unknown\",\"stepCount\":3,\"locationEngine\":\"MockLocationEngine\",\"volumeLevel\":0," - + "\"screenBrightness\":0,\"applicationState\":\"Background\",\"batteryPluggedIn\":false,\"batteryLevel\":50," - + "\"connectivity\":\"Unknown\",\"tripIdentifier\":\"tripIdentifier\",\"legIndex\":3,\"legCount\":5," - + "\"stepIndex\":2,\"totalStepCount\":10,\"newDistanceRemaining\":100," - + "\"newDurationRemaining\":750,\"newGeometry\":\"mewGeometry\",\"step\":" - + "{\"upcomingInstruction\":\"upcomingInstruction\",\"upcomingType\":\"upcomingType\"," - + "\"upcomingModifier\":\"upcomingModifier\",\"upcomingName\":\"upcomingName\",\"previousInstruction\":" - + "\"previousInstruction\",\"previousType\":\"previousType\",\"previousModifier\":\"previousModifier\"," - + "\"previousName\":\"previousName\",\"distance\":100,\"duration\":1200,\"distanceRemaining\":250," - + "\"durationRemaining\":2200}}"; - - assertEquals(expectedJson, payload); - } - - private Context getMockedContext() { - Context mockedContext = mock(Context.class, RETURNS_DEEP_STUBS); - AudioManager mockedAudioManager = mock(AudioManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mockedAudioManager); - TelephonyManager mockedTelephonyManager = mock(TelephonyManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mockedTelephonyManager); - ActivityManager mockedActivityManager = mock(ActivityManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mockedActivityManager); - return mockedContext; - } -} \ No newline at end of file diff --git a/libtelemetry/src/test/java/com/mapbox/android/telemetry/TelemetryClientNavigationEventsTest.java b/libtelemetry/src/test/java/com/mapbox/android/telemetry/TelemetryClientNavigationEventsTest.java deleted file mode 100644 index 4da12c150..000000000 --- a/libtelemetry/src/test/java/com/mapbox/android/telemetry/TelemetryClientNavigationEventsTest.java +++ /dev/null @@ -1,400 +0,0 @@ -package com.mapbox.android.telemetry; - - -import android.app.ActivityManager; -import android.content.Context; -import android.location.Location; -import android.media.AudioManager; -import android.telephony.TelephonyManager; - -import com.google.gson.GsonBuilder; -import com.google.gson.JsonSerializer; - -import org.junit.Test; - -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import okhttp3.Callback; - -import static org.mockito.Mockito.RETURNS_DEEP_STUBS; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class TelemetryClientNavigationEventsTest extends MockWebServerTest { - - private final Map OBTAIN_NAVIGATION_EVENT = new HashMap() { - { - put(Event.Type.NAV_ARRIVE, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainArriveEvent(); - } - }); - put(Event.Type.NAV_DEPART, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainDepartEvent(); - } - }); - put(Event.Type.NAV_CANCEL, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainCancelEvent(); - } - }); - put(Event.Type.NAV_FEEDBACK, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainFeedbackEvent(); - } - }); - put(Event.Type.NAV_REROUTE, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainRerouteEvent(); - } - }); - put(Event.Type.NAV_FASTER_ROUTE, new ObtainNavEvent() { - @Override - public Event obtain() { - return obtainFasterRouteEvent(); - } - }); - } - }; - private final Map CONFIGURE_TYPE_ADAPTER = - new HashMap() { - { - put(Event.Type.NAV_ARRIVE, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureArriveTypeAdapter(gsonBuilder); - } - }); - put(Event.Type.NAV_DEPART, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureDepartTypeAdapter(gsonBuilder); - } - }); - put(Event.Type.NAV_CANCEL, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureCancelTypeAdapter(gsonBuilder); - } - }); - put(Event.Type.NAV_FEEDBACK, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureFeedbackTypeAdapter(gsonBuilder); - } - }); - put(Event.Type.NAV_REROUTE, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureRerouteTypeAdapter(gsonBuilder); - } - }); - put(Event.Type.NAV_FASTER_ROUTE, new ConfigureTypeAdapter() { - @Override - public GsonBuilder configure(GsonBuilder gsonBuilder) { - return configureFasterRouteTypeAdapter(gsonBuilder); - } - }); - } - }; - - @Test - public void sendsTheCorrectBodyPostingAppUserTurnstileEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event anAppUserTurnstile = new AppUserTurnstile("anySdkIdentifier", "anySdkVersion", false); - List theAppUserTurnstile = obtainEvents(anAppUserTurnstile); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theAppUserTurnstile, mockedCallback); - - String expectedRequestBody = obtainExpectedRequestBody(new GsonBuilder(), theAppUserTurnstile.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationArriveEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type arrive = Event.Type.NAV_ARRIVE; - Event anArriveEvent = obtainNavigationEvent(arrive); - List theArriveEvent = obtainEvents(anArriveEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theArriveEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(arrive, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theArriveEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationDepartEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type depart = Event.Type.NAV_DEPART; - Event aDepartEvent = obtainNavigationEvent(depart); - List theDepartEvent = obtainEvents(aDepartEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theDepartEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(depart, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theDepartEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationCancelEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type cancel = Event.Type.NAV_CANCEL; - Event aCancelEvent = obtainNavigationEvent(cancel); - List theCancelEvent = obtainEvents(aCancelEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theCancelEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(cancel, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theCancelEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationFeedbackEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type feedback = Event.Type.NAV_FEEDBACK; - Event aFeedbackEvent = obtainNavigationEvent(feedback); - List theFeedbackEvent = obtainEvents(aFeedbackEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theFeedbackEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(feedback, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theFeedbackEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationRerouteEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type reroute = Event.Type.NAV_REROUTE; - Event aRerouteEvent = obtainNavigationEvent(reroute); - List theRerouteEvent = obtainEvents(aRerouteEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theRerouteEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(reroute, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theRerouteEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingNavigationFasterRouteEvent() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type fasterRoute = Event.Type.NAV_FASTER_ROUTE; - Event aFasterRouteEvent = obtainNavigationEvent(fasterRoute); - List theFasterRouteEvent = obtainEvents(aFasterRouteEvent); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - - telemetryClient.sendEvents(theFasterRouteEvent, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(fasterRoute, new GsonBuilder()); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, theFasterRouteEvent.get(0)); - assertRequestBodyEquals(expectedRequestBody); - } - - @Test - public void sendsTheCorrectBodyPostingMultipleEvents() throws Exception { - setupMockedContext(); - TelemetryClient telemetryClient = obtainATelemetryClient("anyAccessToken", "anyUserAgent"); - Event.Type reroute = Event.Type.NAV_REROUTE; - Event rerouteEvent = obtainNavigationEvent(reroute); - Event.Type fasterRoute = Event.Type.NAV_FASTER_ROUTE; - Event fasterRouteEvent = obtainNavigationEvent(fasterRoute); - Callback mockedCallback = mock(Callback.class); - enqueueMockResponse(); - List events = obtainEvents(rerouteEvent, fasterRouteEvent); - - telemetryClient.sendEvents(events, mockedCallback); - - GsonBuilder gsonBuilder = configureTypeAdapter(reroute, new GsonBuilder()); - gsonBuilder = configureTypeAdapter(fasterRoute, gsonBuilder); - String expectedRequestBody = obtainExpectedRequestBody(gsonBuilder, events.get(0), events.get(1)); - assertRequestBodyEquals(expectedRequestBody); - } - - private NavigationState obtainDefaultNavigationState(Date date) { - NavigationMetadata metadata = new NavigationMetadata(date, 13, 22, 180, "sdkIdentifier", "sdkVersion", - 3, "sessionID", 10.5, 15.67, "geometry", "profile", false, "AndroidLocationEngine", 50, - "tripIdentifier", 3, 5, 2, 3, 10); - return new NavigationState(metadata); - } - - private Event obtainNavigationEvent(Event.Type type) { - return OBTAIN_NAVIGATION_EVENT.get(type).obtain(); - } - - private Event obtainArriveEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - Event arriveEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_ARRIVE, navigationState); - return arriveEvent; - } - - private Event obtainDepartEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - Event departEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_DEPART, navigationState); - return departEvent; - } - - private Event obtainCancelEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - NavigationCancelData navigationCancelData = new NavigationCancelData(); - navigationState.setNavigationCancelData(navigationCancelData); - Event cancelEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_CANCEL, navigationState); - return cancelEvent; - } - - private Event obtainFeedbackEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - FeedbackEventData navigationFeedbackData = new FeedbackEventData("anyUserId", "general", "unknown"); - FeedbackData feedbackData = obtainFeedbackData(); - NavigationLocationData navigationLocationData = obtainLocationData(); - navigationState.setNavigationLocationData(navigationLocationData); - navigationState.setFeedbackEventData(navigationFeedbackData); - navigationState.setFeedbackData(feedbackData); - Event feedbackEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FEEDBACK, navigationState); - return feedbackEvent; - } - - private NavigationLocationData obtainLocationData() { - Location[] locationsBefore = new Location[1]; - Location[] locationsAfter = new Location[1]; - return new NavigationLocationData(locationsBefore, locationsAfter); - } - - private Event obtainRerouteEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - NavigationNewData navigationNewData = obtainNewData(); - NavigationRerouteData navigationRerouteData = new NavigationRerouteData(navigationNewData, 12000); - FeedbackData feedbackData = obtainFeedbackData(); - NavigationStepMetadata navigationStepMetadata = new NavigationStepMetadata(); - NavigationLocationData navigationLocationData = obtainLocationData(); - navigationState.setNavigationLocationData(navigationLocationData); - navigationState.setNavigationRerouteData(navigationRerouteData); - navigationState.setFeedbackData(feedbackData); - navigationState.setNavigationStepMetadata(navigationStepMetadata); - Event rerouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_REROUTE, navigationState); - return rerouteEvent; - } - - private FeedbackData obtainFeedbackData() { - return new FeedbackData(); - } - - private NavigationNewData obtainNewData() { - return new NavigationNewData(100, 750, "newGeometry"); - } - - private Event obtainFasterRouteEvent() { - NavigationEventFactory navigationEventFactory = new NavigationEventFactory(); - Date aDate = new Date(); - NavigationState navigationState = obtainDefaultNavigationState(aDate); - NavigationNewData navigationNewData = obtainNewData(); - NavigationRerouteData navigationRerouteData = new NavigationRerouteData(navigationNewData, 12000); - NavigationStepMetadata navigationStepMetadata = new NavigationStepMetadata(); - navigationState.setNavigationRerouteData(navigationRerouteData); - navigationState.setNavigationStepMetadata(navigationStepMetadata); - Event fasterRouteEvent = navigationEventFactory.createNavigationEvent(Event.Type.NAV_FASTER_ROUTE, navigationState); - return fasterRouteEvent; - } - - private GsonBuilder configureTypeAdapter(Event.Type type, GsonBuilder gsonBuilder) { - return CONFIGURE_TYPE_ADAPTER.get(type).configure(gsonBuilder); - } - - private GsonBuilder configureArriveTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer arriveSerializer = new ArriveEventSerializer(); - GsonBuilder arriveGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationArriveEvent.class, arriveSerializer); - return arriveGsonBuilder; - } - - private GsonBuilder configureDepartTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer serializer = new DepartEventSerializer(); - GsonBuilder departGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationDepartEvent.class, serializer); - return departGsonBuilder; - } - - private GsonBuilder configureCancelTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer serializer = new CancelEventSerializer(); - GsonBuilder cancelGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationCancelEvent.class, serializer); - return cancelGsonBuilder; - } - - private GsonBuilder configureFeedbackTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer serializer = new FeedbackEventSerializer(); - GsonBuilder feedbackGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationFeedbackEvent.class, serializer); - return feedbackGsonBuilder; - } - - private GsonBuilder configureRerouteTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer serializer = new RerouteEventSerializer(); - GsonBuilder rerouteGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationRerouteEvent.class, serializer); - return rerouteGsonBuilder; - } - - private GsonBuilder configureFasterRouteTypeAdapter(GsonBuilder gsonBuilder) { - JsonSerializer serializer = new FasterRouteEventSerializer(); - GsonBuilder fasterRouteGsonBuilder = gsonBuilder.registerTypeAdapter(NavigationFasterRouteEvent.class, serializer); - return fasterRouteGsonBuilder; - } - - interface ObtainNavEvent { - Event obtain(); - } - - interface ConfigureTypeAdapter { - GsonBuilder configure(GsonBuilder gsonBuilder); - } - - private void setupMockedContext() { - Context mockedContext = mock(Context.class, RETURNS_DEEP_STUBS); - MapboxTelemetry.applicationContext = mockedContext; - AudioManager mockedAudioManager = mock(AudioManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.AUDIO_SERVICE)).thenReturn(mockedAudioManager); - TelephonyManager mockedTelephonyManager = mock(TelephonyManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mockedTelephonyManager); - ActivityManager mockedActivityManager = mock(ActivityManager.class, RETURNS_DEEP_STUBS); - when(mockedContext.getSystemService(Context.ACTIVITY_SERVICE)).thenReturn(mockedActivityManager); - } -}