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

Commit

Permalink
[android] - expose stylejsoon confiugration on MapboxMapOptions and M…
Browse files Browse the repository at this point in the history
…apView attributes
  • Loading branch information
tobrun committed Aug 20, 2018
1 parent 112bbc7 commit 1a664a8
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 39 deletions.
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,7 @@ 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(apiBaseUrl);
dest.writeByte((byte) (textureMode ? 1 : 0));
dest.writeByte((byte) (translucentTextureSurface ? 1 : 0));
Expand Down Expand Up @@ -1002,9 +1025,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 +1083,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>

0 comments on commit 1a664a8

Please sign in to comment.