Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

StyleJson configuration on MapboxMapOptions #12664

Merged
merged 1 commit into from
Aug 21, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ void initialise(@NonNull Context context, @NonNull MapboxMapOptions options) {
setDebugActive(options.getDebugActive());
setApiBaseUrl(options);
setStyleUrl(options);
setStyleJson(options);
setPrefetchesTiles(options);
}

Expand Down Expand Up @@ -1058,7 +1059,7 @@ public void setStyle(@Style.StyleUrl String style, @Nullable OnStyleLoadedListen
* @param options the object containing the style url
*/
private void setStyleUrl(@NonNull MapboxMapOptions options) {
String style = options.getStyle();
String style = options.getStyleUrl();
if (!TextUtils.isEmpty(style)) {
setStyleUrl(style, null);
}
Expand Down Expand Up @@ -1086,6 +1087,18 @@ public void setStyleJson(@NonNull String styleJson) {
nativeMapView.setStyleJson(styleJson);
}

/**
* Loads a new map style json from MapboxMapOptions if available.
*
* @param options the object containing the style json
*/
private void setStyleJson(@NonNull MapboxMapOptions options) {
String styleJson = options.getStyleJson();
if (!TextUtils.isEmpty(styleJson)) {
setStyleJson(styleJson);
}
}

/**
* Returns the map style json currently displayed in the map view.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ public class MapboxMapOptions implements Parcelable {
@ColorInt
private int foregroundLoadColor;

private String style;
private String styleUrl;
private String styleJson;

private float pixelRatio;

Expand Down Expand Up @@ -120,7 +121,8 @@ private MapboxMapOptions(Parcel in) {
zoomGesturesEnabled = in.readByte() != 0;
doubleTapGesturesEnabled = in.readByte() != 0;

style = in.readString();
styleUrl = in.readString();
styleJson = in.readString();
apiBaseUrl = in.readString();
textureMode = in.readByte() != 0;
translucentTextureSurface = in.readByte() != 0;
Expand All @@ -145,6 +147,7 @@ public static MapboxMapOptions createFromAttributes(@NonNull Context context, @N
try {
mapboxMapOptions.camera(new CameraPosition.Builder(typedArray).build());
mapboxMapOptions.styleUrl(typedArray.getString(R.styleable.mapbox_MapView_mapbox_styleUrl));
mapboxMapOptions.styleJson(typedArray.getString(R.styleable.mapbox_MapView_mapbox_styleJson));
mapboxMapOptions.apiBaseUrl(typedArray.getString(R.styleable.mapbox_MapView_mapbox_apiBaseUrl));

mapboxMapOptions.zoomGesturesEnabled(
Expand Down Expand Up @@ -258,13 +261,24 @@ public MapboxMapOptions camera(CameraPosition cameraPosition) {
}

/**
* Specifies the style url associated with a map view.
* Specifies the styleUrl url associated with a map view.
*
* @param styleUrl Url to be used to load a style
* @param styleUrl Url to be used to load a styleUrl
* @return This
*/
public MapboxMapOptions styleUrl(String styleUrl) {
style = styleUrl;
this.styleUrl = styleUrl;
return this;
}

/**
* Specifies the styleJson associated with a map view.
*
* @param styleJson json to used as style
* @return This
*/
public MapboxMapOptions styleJson(String styleJson) {
this.styleJson = styleJson;
return this;
}

Expand Down Expand Up @@ -716,12 +730,21 @@ public int[] getLogoMargins() {
}

/**
* Get the current configured style url for a map view.
* Get the current configured styleUrl url for a map view.
*
* @return Style url to be used.
*/
public String getStyle() {
return style;
public String getStyleUrl() {
return styleUrl;
}

/**
* Get the current configured styleJson for a map view.
*
* @return Style json to be used.
*/
public String getStyleJson() {
return styleJson;
}

/**
Expand Down Expand Up @@ -912,7 +935,8 @@ public void writeToParcel(Parcel dest, int flags) {
dest.writeByte((byte) (zoomGesturesEnabled ? 1 : 0));
dest.writeByte((byte) (doubleTapGesturesEnabled ? 1 : 0));

dest.writeString(style);
dest.writeString(styleUrl);
dest.writeString(styleJson);
dest.writeString(apiBaseUrl);
dest.writeByte((byte) (textureMode ? 1 : 0));
dest.writeByte((byte) (translucentTextureSurface ? 1 : 0));
Expand Down Expand Up @@ -1002,9 +1026,14 @@ public boolean equals(Object o) {
if (!Arrays.equals(attributionMargins, options.attributionMargins)) {
return false;
}
if (style != null ? !style.equals(options.style) : options.style != null) {
if (styleUrl != null ? !styleUrl.equals(options.styleUrl) : options.styleUrl != null) {
return false;
}

if (styleJson != null ? !styleJson.equals(options.styleJson) : options.styleJson != null) {
return false;
}

if (apiBaseUrl != null ? !apiBaseUrl.equals(options.apiBaseUrl) : options.apiBaseUrl != null) {
return false;
}
Expand Down Expand Up @@ -1055,7 +1084,8 @@ public int hashCode() {
result = 31 * result + (apiBaseUrl != null ? apiBaseUrl.hashCode() : 0);
result = 31 * result + (textureMode ? 1 : 0);
result = 31 * result + (translucentTextureSurface ? 1 : 0);
result = 31 * result + (style != null ? style.hashCode() : 0);
result = 31 * result + (styleUrl != null ? styleUrl.hashCode() : 0);
result = 31 * result + (styleJson != null ? styleJson.hashCode() : 0);
result = 31 * result + (prefetchesTiles ? 1 : 0);
result = 31 * result + (zMediaOverlay ? 1 : 0);
result = 31 * result + (localIdeographFontFamily != null ? localIdeographFontFamily.hashCode() : 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<!-- Exposed attrs.xml -->
<!--Configuration-->
<public name="mapbox_styleUrl" type="attr" />
<public name="mapbox_styleJson" type="attr" />
<public name="mapbox_apiBaseUrl" type="attr" />
<public name="mapbox_localIdeographFontFamily" type="attr" />
<public name="mapbox_pixelRatio" type="float" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

<!--Configuration-->
<attr name="mapbox_styleUrl" format="string"/>
<attr name="mapbox_styleJson" format="string"/>
<attr name="mapbox_apiBaseUrl" format="string"/>
<attr name="mapbox_localIdeographFontFamily" format="string"/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,9 @@ public void testZoomControlsEnabled() {

@Test
public void testStyleUrl() {
assertEquals(Style.DARK, new MapboxMapOptions().styleUrl(Style.DARK).getStyle());
assertNotEquals(Style.LIGHT, new MapboxMapOptions().styleUrl(Style.DARK).getStyle());
assertNull(new MapboxMapOptions().getStyle());
assertEquals(Style.DARK, new MapboxMapOptions().styleUrl(Style.DARK).getStyleUrl());
assertNotEquals(Style.LIGHT, new MapboxMapOptions().styleUrl(Style.DARK).getStyleUrl());
assertNull(new MapboxMapOptions().getStyleUrl());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.mapbox.mapboxsdk.camera.CameraPosition;
import com.mapbox.mapboxsdk.geometry.LatLng;
import com.mapbox.mapboxsdk.maps.MapView;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.maps.MapboxMapOptions;
import com.mapbox.mapboxsdk.testapp.R;
import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils;

Expand All @@ -30,23 +34,30 @@ protected void onCreate(Bundle savedInstanceState) {
}

private void setupBackground() {
ImageView imageView = (ImageView) findViewById(R.id.imageView);
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.water);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
}

private void setupMapView(Bundle savedInstanceState) {
mapView = (MapView) findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(map -> {
mapboxMap = map;

try {
map.setStyleJson(ResourceUtils.readRawResource(getApplicationContext(), R.raw.no_bg_style));
} catch (IOException exception) {
Timber.e(exception);
}
});
try {
MapboxMapOptions mapboxMapOptions = new MapboxMapOptions();
mapboxMapOptions.styleJson(ResourceUtils.readRawResource(this, R.raw.no_bg_style));
mapboxMapOptions.translucentTextureSurface(true);
mapboxMapOptions.textureMode(true);
mapboxMapOptions.camera(new CameraPosition.Builder()
.zoom(2)
.target(new LatLng(48.507879, 8.363795))
.build()
);

mapView = new MapView(this, mapboxMapOptions);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(map -> mapboxMap = map);
((ViewGroup) findViewById(R.id.coordinator_layout)).addView(mapView);
} catch (IOException exception) {
Timber.e(exception);
}
}

@Override
Expand Down Expand Up @@ -90,5 +101,4 @@ public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
Expand All @@ -13,15 +12,5 @@
android:layout_height="match_parent"
android:contentDescription="@null"/>

<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:mapbox_cameraTargetLat="48.507879"
app:mapbox_cameraTargetLng="8.363795"
app:mapbox_cameraZoom="2"
app:mapbox_renderTextureMode="true"
app:mapbox_renderTextureTranslucentSurface="true"/>

</android.support.design.widget.CoordinatorLayout>