diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-05-06 13:41:08 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2016-05-06 14:40:45 +0200 |
commit | def05ab5f887f0bba5f2243ac2992bfda9f9b976 (patch) | |
tree | d1f692f2bf617943286bf83652c09ddeb3aa8ec1 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps | |
parent | 3863561eb732d53e8c3b3b9e333a47bfb7aefab7 (diff) | |
download | qtlocation-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.java | 57 |
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) |