summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2016-12-17 20:25:16 +0100
committerGitHub <noreply@github.com>2016-12-17 20:25:16 +0100
commit83f1350747be9a60eb0275bd1a8dcb8e5f027abe (patch)
tree3027bd324d9785ec06356383363a0bdea282fb71 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
parent20b958301eb208fe9ed0ae8edfb14b6f3741d8f2 (diff)
downloadqtlocation-mapboxgl-83f1350747be9a60eb0275bd1a8dcb8e5f027abe.tar.gz
MapboxAccountManager refactor, removal deprecated accesstoken (#7462)
* [android] - move object ownership, move depenencies and responsibility. * [android] - MapboxAccountManager refactor, removal deprecated accesstoken.
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.java93
1 files changed, 93 insertions, 0 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
new file mode 100644
index 0000000000..d9cf407677
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java
@@ -0,0 +1,93 @@
+package com.mapbox.mapboxsdk;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.support.annotation.NonNull;
+import android.text.TextUtils;
+
+import com.mapbox.mapboxsdk.constants.MapboxConstants;
+import com.mapbox.mapboxsdk.exceptions.InvalidAccessTokenException;
+import com.mapbox.mapboxsdk.net.ConnectivityReceiver;
+import com.mapbox.mapboxsdk.telemetry.MapboxEventManager;
+
+public final class Mapbox {
+
+ private static Mapbox INSTANCE;
+ private Context context;
+ private String accessToken;
+ private Boolean connected;
+
+ public static synchronized Mapbox getInstance(@NonNull Context context, @NonNull String accessToken) {
+ if (INSTANCE == null) {
+ Context appContext = context.getApplicationContext();
+ INSTANCE = new Mapbox(appContext, accessToken);
+ MapboxEventManager.getMapboxEventManager().initialize(appContext, accessToken);
+ ConnectivityReceiver.instance(appContext);
+ }
+ return INSTANCE;
+ }
+
+ private Mapbox(@NonNull Context context, @NonNull String accessToken) {
+ this.context = context;
+ this.accessToken = accessToken;
+ }
+
+ /**
+ * Access Token for this application.
+ *
+ * @return Mapbox Access Token
+ */
+ public static String getAccessToken() {
+ return INSTANCE.accessToken;
+ }
+
+ /**
+ * Application context
+ */
+ public static Context getApplicationContext() {
+ return INSTANCE.context;
+ }
+
+ /**
+ * Runtime validation of Access Token.
+ *
+ * @throws InvalidAccessTokenException the exception thrown
+ */
+ public static void validateAccessToken() throws InvalidAccessTokenException {
+ String accessToken = INSTANCE.accessToken;
+ if (TextUtils.isEmpty(accessToken) || (!accessToken.toLowerCase(MapboxConstants.MAPBOX_LOCALE).startsWith("pk.")
+ && !accessToken.toLowerCase(MapboxConstants.MAPBOX_LOCALE).startsWith("sk."))) {
+ throw new InvalidAccessTokenException();
+ }
+ }
+
+ /**
+ * Manually sets the connectivity state of the app. This is useful for apps that control their
+ * own connectivity state and want to bypass any checks to the ConnectivityManager.
+ *
+ * @param connected flag to determine the connectivity state, true for connected, false for
+ * disconnected, null for ConnectivityManager to determine.
+ */
+ public static void setConnected(Boolean connected) {
+ // Connectivity state overridden by app
+ INSTANCE.connected = connected;
+ }
+
+ /**
+ * Determines whether we have an Internet connection available. Please do not rely on this
+ * method in your apps, this method is used internally by the SDK.
+ *
+ * @return true if there is an Internet connection, false otherwise
+ */
+ public static Boolean isConnected() {
+ if (INSTANCE.connected != null) {
+ // Connectivity state overridden by app
+ return INSTANCE.connected;
+ }
+
+ ConnectivityManager cm = (ConnectivityManager) INSTANCE.context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
+ return (activeNetwork != null && activeNetwork.isConnected());
+ }
+} \ No newline at end of file