diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-12-17 20:25:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-17 20:25:16 +0100 |
commit | 83f1350747be9a60eb0275bd1a8dcb8e5f027abe (patch) | |
tree | 3027bd324d9785ec06356383363a0bdea282fb71 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/Mapbox.java | |
parent | 20b958301eb208fe9ed0ae8edfb14b6f3741d8f2 (diff) | |
download | qtlocation-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.java | 93 |
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 |