summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2016-05-06 13:41:08 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2016-05-06 14:40:45 +0200
commitdef05ab5f887f0bba5f2243ac2992bfda9f9b976 (patch)
treed1f692f2bf617943286bf83652c09ddeb3aa8ec1 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps
parent3863561eb732d53e8c3b3b9e333a47bfb7aefab7 (diff)
downloadqtlocation-mapboxgl-def05ab5f887f0bba5f2243ac2992bfda9f9b976.tar.gz
[android] #4763 - introduce StyleInitializer class
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java57
1 files changed, 45 insertions, 12 deletions
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 8e1bf9773d..16bc79a894 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
@@ -152,12 +152,12 @@ public class MapView extends FrameLayout {
private int mContentPaddingRight;
private int mContentPaddingBottom;
- private String mStyleUrl;
-
private List<OnMapReadyCallback> mOnMapReadyCallbackList;
private boolean mInitialLoad;
private boolean mDestroyed;
+ private StyleInitializer mStyleInitializer;
+
@UiThread
public MapView(@NonNull Context context) {
super(context);
@@ -188,6 +188,7 @@ public class MapView extends FrameLayout {
mOnMapChangedListener = new CopyOnWriteArrayList<>();
mMapboxMap = new MapboxMap(this);
mIcons = new ArrayList<>();
+ mStyleInitializer = new StyleInitializer();
View view = LayoutInflater.from(context).inflate(R.layout.mapview_internal, this);
if (!isInEditMode()) {
@@ -258,13 +259,14 @@ public class MapView extends FrameLayout {
}
String accessToken = options.getAccessToken();
+ String style = options.getStyle();
if (!TextUtils.isEmpty(accessToken)) {
mMapboxMap.setAccessToken(accessToken);
- }
-
- String style = options.getStyle();
- if (!TextUtils.isEmpty(style)) {
- mMapboxMap.setStyleUrl(style);
+ if (style != null) {
+ setStyleUrl(style);
+ }
+ } else {
+ mStyleInitializer.setStyle(style, true);
}
// MyLocationView
@@ -470,7 +472,7 @@ public class MapView extends FrameLayout {
outState.putBoolean(MapboxConstants.STATE_HAS_SAVED_STATE, true);
outState.putParcelable(MapboxConstants.STATE_CAMERA_POSITION, mMapboxMap.getCameraPosition());
outState.putBoolean(MapboxConstants.STATE_DEBUG_ACTIVE, mMapboxMap.isDebugActive());
- outState.putString(MapboxConstants.STATE_STYLE_URL, mStyleUrl);
+ outState.putString(MapboxConstants.STATE_STYLE_URL, mStyleInitializer.getStyle());
outState.putString(MapboxConstants.STATE_ACCESS_TOKEN, mMapboxMap.getAccessToken());
outState.putBoolean(MapboxConstants.STATE_MY_LOCATION_ENABLED, mMapboxMap.isMyLocationEnabled());
@@ -553,9 +555,9 @@ public class MapView extends FrameLayout {
mNativeMapView.update();
mMyLocationView.onResume();
- if (mStyleUrl == null) {
+ if (mStyleInitializer.isDefaultStyle()) {
// user has failed to supply a style url
- setStyleUrl(Style.MAPBOX_STREETS);
+ setStyleUrl(mStyleInitializer.getStyle());
}
}
@@ -793,7 +795,7 @@ public class MapView extends FrameLayout {
if (mDestroyed) {
return;
}
- mStyleUrl = url;
+ mStyleInitializer.setStyle(url);
mNativeMapView.setStyleUrl(url);
}
@@ -827,7 +829,7 @@ public class MapView extends FrameLayout {
@UiThread
@NonNull
public String getStyleUrl() {
- return mStyleUrl;
+ return mStyleInitializer.getStyle();
}
//
@@ -2669,6 +2671,37 @@ public class MapView extends FrameLayout {
}
/**
+ * Class responsible for managing state of Style loading.
+ */
+ private class StyleInitializer {
+
+ private String mStyle;
+ private boolean mDefaultStyle;
+
+ public StyleInitializer() {
+ mStyle = Style.MAPBOX_STREETS;
+ mDefaultStyle = true;
+ }
+
+ void setStyle(@NonNull String style) {
+ setStyle(style, false);
+ }
+
+ void setStyle(@NonNull String style, boolean defaultStyle) {
+ mStyle = style;
+ mDefaultStyle = defaultStyle;
+ }
+
+ public String getStyle() {
+ return mStyle;
+ }
+
+ boolean isDefaultStyle() {
+ return mDefaultStyle;
+ }
+ }
+
+ /**
* Definition of a map change event.
*
* @see MapView.OnMapChangedListener#onMapChanged(int)