diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index 90632f4bd..afc2f1e24 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -376,7 +376,8 @@ public class MapView extends FrameLayout { validateTelemetryServiceConfigured(); // Start Telemetry (authorization determined in initial MapboxEventManager constructor) - MapboxEventManager.configureAndStartMapboxEventManager(getContext(), getAccessToken()); + MapboxEventManager eventManager = MapboxEventManager.getMapboxEventManager(); + eventManager.initialise(getContext(), getAccessToken()); } // Initialize EGL diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java index 3339658ca..97393df4a 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/telemetry/MapboxEventManager.java @@ -84,13 +84,22 @@ public class MapboxEventManager { /** * Private Constructor for configuring the single instance per app. - * @param context Application Context - * @param accessToken Access Token used in application, can be overridden by putting staging credentials in AppManifest */ - private MapboxEventManager(@NonNull Context context, String accessToken) { - super(); + private MapboxEventManager() { + + } + + /** + * Internal setup of MapboxEventsManager. It needs to be called once before @link MapboxEventManager#getMapboxEventManager + *
+ * This allows for a cleaner getMapboxEventManager() that doesn't require context and accessToken + * + * @param context The context associated with MapView + * @param accessToken The accessToken to load MapView + */ + public void initialise(@NonNull Context context, @NonNull String accessToken) { + this.context = context.getApplicationContext(); this.accessToken = accessToken; - this.context = context; // Setup Message Digest try { @@ -156,27 +165,15 @@ public class MapboxEventManager { batteryStatus = context.registerReceiver(null, iFilter); } - /** - * Internal setup of MapboxEventsManager. It needs to be called once before @link MapboxEventManager#getMapboxEventManager - * - * This allows for a cleaner getMapboxEventManager() that doesn't require context and accessToken - * - * @param context Context - * @param accessToken Access Token - */ - public static void configureAndStartMapboxEventManager(@NonNull Context context, @NonNull String accessToken) { - if (mapboxEventManager != null) { - Log.w(TAG, "Singleton has already been created."); - return; - } - mapboxEventManager = new MapboxEventManager(context.getApplicationContext(), accessToken); - } - /** * Primary Access method using Singleton pattern + * * @return MapboxEventManager */ public static MapboxEventManager getMapboxEventManager() { + if (mapboxEventManager == null) { + mapboxEventManager = new MapboxEventManager(); + } return mapboxEventManager; } @@ -266,15 +263,19 @@ public class MapboxEventManager { /** * Push Interactive Events to the system for processing + * * @param eventWithAttributes Event with attributes */ public void pushEvent(Hashtable