summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/module/telemetry/MapEventFactory.java135
1 files changed, 34 insertions, 101 deletions
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 7f96501d6b..ecca20dada 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
@@ -4,36 +4,23 @@ 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;
import android.view.WindowManager;
import com.mapbox.android.telemetry.Event;
-import com.mapbox.android.telemetry.MapBuildEvent;
-import com.mapbox.android.telemetry.MapClickEvent;
-import com.mapbox.android.telemetry.MapDragendEvent;
-import com.mapbox.android.telemetry.MapLoadEvent;
-import com.mapbox.android.telemetry.MapState;
-import com.mapbox.android.telemetry.MapboxTelemetry;
-import com.mapbox.android.telemetry.OfflineDownloadEndEvent;
-import com.mapbox.android.telemetry.OfflineDownloadStartEvent;
import com.mapbox.android.telemetry.TelemetryUtils;
import java.util.HashMap;
import java.util.Map;
public class MapEventFactory {
- private static final String APPLICATION_CONTEXT_CANT_BE_NULL = "Create a MapboxTelemetry instance before calling "
- + "this method.";
private static final String LANDSCAPE = "Landscape";
private static final String PORTRAIT = "Portrait";
private static final String NO_CARRIER = "EMPTY_CARRIER";
private static final int NO_NETWORK = -1;
- private static final String NOT_A_LOAD_MAP_EVENT_TYPE = "Type must be a load map event.";
- private static final String NOT_A_GESTURE_MAP_EVENT_TYPE = "Type must be a gesture map event.";
- private static final String NOT_OFFLINEDOWNLOAD_EVENT_TYPE = "Type must be an offline download map event.";
- private static final String MAP_STATE_ILLEGAL_NULL = "MapState cannot be null.";
private static final Map<Integer, String> ORIENTATIONS = new HashMap<Integer, String>() {
{
@@ -41,42 +28,27 @@ public class MapEventFactory {
put(Configuration.ORIENTATION_PORTRAIT, PORTRAIT);
}
};
- private final Map<Event.Type, MapBuildEvent> BUILD_EVENT_MAP_GESTURE = new HashMap<Event.Type, MapBuildEvent>() {
- {
- put(Event.Type.MAP_CLICK, new MapBuildEvent() {
- @Override
- public Event build(MapState mapState) {
- return buildMapClickEvent(mapState);
- }
- });
- put(Event.Type.MAP_DRAGEND, new MapBuildEvent() {
- @Override
- public Event build(MapState mapState) {
- return buildMapDragendEvent(mapState);
- }
- });
- }
- };
- public MapEventFactory() {
- if (MapboxTelemetry.applicationContext == null) {
- throw new IllegalStateException(APPLICATION_CONTEXT_CANT_BE_NULL);
- }
- }
+ private final Context appContext;
- public Event createMapLoadEvent(Event.Type type) {
- checkLoad(type);
- return buildMapLoadEvent();
+ MapEventFactory(Context appContext) {
+ this.appContext = appContext;
}
- public Event createMapGestureEvent(Event.Type type, MapState mapState) {
- checkGesture(type, mapState);
- return BUILD_EVENT_MAP_GESTURE.get(type).build(mapState);
+ Event buildMapLoadEvent() {
+ String userId = TelemetryUtils.retrieveVendorId();
+ MapLoadEvent mapLoadEvent = new MapLoadEvent(userId).setDeviceInfo(appContext);
+ mapLoadEvent.setOrientation(obtainOrientation(appContext));
+ mapLoadEvent.setAccessibilityFontScale(obtainAccessibilityFontScaleSize(appContext));
+ mapLoadEvent.setCarrier(obtainCellularCarrier(appContext));
+ mapLoadEvent.setResolution(obtainDisplayDensity(appContext));
+ mapLoadEvent.setWifi(isConnectedToWifi(appContext));
+ return mapLoadEvent;
}
- public Event createOfflineDownloadStartEvent(String shapeForOfflineRegion,
- Double minZoom, Double maxZoom,
- String styleURL) {
+ Event buildOfflineDownloadStartEvent(String shapeForOfflineRegion,
+ Double minZoom, Double maxZoom,
+ String styleURL) {
OfflineDownloadStartEvent offlineEvent =
new OfflineDownloadStartEvent(shapeForOfflineRegion, minZoom, maxZoom);
@@ -84,12 +56,12 @@ public class MapEventFactory {
return offlineEvent;
}
- public Event createOfflineDownloadCompleteEvent(String shapeForOfflineRegion,
- Double minZoom, Double maxZoom,
- String styleURL,
- Long sizeOfResourcesCompleted,
- Long numberOfTilesCompleted,
- String state) {
+ public Event buildOfflineDownloadCompleteEvent(String shapeForOfflineRegion,
+ Double minZoom, Double maxZoom,
+ String styleURL,
+ Long sizeOfResourcesCompleted,
+ Long numberOfTilesCompleted,
+ String state) {
OfflineDownloadEndEvent offlineEvent =
new OfflineDownloadEndEvent(shapeForOfflineRegion, minZoom, maxZoom);
@@ -99,20 +71,20 @@ public class MapEventFactory {
return offlineEvent;
}
- private MapClickEvent buildMapClickEvent(MapState mapState) {
- MapClickEvent mapClickEvent = new MapClickEvent(mapState).setDeviceInfo(MapboxTelemetry.applicationContext);
- mapClickEvent.setOrientation(obtainOrientation(MapboxTelemetry.applicationContext));
- mapClickEvent.setCarrier(obtainCellularCarrier(MapboxTelemetry.applicationContext));
- mapClickEvent.setWifi(obtainConnectedToWifi(MapboxTelemetry.applicationContext));
+ MapClickEvent buildMapClickEvent(@NonNull MapState mapState) {
+ MapClickEvent mapClickEvent = new MapClickEvent(mapState).setDeviceInfo(appContext);
+ mapClickEvent.setOrientation(obtainOrientation(appContext));
+ mapClickEvent.setCarrier(obtainCellularCarrier(appContext));
+ mapClickEvent.setWifi(isConnectedToWifi(appContext));
return mapClickEvent;
}
- private MapDragendEvent buildMapDragendEvent(MapState mapState) {
- MapDragendEvent mapDragendEvent = new MapDragendEvent(mapState).setDeviceInfo(MapboxTelemetry.applicationContext);
- mapDragendEvent.setOrientation(obtainOrientation(MapboxTelemetry.applicationContext));
- mapDragendEvent.setCarrier(obtainCellularCarrier(MapboxTelemetry.applicationContext));
- mapDragendEvent.setWifi(obtainConnectedToWifi(MapboxTelemetry.applicationContext));
+ MapDragendEvent buildMapDragendEvent(@NonNull MapState mapState) {
+ MapDragendEvent mapDragendEvent = new MapDragendEvent(mapState).setDeviceInfo(appContext);
+ mapDragendEvent.setOrientation(obtainOrientation(appContext));
+ mapDragendEvent.setCarrier(obtainCellularCarrier(appContext));
+ mapDragendEvent.setWifi(isConnectedToWifi(appContext));
return mapDragendEvent;
}
@@ -127,6 +99,7 @@ public class MapEventFactory {
private String obtainCellularCarrier(Context context) {
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ if(manager == null) return NO_CARRIER;
String carrierName = manager.getNetworkOperatorName();
if (TextUtils.isEmpty(carrierName)) {
@@ -143,10 +116,6 @@ public class MapEventFactory {
return displayMetrics.density;
}
- private Boolean obtainConnectedToWifi(Context context) {
- return isConnectedToWifi(context);
- }
-
private boolean isConnectedToWifi(Context context) {
try {
WifiManager wifiMgr = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
@@ -164,43 +133,7 @@ public class MapEventFactory {
}
private boolean networkConnected(WifiInfo wifiInfo) {
- if (wifiInfo.getNetworkId() != NO_NETWORK) {
- return true;
- }
- return false;
- }
-
- private MapLoadEvent buildMapLoadEvent() {
- String userId = TelemetryUtils.retrieveVendorId();
- MapLoadEvent mapLoadEvent = new MapLoadEvent(userId).setDeviceInfo(MapboxTelemetry.applicationContext);
- mapLoadEvent.setOrientation(obtainOrientation(MapboxTelemetry.applicationContext));
- mapLoadEvent.setAccessibilityFontScale(obtainAccessibilityFontScaleSize(MapboxTelemetry.applicationContext));
- mapLoadEvent.setCarrier(obtainCellularCarrier(MapboxTelemetry.applicationContext));
- mapLoadEvent.setResolution(obtainDisplayDensity(MapboxTelemetry.applicationContext));
- mapLoadEvent.setWifi(obtainConnectedToWifi(MapboxTelemetry.applicationContext));
- return mapLoadEvent;
- }
-
- private void checkLoad(Event.Type type) {
- if (type != Event.Type.MAP_LOAD) {
- throw new IllegalArgumentException(NOT_A_LOAD_MAP_EVENT_TYPE);
- }
- }
-
- private void checkGesture(Event.Type type, MapState mapState) {
- checkGestureMapEvent(type);
- isNotNull(mapState);
- }
-
- private void checkGestureMapEvent(Event.Type type) {
- if (!Event.mapGestureEventTypes.contains(type)) {
- throw new IllegalArgumentException(NOT_A_GESTURE_MAP_EVENT_TYPE);
- }
+ return wifiInfo.getNetworkId() != NO_NETWORK;
}
- private void isNotNull(MapState mapState) {
- if (mapState == null) {
- throw new IllegalArgumentException(MAP_STATE_ILLEGAL_NULL);
- }
- }
}