diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapDragendEvent.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapDragendEvent.java | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapDragendEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapDragendEvent.java new file mode 100644 index 0000000000..830617fb72 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapDragendEvent.java @@ -0,0 +1,117 @@ +package com.mapbox.mapboxsdk.module.telemetry; + +import android.content.Context; +import android.os.Parcel; +import android.os.Parcelable; + +import com.google.gson.annotations.SerializedName; +import com.mapbox.android.telemetry.Event; +import com.mapbox.android.telemetry.TelemetryUtils; + +class MapDragendEvent extends Event implements Parcelable { + private static final String MAP_DRAGEND = "map.dragend"; + + @SerializedName("event") + private final String event; + @SerializedName("created") + private String created; + @SerializedName("lat") + private double latitude; + @SerializedName("lng") + private double longitude; + @SerializedName("zoom") + private double zoom; + @SerializedName("orientation") + private String orientation = null; + @SerializedName("batteryLevel") + private int batteryLevel; + @SerializedName("pluggedIn") + private Boolean pluggedIn; + @SerializedName("carrier") + private String carrier = null; + @SerializedName("cellularNetworkType") + private String cellularNetworkType; + @SerializedName("wifi") + private Boolean wifi = null; + + MapDragendEvent(MapState mapState) { + this.event = MAP_DRAGEND; + this.latitude = mapState.getLatitude(); + this.longitude = mapState.getLongitude(); + this.zoom = mapState.getZoom(); + this.created = TelemetryUtils.obtainCurrentDate(); + this.batteryLevel = 0; + this.pluggedIn = false; + this.cellularNetworkType = ""; + } + + MapDragendEvent setDeviceInfo(Context context) { + this.batteryLevel = TelemetryUtils.obtainBatteryLevel(context); + this.pluggedIn = TelemetryUtils.isPluggedIn(context); + this.cellularNetworkType = TelemetryUtils.obtainCellularNetworkType(context); + return this; + } + + void setOrientation(String orientation) { + this.orientation = orientation; + } + + void setCarrier(String carrier) { + this.carrier = carrier; + } + + void setWifi(boolean wifi) { + this.wifi = wifi; + } + + private MapDragendEvent(Parcel in) { + event = in.readString(); + created = in.readString(); + latitude = in.readDouble(); + longitude = in.readDouble(); + zoom = in.readDouble(); + orientation = in.readString(); + batteryLevel = in.readInt(); + pluggedIn = in.readByte() != 0x00; + carrier = in.readString(); + cellularNetworkType = in.readString(); + byte wifiVal = in.readByte(); + wifi = wifiVal == 0x02 ? null : wifiVal != 0x00; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(event); + dest.writeString(created); + dest.writeDouble(latitude); + dest.writeDouble(longitude); + dest.writeDouble(zoom); + dest.writeString(orientation); + dest.writeInt(batteryLevel); + dest.writeByte((byte) (pluggedIn ? 0x01 : 0x00)); + dest.writeString(carrier); + dest.writeString(cellularNetworkType); + if (wifi == null) { + dest.writeByte((byte) (0x02)); + } else { + dest.writeByte((byte) (wifi ? 0x01 : 0x00)); + } + } + + public static final Creator<MapDragendEvent> CREATOR = new Creator<MapDragendEvent>() { + @Override + public MapDragendEvent createFromParcel(Parcel in) { + return new MapDragendEvent(in); + } + + @Override + public MapDragendEvent[] newArray(int size) { + return new MapDragendEvent[size]; + } + }; +}
\ No newline at end of file |