diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module')
9 files changed, 456 insertions, 47 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapClickEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapClickEvent.java index 91e8c0f6f3..e77a9d9e5b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapClickEvent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapClickEvent.java @@ -83,6 +83,91 @@ class MapClickEvent extends Event { } @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MapClickEvent that = (MapClickEvent) o; + + if (Double.compare(that.latitude, latitude) != 0) { + return false; + } + if (Double.compare(that.longitude, longitude) != 0) { + return false; + } + if (Double.compare(that.zoom, zoom) != 0) { + return false; + } + if (batteryLevel != that.batteryLevel) { + return false; + } + if (pluggedIn != that.pluggedIn) { + return false; + } + if (wifi != that.wifi) { + return false; + } + if (created != null ? !created.equals(that.created) : that.created != null) { + return false; + } + if (gesture != null ? !gesture.equals(that.gesture) : that.gesture != null) { + return false; + } + if (cellularNetworkType != null ? !cellularNetworkType.equals(that.cellularNetworkType) : + that.cellularNetworkType != null) { + return false; + } + if (carrier != null ? !carrier.equals(that.carrier) : that.carrier != null) { + return false; + } + return orientation != null ? orientation.equals(that.orientation) : that.orientation == null; + } + + @Override + public int hashCode() { + int result; + long temp; + result = event.hashCode(); + result = 31 * result + (created != null ? created.hashCode() : 0); + result = 31 * result + (gesture != null ? gesture.hashCode() : 0); + result = 31 * result + (cellularNetworkType != null ? cellularNetworkType.hashCode() : 0); + result = 31 * result + (carrier != null ? carrier.hashCode() : 0); + result = 31 * result + (orientation != null ? orientation.hashCode() : 0); + temp = Double.doubleToLongBits(latitude); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(longitude); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(zoom); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + result = 31 * result + batteryLevel; + result = 31 * result + (pluggedIn ? 1 : 0); + result = 31 * result + (wifi ? 1 : 0); + return result; + } + + @Override + public String toString() { + return "MapClickEvent{" + + "event='" + event + '\'' + + ", created='" + created + '\'' + + ", gesture='" + gesture + '\'' + + ", cellularNetworkType='" + cellularNetworkType + '\'' + + ", carrier='" + carrier + '\'' + + ", orientation='" + orientation + '\'' + + ", latitude=" + latitude + + ", longitude=" + longitude + + ", zoom=" + zoom + + ", batteryLevel=" + batteryLevel + + ", pluggedIn=" + pluggedIn + + ", wifi=" + wifi + + '}'; + } + + @Override public int describeContents() { return 0; } 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 index 36c75112f1..0b9646b462 100644 --- 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 @@ -76,6 +76,86 @@ class MapDragendEvent extends Event { } @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MapDragendEvent that = (MapDragendEvent) o; + + if (batteryLevel != that.batteryLevel) { + return false; + } + if (Double.compare(that.lat, lat) != 0) { + return false; + } + if (Double.compare(that.lng, lng) != 0) { + return false; + } + if (Double.compare(that.zoom, zoom) != 0) { + return false; + } + if (pluggedIn != that.pluggedIn) { + return false; + } + if (wifi != that.wifi) { + return false; + } + if (created != null ? !created.equals(that.created) : that.created != null) { + return false; + } + if (orientation != null ? !orientation.equals(that.orientation) : that.orientation != null) { + return false; + } + if (carrier != null ? !carrier.equals(that.carrier) : that.carrier != null) { + return false; + } + return cellularNetworkType != null ? cellularNetworkType.equals(that.cellularNetworkType) : + that.cellularNetworkType == null; + } + + @Override + public int hashCode() { + int result; + long temp; + result = event.hashCode(); + result = 31 * result + (created != null ? created.hashCode() : 0); + result = 31 * result + (orientation != null ? orientation.hashCode() : 0); + result = 31 * result + (carrier != null ? carrier.hashCode() : 0); + result = 31 * result + (cellularNetworkType != null ? cellularNetworkType.hashCode() : 0); + result = 31 * result + batteryLevel; + temp = Double.doubleToLongBits(lat); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(lng); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + temp = Double.doubleToLongBits(zoom); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + result = 31 * result + (pluggedIn ? 1 : 0); + result = 31 * result + (wifi ? 1 : 0); + return result; + } + + @Override + public String toString() { + return "MapDragendEvent{" + + "event='" + event + '\'' + + ", created='" + created + '\'' + + ", orientation='" + orientation + '\'' + + ", carrier='" + carrier + '\'' + + ", cellularNetworkType='" + cellularNetworkType + '\'' + + ", batteryLevel=" + batteryLevel + + ", lat=" + lat + + ", lng=" + lng + + ", zoom=" + zoom + + ", pluggedIn=" + pluggedIn + + ", wifi=" + wifi + + '}'; + } + + @Override public int describeContents() { return 0; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java index e041f2ae31..d5e9e5b491 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java @@ -1,8 +1,11 @@ package com.mapbox.mapboxsdk.module.telemetry; +import android.support.annotation.FloatRange; import android.support.annotation.NonNull; import com.mapbox.android.telemetry.TelemetryUtils; +import com.mapbox.mapboxsdk.constants.MapboxConstants; +import com.mapbox.mapboxsdk.offline.OfflineRegion; class MapEventFactory { @@ -13,7 +16,10 @@ class MapEventFactory { static OfflineDownloadStartEvent buildOfflineDownloadStartEvent(PhoneState phoneState, String shapeForOfflineRegion, - Double minZoom, Double maxZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double minZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double maxZoom, String styleURL) { OfflineDownloadStartEvent offlineEvent = @@ -24,11 +30,14 @@ class MapEventFactory { static OfflineDownloadEndEvent buildOfflineDownloadCompleteEvent(PhoneState phoneState, String shapeForOfflineRegion, - Double minZoom, Double maxZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double minZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double maxZoom, String styleURL, Long sizeOfResourcesCompleted, Long numberOfTilesCompleted, - String state) { + @OfflineRegion.DownloadState int state) { OfflineDownloadEndEvent offlineEvent = new OfflineDownloadEndEvent(phoneState, shapeForOfflineRegion, minZoom, maxZoom); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapLoadEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapLoadEvent.java index e0a7f17e01..61bc87da2b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapLoadEvent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapLoadEvent.java @@ -99,6 +99,95 @@ class MapLoadEvent extends Event { } @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MapLoadEvent that = (MapLoadEvent) o; + + if (Float.compare(that.resolution, resolution) != 0) { + return false; + } + if (Float.compare(that.accessibilityFontScale, accessibilityFontScale) != 0) { + return false; + } + if (batteryLevel != that.batteryLevel) { + return false; + } + if (pluggedIn != that.pluggedIn) { + return false; + } + if (wifi != that.wifi) { + return false; + } + if (!operatingSystem.equals(that.operatingSystem)) { + return false; + } + if (model != null ? !model.equals(that.model) : that.model != null) { + return false; + } + if (created != null ? !created.equals(that.created) : that.created != null) { + return false; + } + if (userId != null ? !userId.equals(that.userId) : that.userId != null) { + return false; + } + if (carrier != null ? !carrier.equals(that.carrier) : that.carrier != null) { + return false; + } + if (cellularNetworkType != null ? !cellularNetworkType.equals(that.cellularNetworkType) : + that.cellularNetworkType != null) { + return false; + } + return orientation != null ? orientation.equals(that.orientation) : that.orientation == null; + } + + @Override + public int hashCode() { + int result = event.hashCode(); + result = 31 * result + operatingSystem.hashCode(); + result = 31 * result + sdkIdentifier.hashCode(); + result = 31 * result + sdkVersion.hashCode(); + result = 31 * result + (model != null ? model.hashCode() : 0); + result = 31 * result + (created != null ? created.hashCode() : 0); + result = 31 * result + (userId != null ? userId.hashCode() : 0); + result = 31 * result + (carrier != null ? carrier.hashCode() : 0); + result = 31 * result + (cellularNetworkType != null ? cellularNetworkType.hashCode() : 0); + result = 31 * result + (orientation != null ? orientation.hashCode() : 0); + result = 31 * result + (resolution != +0.0f ? Float.floatToIntBits(resolution) : 0); + result = 31 * result + (accessibilityFontScale != +0.0f ? Float.floatToIntBits(accessibilityFontScale) : 0); + result = 31 * result + batteryLevel; + result = 31 * result + (pluggedIn ? 1 : 0); + result = 31 * result + (wifi ? 1 : 0); + return result; + } + + @Override + public String toString() { + return "MapLoadEvent{" + + "event='" + event + '\'' + + ", operatingSystem='" + operatingSystem + '\'' + + ", sdkIdentifier='" + sdkIdentifier + '\'' + + ", sdkVersion='" + sdkVersion + '\'' + + ", model='" + model + '\'' + + ", created='" + created + '\'' + + ", userId='" + userId + '\'' + + ", carrier='" + carrier + '\'' + + ", cellularNetworkType='" + cellularNetworkType + '\'' + + ", orientation='" + orientation + '\'' + + ", resolution=" + resolution + + ", accessibilityFontScale=" + accessibilityFontScale + + ", batteryLevel=" + batteryLevel + + ", pluggedIn=" + pluggedIn + + ", wifi=" + wifi + + '}'; + } + + @Override public int describeContents() { return 0; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapState.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapState.java index d44be49224..cb58f8c1a2 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapState.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapState.java @@ -1,12 +1,17 @@ package com.mapbox.mapboxsdk.module.telemetry; +import android.support.annotation.FloatRange; + +import com.mapbox.mapboxsdk.constants.MapboxConstants; + public class MapState { private double latitude; private double longitude; private double zoom; private String gesture; - MapState(double latitude, double longitude, double zoom) { + MapState(double latitude, double longitude, @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) double zoom) { this.latitude = latitude; this.longitude = longitude; this.zoom = zoom; diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadEndEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadEndEvent.java index cbc79c7b60..e086d760b7 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadEndEvent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadEndEvent.java @@ -2,8 +2,11 @@ package com.mapbox.mapboxsdk.module.telemetry; import android.annotation.SuppressLint; import android.os.Parcel; +import android.support.annotation.FloatRange; import com.mapbox.android.telemetry.Event; +import com.mapbox.mapboxsdk.constants.MapboxConstants; +import com.mapbox.mapboxsdk.offline.OfflineRegion; /** * Event will be sent while offline download end. @@ -16,33 +19,37 @@ public class OfflineDownloadEndEvent extends Event { private final Double maxZoom; private final String shapeForOfflineRegion; private String styleURL; - private Long sizeOfResourcesCompleted; - private Long numberOfTilesCompleted; - private String state; + private long sizeOfResourcesCompleted; + private long numberOfTilesCompleted; + private int state; + + OfflineDownloadEndEvent(PhoneState phoneState, String shapeForOfflineRegion, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double minZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double maxZoom) { + this.created = phoneState.getCreated(); + this.shapeForOfflineRegion = shapeForOfflineRegion; + this.minZoom = minZoom; + this.maxZoom = maxZoom; + } void setStyleURL(String styleURL) { this.styleURL = styleURL; } - void setSizeOfResourcesCompleted(Long sizeOfResourcesCompleted) { + void setSizeOfResourcesCompleted(long sizeOfResourcesCompleted) { this.sizeOfResourcesCompleted = sizeOfResourcesCompleted; } - void setNumberOfTilesCompleted(Long numberOfTilesCompleted) { + void setNumberOfTilesCompleted(long numberOfTilesCompleted) { this.numberOfTilesCompleted = numberOfTilesCompleted; } - void setState(String state) { + void setState(@OfflineRegion.DownloadState int state) { this.state = state; } - OfflineDownloadEndEvent(PhoneState phoneState, String shapeForOfflineRegion, Double minZoom, Double maxZoom) { - this.created = phoneState.getCreated(); - this.shapeForOfflineRegion = shapeForOfflineRegion; - this.minZoom = minZoom; - this.maxZoom = maxZoom; - } - String getCreated() { return created; } @@ -63,19 +70,84 @@ public class OfflineDownloadEndEvent extends Event { return styleURL; } - Long getSizeOfResourcesCompleted() { + long getSizeOfResourcesCompleted() { return sizeOfResourcesCompleted; } - Long getNumberOfTilesCompleted() { + long getNumberOfTilesCompleted() { return numberOfTilesCompleted; } - String getState() { + int getState() { return state; } @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + OfflineDownloadEndEvent that = (OfflineDownloadEndEvent) o; + + if (sizeOfResourcesCompleted != that.sizeOfResourcesCompleted) { + return false; + } + if (numberOfTilesCompleted != that.numberOfTilesCompleted) { + return false; + } + if (state != that.state) { + return false; + } + if (created != null ? !created.equals(that.created) : that.created != null) { + return false; + } + if (minZoom != null ? !minZoom.equals(that.minZoom) : that.minZoom != null) { + return false; + } + if (maxZoom != null ? !maxZoom.equals(that.maxZoom) : that.maxZoom != null) { + return false; + } + if (shapeForOfflineRegion != null ? !shapeForOfflineRegion.equals(that.shapeForOfflineRegion) : + that.shapeForOfflineRegion != null) { + return false; + } + return styleURL != null ? styleURL.equals(that.styleURL) : that.styleURL == null; + } + + @Override + public int hashCode() { + int result = event.hashCode(); + result = 31 * result + (created != null ? created.hashCode() : 0); + result = 31 * result + (minZoom != null ? minZoom.hashCode() : 0); + result = 31 * result + (maxZoom != null ? maxZoom.hashCode() : 0); + result = 31 * result + (shapeForOfflineRegion != null ? shapeForOfflineRegion.hashCode() : 0); + result = 31 * result + (styleURL != null ? styleURL.hashCode() : 0); + result = 31 * result + (int) (sizeOfResourcesCompleted ^ (sizeOfResourcesCompleted >>> 32)); + result = 31 * result + (int) (numberOfTilesCompleted ^ (numberOfTilesCompleted >>> 32)); + result = 31 * result + state; + return result; + } + + @Override + public String toString() { + return "OfflineDownloadEndEvent{" + + "event='" + event + '\'' + + ", created='" + created + '\'' + + ", minZoom=" + minZoom + + ", maxZoom=" + maxZoom + + ", shapeForOfflineRegion='" + shapeForOfflineRegion + '\'' + + ", styleURL='" + styleURL + '\'' + + ", sizeOfResourcesCompleted=" + sizeOfResourcesCompleted + + ", numberOfTilesCompleted=" + numberOfTilesCompleted + + ", state=" + state + + '}'; + } + + @Override public int describeContents() { return 0; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadStartEvent.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadStartEvent.java index ab39e2d820..2900557805 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadStartEvent.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/OfflineDownloadStartEvent.java @@ -2,8 +2,10 @@ package com.mapbox.mapboxsdk.module.telemetry; import android.annotation.SuppressLint; import android.os.Parcel; +import android.support.annotation.FloatRange; import com.mapbox.android.telemetry.Event; +import com.mapbox.mapboxsdk.constants.MapboxConstants; /** * Event will be sent while offline download start. @@ -17,17 +19,21 @@ public class OfflineDownloadStartEvent extends Event { private final String shapeForOfflineRegion; private String styleURL; - void setStyleURL(String styleURL) { - this.styleURL = styleURL; - } - - OfflineDownloadStartEvent(PhoneState phoneState, String shapeForOfflineRegion, Double minZoom, Double maxZoom) { + OfflineDownloadStartEvent(PhoneState phoneState, String shapeForOfflineRegion, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double minZoom, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) Double maxZoom) { this.created = phoneState.getCreated(); this.shapeForOfflineRegion = shapeForOfflineRegion; this.minZoom = minZoom; this.maxZoom = maxZoom; } + void setStyleURL(String styleURL) { + this.styleURL = styleURL; + } + String getCreated() { return created; } @@ -49,6 +55,56 @@ public class OfflineDownloadStartEvent extends Event { } @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + OfflineDownloadStartEvent that = (OfflineDownloadStartEvent) o; + + if (created != null ? !created.equals(that.created) : that.created != null) { + return false; + } + if (minZoom != null ? !minZoom.equals(that.minZoom) : that.minZoom != null) { + return false; + } + if (maxZoom != null ? !maxZoom.equals(that.maxZoom) : that.maxZoom != null) { + return false; + } + if (shapeForOfflineRegion != null ? !shapeForOfflineRegion.equals(that.shapeForOfflineRegion) : + that.shapeForOfflineRegion != null) { + return false; + } + return styleURL != null ? styleURL.equals(that.styleURL) : that.styleURL == null; + } + + @Override + public int hashCode() { + int result = event.hashCode(); + result = 31 * result + (created != null ? created.hashCode() : 0); + result = 31 * result + (minZoom != null ? minZoom.hashCode() : 0); + result = 31 * result + (maxZoom != null ? maxZoom.hashCode() : 0); + result = 31 * result + (shapeForOfflineRegion != null ? shapeForOfflineRegion.hashCode() : 0); + result = 31 * result + (styleURL != null ? styleURL.hashCode() : 0); + return result; + } + + @Override + public String toString() { + return "OfflineDownloadStartEvent{" + + "event='" + event + '\'' + + ", created='" + created + '\'' + + ", minZoom=" + minZoom + + ", maxZoom=" + maxZoom + + ", shapeForOfflineRegion='" + shapeForOfflineRegion + '\'' + + ", styleURL='" + styleURL + '\'' + + '}'; + } + + @Override public int describeContents() { return 0; } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/PhoneState.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/PhoneState.java index 8cd388357b..a7f574bf40 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/PhoneState.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/PhoneState.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.res.Configuration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; +import android.support.annotation.NonNull; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.DisplayMetrics; @@ -11,28 +12,15 @@ import android.view.WindowManager; import com.mapbox.android.telemetry.TelemetryUtils; -import java.util.HashMap; -import java.util.Map; - /** * Class that holds kinds of states of the current phone. */ class PhoneState { - static final String LANDSCAPE = "Landscape"; - static final String PORTRAIT = "Portrait"; private static final String NO_CARRIER = "EMPTY_CARRIER"; private static final int NO_NETWORK = -1; - - private static final Map<Integer, String> ORIENTATIONS = new HashMap<Integer, String>() { - { - put(Configuration.ORIENTATION_LANDSCAPE, LANDSCAPE); - put(Configuration.ORIENTATION_PORTRAIT, PORTRAIT); - } - }; - private String created; private String cellularNetworkType; - private String orientation; + private Orientation orientation; private String carrier; private int batteryLevel; private boolean pluggedIn; @@ -44,19 +32,19 @@ class PhoneState { } - PhoneState(Context context) { + PhoneState(@NonNull Context context) { this.created = TelemetryUtils.obtainCurrentDate(); this.batteryLevel = TelemetryUtils.obtainBatteryLevel(context); this.pluggedIn = TelemetryUtils.isPluggedIn(context); this.cellularNetworkType = TelemetryUtils.obtainCellularNetworkType(context); - this.orientation = ORIENTATIONS.get(context.getResources().getConfiguration().orientation); + this.orientation = Orientation.getOrientation(context.getResources().getConfiguration().orientation); this.accessibilityFontScale = context.getResources().getConfiguration().fontScale; this.carrier = obtainCellularCarrier(context); this.resolution = obtainDisplayDensity(context); this.wifi = isConnectedToWifi(context); } - private String obtainCellularCarrier(Context context) { + private String obtainCellularCarrier(@NonNull Context context) { TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); if (manager == null) { return NO_CARRIER; @@ -68,13 +56,13 @@ class PhoneState { return carrierName; } - private float obtainDisplayDensity(Context context) { + private float obtainDisplayDensity(@NonNull Context context) { DisplayMetrics displayMetrics = new DisplayMetrics(); ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getMetrics(displayMetrics); return displayMetrics.density; } - private boolean isConnectedToWifi(Context context) { + private boolean isConnectedToWifi(@NonNull Context context) { try { WifiManager wifiMgr = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); if (wifiMgr == null) { @@ -121,10 +109,10 @@ class PhoneState { } String getOrientation() { - return orientation; + return orientation.getOrientation(); } - void setOrientation(String orientation) { + void setOrientation(Orientation orientation) { this.orientation = orientation; } @@ -159,4 +147,25 @@ class PhoneState { void setResolution(float resolution) { this.resolution = resolution; } + + enum Orientation { + ORIENTATION_PORTRAIT("Portrait"), + ORIENTATION_LANDSCAPE("Landscape"); + private String orientation; + + Orientation(String orientation) { + this.orientation = orientation; + } + + public static Orientation getOrientation(int index) { + if (Configuration.ORIENTATION_PORTRAIT == index) { + return ORIENTATION_PORTRAIT; + } + return ORIENTATION_LANDSCAPE; + } + + public String getOrientation() { + return orientation; + } + } } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java index 5b14fe249a..46a0c47d50 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/TelemetryImpl.java @@ -2,6 +2,7 @@ package com.mapbox.mapboxsdk.module.telemetry; import android.content.Context; import android.os.Bundle; +import android.support.annotation.FloatRange; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -11,6 +12,7 @@ import com.mapbox.android.telemetry.SessionInterval; import com.mapbox.android.telemetry.TelemetryEnabler; import com.mapbox.mapboxsdk.BuildConfig; import com.mapbox.mapboxsdk.Mapbox; +import com.mapbox.mapboxsdk.constants.MapboxConstants; import com.mapbox.mapboxsdk.maps.TelemetryDefinition; import com.mapbox.mapboxsdk.offline.OfflineRegionDefinition; import com.mapbox.mapboxsdk.offline.OfflineTilePyramidRegionDefinition; @@ -53,7 +55,9 @@ public class TelemetryImpl implements TelemetryDefinition { * @param zoom current zoom of the map */ @Override - public void onGestureInteraction(String eventType, double latitude, double longitude, double zoom) { + public void onGestureInteraction(String eventType, double latitude, double longitude, + @FloatRange(from = MapboxConstants.MINIMUM_ZOOM, + to = MapboxConstants.MAXIMUM_ZOOM) double zoom) { MapState state = new MapState(latitude, longitude, zoom); state.setGesture(eventType); telemetry.push(MapEventFactory.buildMapClickEvent(new PhoneState(appContext), state)); |