From 94451b41ef5ede1f3f1534f0f6c94356663ae23b Mon Sep 17 00:00:00 2001 From: Tobrun Date: Thu, 8 Nov 2018 14:20:14 +0100 Subject: [android] - expose style builder --- .../java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 7 ++- .../main/java/com/mapbox/mapboxsdk/maps/Style.java | 57 ++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 6d68302c61..2211d4bd1d 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -95,7 +95,7 @@ public final class MapboxMap { setPrefetchesTiles(options); } - public Style getStyle(){ + public Style getStyle() { return style; } @@ -679,6 +679,11 @@ public final class MapboxMap { // Styling // + public void setStyle(Style.Builder builder) { + + } + + /** *

* Loads a new map style asynchronous from the specified URL. diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java index 9e8748ce4b..9cc14d67db 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java @@ -12,6 +12,7 @@ import com.mapbox.mapboxsdk.style.sources.Source; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -325,6 +326,62 @@ public class Style { return nativeMapView.getLight(); } + // + // Builder + // + + public static class Builder { + + private String styleUrl; + private String styleJson; + private List sources = new ArrayList<>(); + // TODO allow adding below and at index + private List layers = new ArrayList<>(); + private TransitionOptions transitionOptions; + + public Builder withStyleUrl(@StyleUrl String styleUrl) { + this.styleUrl = styleUrl; + return this; + } + + public Builder withStyleJson(String styleJson) { + this.styleJson = styleJson; + return this; + } + + public Builder withSource(Source source) { + sources.add(source); + return this; + } + + public Builder withLayer(Layer layer) { + layers.add(layer); + return this; + } + + public Builder withTransition(TransitionOptions transition) { + this.transitionOptions = transition; + return this; + } + + Style build(NativeMapView nativeMapView) { + Style style = new Style(nativeMapView); + for (Source source : sources) { + style.addSource(source); + } + + for (Layer layer : layers) { + style.addLayer(layer); + } + + if (transitionOptions != null) { + style.setTransition(transitionOptions); + } + return style; + } + + } + // // Style URL constants // -- cgit v1.2.1