summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java28
1 files changed, 14 insertions, 14 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
index f954073974..ead83fe1f2 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
@@ -8,6 +8,7 @@ import android.text.TextUtils;
import com.mapbox.mapboxsdk.constants.MapboxConstants;
import com.mapbox.mapboxsdk.exceptions.InvalidAccessTokenException;
+import com.mapbox.mapboxsdk.exceptions.DuplicateInitializationException;
import com.mapbox.mapboxsdk.location.LocationSource;
import com.mapbox.mapboxsdk.net.ConnectivityReceiver;
import com.mapbox.services.android.telemetry.MapboxTelemetry;
@@ -22,25 +23,26 @@ public final class Mapbox {
private Boolean connected;
/**
- * Get an instance of Mapbox.
+ * Initialize the Mapbox object.
* <p>
* This class manages the active access token, application context and connectivity state.
* </p>
*
* @param context Android context which holds or is an application context
* @param accessToken Mapbox access token
- * @return the single instance of Mapbox
*/
- public static synchronized Mapbox getInstance(@NonNull Context context, @NonNull String accessToken) {
- if (INSTANCE == null) {
- Context appContext = context.getApplicationContext();
- INSTANCE = new Mapbox(appContext, accessToken);
- LocationEngine locationEngine = new LocationSource(appContext);
- locationEngine.setPriority(LocationEnginePriority.NO_POWER);
- MapboxTelemetry.getInstance().initialize(appContext, accessToken, locationEngine);
- ConnectivityReceiver.instance(appContext);
+ public static void initialize(@NonNull Context context, @NonNull String accessToken) {
+ if (INSTANCE != null) {
+ throw new DuplicateInitializationException();
}
- return INSTANCE;
+
+ validateAccessToken(accessToken);
+ Context appContext = context.getApplicationContext();
+ INSTANCE = new Mapbox(appContext, accessToken);
+ LocationEngine locationEngine = new LocationSource(appContext);
+ locationEngine.setPriority(LocationEnginePriority.NO_POWER);
+ MapboxTelemetry.getInstance().initialize(appContext, accessToken, locationEngine);
+ ConnectivityReceiver.instance(appContext);
}
private Mapbox(@NonNull Context context, @NonNull String accessToken) {
@@ -54,7 +56,6 @@ public final class Mapbox {
* @return Mapbox Access Token
*/
public static String getAccessToken() {
- validateAccessToken();
return INSTANCE.accessToken;
}
@@ -63,8 +64,7 @@ public final class Mapbox {
*
* @throws InvalidAccessTokenException exception thrown when not using a valid accessToken
*/
- private static void validateAccessToken() throws InvalidAccessTokenException {
- String accessToken = INSTANCE.accessToken;
+ public static void validateAccessToken(String accessToken) throws InvalidAccessTokenException {
if (TextUtils.isEmpty(accessToken) || (!accessToken.toLowerCase(MapboxConstants.MAPBOX_LOCALE).startsWith("pk.")
&& !accessToken.toLowerCase(MapboxConstants.MAPBOX_LOCALE).startsWith("sk."))) {
throw new InvalidAccessTokenException();