summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-02-19 11:07:31 +0100
committerŁukasz Paczos <lukas.paczos@gmail.com>2019-02-19 11:07:31 +0100
commitfbdf2bd80f90610534052c68b25132d059d3b6c3 (patch)
tree9e88379c0508c517f660543eb66db51f2b531eb3
parent4a8b91f67442c155ebd0a4885f8f0b0eb7e220ec (diff)
downloadqtlocation-mapboxgl-fbdf2bd80f90610534052c68b25132d059d3b6c3.tar.gz
wip
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java70
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java2
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java12
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenter.java55
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenterImpl.java169
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java130
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java16
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java9
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenter.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenterImpl.java15
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java6
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java5
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapPresenterTest.kt61
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt27
15 files changed, 377 insertions, 208 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java
index c4cc6d0196..1fe1618061 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/camera/CameraUpdateFactory.java
@@ -311,76 +311,6 @@ public final class CameraUpdateFactory {
}
}
- static final class CameraMoveUpdate implements CameraUpdate {
-
- private float x;
- private float y;
-
- CameraMoveUpdate(float x, float y) {
- this.x = x;
- this.y = y;
- }
-
- @Override
- public CameraPosition getCameraPosition(@NonNull MapboxMap mapboxMap) {
- UiSettings uiSettings = mapboxMap.getUiSettings();
- Projection projection = mapboxMap.getProjection();
- // Calculate the new center point
- float viewPortWidth = uiSettings.getWidth();
- float viewPortHeight = uiSettings.getHeight();
- int[] padding = mapboxMap.getPadding();
-
- // we inverse the map padding, is reapplied when using moveTo/easeTo or animateTo
- PointF targetPoint = new PointF(
- (viewPortWidth - padding[0] + padding[1]) / 2 + x,
- (viewPortHeight + padding[1] - padding[3]) / 2 + y
- );
-
- LatLng latLng = projection.fromScreenLocation(targetPoint);
- CameraPosition previousPosition = mapboxMap.getCameraPosition();
- CameraPosition position =
- new CameraPosition.Builder()
- .target(latLng)
- .zoom(previousPosition.zoom)
- .tilt(previousPosition.tilt)
- .bearing(previousPosition.bearing)
- .build();
- return position;
- }
-
- @Override
- public boolean equals(@Nullable Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- CameraMoveUpdate that = (CameraMoveUpdate) o;
-
- if (Float.compare(that.x, x) != 0) {
- return false;
- }
- return Float.compare(that.y, y) == 0;
- }
-
- @Override
- public int hashCode() {
- int result = (x != +0.0f ? Float.floatToIntBits(x) : 0);
- result = 31 * result + (y != +0.0f ? Float.floatToIntBits(y) : 0);
- return result;
- }
-
- @Override
- public String toString() {
- return "CameraMoveUpdate{"
- + "x=" + x
- + ", y=" + y
- + '}';
- }
- }
-
static final class ZoomUpdate implements CameraUpdate {
@IntDef( {ZOOM_IN, ZOOM_OUT, ZOOM_BY, ZOOM_TO, ZOOM_TO_POINT})
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
index 43dd168016..5b96d5683c 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
@@ -559,7 +559,7 @@ final class MapGestureDetector {
scaleFocalPoint = focalPoint;
} else if (quickZoom) {
// around center
- scaleFocalPoint = new PointF(uiSettings.getWidth() / 2, uiSettings.getHeight() / 2);
+ scaleFocalPoint = new PointF(projection.getWidth() / 2, projection.getHeight() / 2);
} else {
// around gesture
scaleFocalPoint = detector.getFocalPoint();
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java
index afb80027d9..269697410b 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapKeyListener.java
@@ -20,6 +20,7 @@ import android.view.ViewConfiguration;
*/
final class MapKeyListener {
+ private final Projection projection;
private final Transform transform;
private final UiSettings uiSettings;
private final MapGestureDetector mapGestureDetector;
@@ -27,7 +28,8 @@ final class MapKeyListener {
@Nullable
private TrackballLongPressTimeOut currentTrackballLongPressTimeOut;
- MapKeyListener(Transform transform, UiSettings uiSettings, MapGestureDetector mapGestureDetector) {
+ MapKeyListener(Projection projection, Transform transform, UiSettings uiSettings, MapGestureDetector mapGestureDetector) {
+ this.projection = projection;
this.transform = transform;
this.uiSettings = uiSettings;
this.mapGestureDetector = mapGestureDetector;
@@ -127,7 +129,7 @@ final class MapKeyListener {
}
// Zoom out
- PointF focalPoint = new PointF(uiSettings.getWidth() / 2, uiSettings.getHeight() / 2);
+ PointF focalPoint = new PointF(projection.getWidth() / 2, projection.getHeight() / 2);
mapGestureDetector.zoomOutAnimated(focalPoint, true);
return true;
@@ -163,7 +165,7 @@ final class MapKeyListener {
}
// Zoom in
- PointF focalPoint = new PointF(uiSettings.getWidth() / 2, uiSettings.getHeight() / 2);
+ PointF focalPoint = new PointF(projection.getWidth() / 2, projection.getHeight() / 2);
mapGestureDetector.zoomInAnimated(focalPoint, true);
return true;
}
@@ -218,7 +220,7 @@ final class MapKeyListener {
// Only handle if we have not already long pressed
if (currentTrackballLongPressTimeOut != null) {
// Zoom in
- PointF focalPoint = new PointF(uiSettings.getWidth() / 2, uiSettings.getHeight() / 2);
+ PointF focalPoint = new PointF(projection.getWidth() / 2, projection.getHeight() / 2);
mapGestureDetector.zoomInAnimated(focalPoint, true);
}
return true;
@@ -260,7 +262,7 @@ final class MapKeyListener {
// Check if the trackball is still pressed
if (!cancelled) {
// Zoom out
- PointF pointF = new PointF(uiSettings.getWidth() / 2, uiSettings.getHeight() / 2);
+ PointF pointF = new PointF(projection.getWidth() / 2, projection.getHeight() / 2);
mapGestureDetector.zoomOutAnimated(pointF, true);
// Ensure the up action is not run
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenter.java
index 483e0a7e60..5dac5be4b8 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenter.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenter.java
@@ -2,6 +2,59 @@ package com.mapbox.mapboxsdk.maps;
import com.mapbox.mapboxsdk.MapboxPresenter;
-interface MapPresenter extends MapboxPresenter<MapView> {
+public interface MapPresenter extends MapboxPresenter<MapView> {
+ void onSurfaceCreated();
+
+ void addOnCameraWillChangeListener(MapView.OnCameraWillChangeListener listener);
+
+ void removeOnCameraWillChangeListener(MapView.OnCameraWillChangeListener listener);
+
+ void addOnCameraIsChangingListener(MapView.OnCameraIsChangingListener listener);
+
+ void removeOnCameraIsChangingListener(MapView.OnCameraIsChangingListener listener);
+
+ void addOnCameraDidChangeListener(MapView.OnCameraDidChangeListener listener);
+
+ void removeOnCameraDidChangeListener(MapView.OnCameraDidChangeListener listener);
+
+ void addOnWillStartLoadingMapListener(MapView.OnWillStartLoadingMapListener listener);
+
+ void removeOnWillStartLoadingMapListener(MapView.OnWillStartLoadingMapListener listener);
+
+ void addOnDidFinishLoadingMapListener(MapView.OnDidFinishLoadingMapListener listener);
+
+ void removeOnDidFinishLoadingMapListener(MapView.OnDidFinishLoadingMapListener listener);
+
+ void addOnDidFailLoadingMapListener(MapView.OnDidFailLoadingMapListener listener);
+
+ void removeOnDidFailLoadingMapListener(MapView.OnDidFailLoadingMapListener listener);
+
+ void addOnWillStartRenderingFrameListener(MapView.OnWillStartRenderingFrameListener listener);
+
+ void removeOnWillStartRenderingFrameListener(MapView.OnWillStartRenderingFrameListener listener);
+
+ void addOnDidFinishRenderingFrameListener(MapView.OnDidFinishRenderingFrameListener listener);
+
+ void removeOnDidFinishRenderingFrameListener(MapView.OnDidFinishRenderingFrameListener listener);
+
+ void addOnWillStartRenderingMapListener(MapView.OnWillStartRenderingMapListener listener);
+
+ void removeOnWillStartRenderingMapListener(MapView.OnWillStartRenderingMapListener listener);
+
+ void addOnDidFinishRenderingMapListener(MapView.OnDidFinishRenderingMapListener listener);
+
+ void removeOnDidFinishRenderingMapListener(MapView.OnDidFinishRenderingMapListener listener);
+
+ void addOnDidBecomeIdleListener(MapView.OnDidBecomeIdleListener listener);
+
+ void removeOnDidBecomeIdleListener(MapView.OnDidBecomeIdleListener listener);
+
+ void addOnDidFinishLoadingStyleListener(MapView.OnDidFinishLoadingStyleListener listener);
+
+ void removeOnDidFinishLoadingStyleListener(MapView.OnDidFinishLoadingStyleListener listener);
+
+ void addOnSourceChangedListener(MapView.OnSourceChangedListener listener);
+
+ void removeOnSourceChangedListener(MapView.OnSourceChangedListener listener);
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenterImpl.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenterImpl.java
index 319522f233..653420941a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenterImpl.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapPresenterImpl.java
@@ -6,26 +6,181 @@ import android.support.annotation.NonNull;
import com.mapbox.mapboxsdk.maps.renderer.MapRenderer;
class MapPresenterImpl implements MapPresenter {
+
+ private final MapChangeReceiver mapChangeReceiver;
+
private final MapView mapView;
private final MapboxMapOptions mapboxMapOptions;
- private MapRenderer renderer;
+ private final MapRenderer renderer;
+ private final NativeMapView nativeMapView;
- MapPresenterImpl(@NonNull MapView mapView, @NonNull Context context, @NonNull MapboxMapOptions mapboxMapOptions) {
+ MapPresenterImpl(@NonNull MapView mapView, @NonNull Context context, @NonNull MapboxMapOptions mapboxMapOptions,
+ @NonNull MapChangeReceiver mapChangeReceiver) {
this.mapView = mapView;
this.mapboxMapOptions = mapboxMapOptions;
- initialize();
- }
+ this.mapChangeReceiver = mapChangeReceiver;
- private void initialize() {
mapView.setForegroundColor(mapboxMapOptions.getForegroundLoadColor());
mapView.inflateInternalViews();
mapView.setViewOptions();
String localFontFamily = mapboxMapOptions.getLocalIdeographFontFamily();
if (mapboxMapOptions.getTextureMode()) {
- renderer = mapView.initializeTextureView(localFontFamily, mapboxMapOptions.getTranslucentTextureSurface());
+ renderer = mapView.createTextureView(this, localFontFamily,
+ mapboxMapOptions.getTranslucentTextureSurface());
} else {
- renderer = mapView.initializeSurfaceView(localFontFamily);
+ renderer = mapView.createSurfaceView(this, localFontFamily,
+ mapboxMapOptions.getRenderSurfaceOnTop());
+ }
+
+ nativeMapView = mapView.createNativeMapView(getPixelRatio(), mapboxMapOptions.getCrossSourceCollisions(),
+ mapChangeReceiver, renderer);
+ }
+
+ private float getPixelRatio() {
+ // check is user defined his own pixel ratio value
+ float pixelRatio = mapboxMapOptions.getPixelRatio();
+ if (pixelRatio == 0) {
+ // if not, get the one defined by the system
+ pixelRatio = mapView.getDensity();
}
+ return pixelRatio;
+ }
+
+ @Override
+ public void onSurfaceCreated() {
+
+ }
+
+ @Override
+ public void addOnCameraWillChangeListener(MapView.OnCameraWillChangeListener listener) {
+ mapChangeReceiver.addOnCameraWillChangeListener(listener);
+ }
+
+ @Override
+ public void removeOnCameraWillChangeListener(MapView.OnCameraWillChangeListener listener) {
+ mapChangeReceiver.removeOnCameraWillChangeListener(listener);
+ }
+
+ @Override
+ public void addOnCameraIsChangingListener(MapView.OnCameraIsChangingListener listener) {
+ mapChangeReceiver.addOnCameraIsChangingListener(listener);
+ }
+
+ @Override
+ public void removeOnCameraIsChangingListener(MapView.OnCameraIsChangingListener listener) {
+ mapChangeReceiver.removeOnCameraIsChangingListener(listener);
+ }
+
+ @Override
+ public void addOnCameraDidChangeListener(MapView.OnCameraDidChangeListener listener) {
+ mapChangeReceiver.addOnCameraDidChangeListener(listener);
+ }
+
+ @Override
+ public void removeOnCameraDidChangeListener(MapView.OnCameraDidChangeListener listener) {
+ mapChangeReceiver.removeOnCameraDidChangeListener(listener);
+ }
+
+ @Override
+ public void addOnWillStartLoadingMapListener(MapView.OnWillStartLoadingMapListener listener) {
+ mapChangeReceiver.addOnWillStartLoadingMapListener(listener);
+ }
+
+ @Override
+ public void removeOnWillStartLoadingMapListener(MapView.OnWillStartLoadingMapListener listener) {
+ mapChangeReceiver.removeOnWillStartLoadingMapListener(listener);
+ }
+
+ @Override
+ public void addOnDidFinishLoadingMapListener(MapView.OnDidFinishLoadingMapListener listener) {
+ mapChangeReceiver.addOnDidFinishLoadingMapListener(listener);
+ }
+
+ @Override
+ public void removeOnDidFinishLoadingMapListener(MapView.OnDidFinishLoadingMapListener listener) {
+ mapChangeReceiver.removeOnDidFinishLoadingMapListener(listener);
+ }
+
+ @Override
+ public void addOnDidFailLoadingMapListener(MapView.OnDidFailLoadingMapListener listener) {
+ mapChangeReceiver.addOnDidFailLoadingMapListener(listener);
+ }
+
+ @Override
+ public void removeOnDidFailLoadingMapListener(MapView.OnDidFailLoadingMapListener listener) {
+ mapChangeReceiver.removeOnDidFailLoadingMapListener(listener);
+ }
+
+ @Override
+ public void addOnWillStartRenderingFrameListener(MapView.OnWillStartRenderingFrameListener listener) {
+ mapChangeReceiver.addOnWillStartRenderingFrameListener(listener);
+ }
+
+ @Override
+ public void removeOnWillStartRenderingFrameListener(MapView.OnWillStartRenderingFrameListener listener) {
+
+ mapChangeReceiver.removeOnWillStartRenderingFrameListener(listener);
+ }
+
+ @Override
+ public void addOnDidFinishRenderingFrameListener(MapView.OnDidFinishRenderingFrameListener listener) {
+ mapChangeReceiver.addOnDidFinishRenderingFrameListener(listener);
+ }
+
+ @Override
+ public void removeOnDidFinishRenderingFrameListener(MapView.OnDidFinishRenderingFrameListener listener) {
+
+ mapChangeReceiver.removeOnDidFinishRenderingFrameListener(listener);
+ }
+
+ @Override
+ public void addOnWillStartRenderingMapListener(MapView.OnWillStartRenderingMapListener listener) {
+ mapChangeReceiver.addOnWillStartRenderingMapListener(listener);
+ }
+
+ @Override
+ public void removeOnWillStartRenderingMapListener(MapView.OnWillStartRenderingMapListener listener) {
+ mapChangeReceiver.removeOnWillStartRenderingMapListener(listener);
+ }
+
+ @Override
+ public void addOnDidFinishRenderingMapListener(MapView.OnDidFinishRenderingMapListener listener) {
+ mapChangeReceiver.addOnDidFinishRenderingMapListener(listener);
+ }
+
+ @Override
+ public void removeOnDidFinishRenderingMapListener(MapView.OnDidFinishRenderingMapListener listener) {
+ mapChangeReceiver.removeOnDidFinishRenderingMapListener(listener);
+ }
+
+ @Override
+ public void addOnDidBecomeIdleListener(MapView.OnDidBecomeIdleListener listener) {
+ mapChangeReceiver.addOnDidBecomeIdleListener(listener);
+ }
+
+ @Override
+ public void removeOnDidBecomeIdleListener(MapView.OnDidBecomeIdleListener listener) {
+ mapChangeReceiver.removeOnDidBecomeIdleListener(listener);
+ }
+
+ @Override
+ public void addOnDidFinishLoadingStyleListener(MapView.OnDidFinishLoadingStyleListener listener) {
+ mapChangeReceiver.addOnDidFinishLoadingStyleListener(listener);
+ }
+
+ @Override
+ public void removeOnDidFinishLoadingStyleListener(MapView.OnDidFinishLoadingStyleListener listener) {
+ mapChangeReceiver.removeOnDidFinishLoadingStyleListener(listener);
+ }
+
+ @Override
+ public void addOnSourceChangedListener(MapView.OnSourceChangedListener listener) {
+ mapChangeReceiver.addOnSourceChangedListener(listener);
+ }
+
+ @Override
+ public void removeOnSourceChangedListener(MapView.OnSourceChangedListener listener) {
+ mapChangeReceiver.removeOnSourceChangedListener(listener);
}
}
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 b1f00b2b72..6f22585e96 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
@@ -39,9 +39,6 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.opengles.GL10;
-
import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_MAP_NORTH_ANIMATION;
import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_WAIT_IDLE;
@@ -62,8 +59,6 @@ import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_WAIT_IDLE;
public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
private MapPresenter mapPresenter;
-
- private final MapChangeReceiver mapChangeReceiver = new MapChangeReceiver();
private final MapCallback mapCallback = new MapCallback();
private final InitialRenderCallback initialRenderCallback = new InitialRenderCallback();
@@ -73,7 +68,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
private MapboxMap mapboxMap;
private AttributionClickListener attributionClickListener;
private MapboxMapOptions mapboxMapOptions;
- private MapRenderer mapRenderer;
private boolean destroyed;
private boolean hasSurface;
@@ -124,8 +118,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
mapboxMapOptions = options;
- mapPresenter = new MapPresenterImpl(this, context, options);
- initialiseDrawingSurface(options);
+ mapPresenter = new MapPresenterImpl(this, context, options, new MapChangeReceiver());
}
private void initialiseMap() {
@@ -162,7 +155,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
// user input
mapGestureDetector = new MapGestureDetector(context, transform, proj, uiSettings,
annotationManager, cameraDispatcher);
- mapKeyListener = new MapKeyListener(transform, uiSettings, mapGestureDetector);
+ mapKeyListener = new MapKeyListener(proj, transform, uiSettings, mapGestureDetector);
// compass
compassView.injectCompassAnimationListener(createCompassAnimationListener(cameraDispatcher));
@@ -264,20 +257,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
}
}
- private void initialiseDrawingSurface(MapboxMapOptions options) {
- String localFontFamily = options.getLocalIdeographFontFamily();
- if (options.getTextureMode()) {
-
- } else {
-
- }
-
- boolean crossSourceCollisions = mapboxMapOptions.getCrossSourceCollisions();
- nativeMapView = new NativeMapView(
- getContext(), getPixelRatio(), crossSourceCollisions, this, mapChangeReceiver, mapRenderer
- );
- }
-
private void onSurfaceCreated() {
hasSurface = true;
post(new Runnable() {
@@ -487,15 +466,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
}
}
- private float getPixelRatio() {
- // check is user defined his own pixel ratio value
- float pixelRatio = mapboxMapOptions.getPixelRatio();
- if (pixelRatio == 0) {
- // if not, get the one defined by the system
- pixelRatio = getResources().getDisplayMetrics().density;
- }
- return pixelRatio;
- }
//
// ViewCallback
@@ -517,7 +487,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera region will change
*/
public void addOnCameraWillChangeListener(OnCameraWillChangeListener listener) {
- mapChangeReceiver.addOnCameraWillChangeListener(listener);
+ mapPresenter.addOnCameraWillChangeListener(listener);
}
/**
@@ -526,7 +496,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera region will change
*/
public void removeOnCameraWillChangeListener(OnCameraWillChangeListener listener) {
- mapChangeReceiver.removeOnCameraWillChangeListener(listener);
+ mapPresenter.removeOnCameraWillChangeListener(listener);
}
/**
@@ -535,7 +505,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera is changing
*/
public void addOnCameraIsChangingListener(OnCameraIsChangingListener listener) {
- mapChangeReceiver.addOnCameraIsChangingListener(listener);
+ mapPresenter.addOnCameraIsChangingListener(listener);
}
/**
@@ -544,7 +514,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera is changing
*/
public void removeOnCameraIsChangingListener(OnCameraIsChangingListener listener) {
- mapChangeReceiver.removeOnCameraIsChangingListener(listener);
+ mapPresenter.removeOnCameraIsChangingListener(listener);
}
/**
@@ -553,7 +523,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera region did change
*/
public void addOnCameraDidChangeListener(OnCameraDidChangeListener listener) {
- mapChangeReceiver.addOnCameraDidChangeListener(listener);
+ mapPresenter.addOnCameraDidChangeListener(listener);
}
/**
@@ -562,7 +532,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera region did change
*/
public void removeOnCameraDidChangeListener(OnCameraDidChangeListener listener) {
- mapChangeReceiver.removeOnCameraDidChangeListener(listener);
+ mapPresenter.removeOnCameraDidChangeListener(listener);
}
/**
@@ -571,7 +541,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map will start loading
*/
public void addOnWillStartLoadingMapListener(OnWillStartLoadingMapListener listener) {
- mapChangeReceiver.addOnWillStartLoadingMapListener(listener);
+ mapPresenter.addOnWillStartLoadingMapListener(listener);
}
/**
@@ -580,7 +550,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map will start loading
*/
public void removeOnWillStartLoadingMapListener(OnWillStartLoadingMapListener listener) {
- mapChangeReceiver.removeOnWillStartLoadingMapListener(listener);
+ mapPresenter.removeOnWillStartLoadingMapListener(listener);
}
/**
@@ -589,7 +559,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has finished loading
*/
public void addOnDidFinishLoadingMapListener(OnDidFinishLoadingMapListener listener) {
- mapChangeReceiver.addOnDidFinishLoadingMapListener(listener);
+ mapPresenter.addOnDidFinishLoadingMapListener(listener);
}
/**
@@ -598,7 +568,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has finished loading
*/
public void removeOnDidFinishLoadingMapListener(OnDidFinishLoadingMapListener listener) {
- mapChangeReceiver.removeOnDidFinishLoadingMapListener(listener);
+ mapPresenter.removeOnDidFinishLoadingMapListener(listener);
}
/**
@@ -607,7 +577,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map failed to load
*/
public void addOnDidFailLoadingMapListener(OnDidFailLoadingMapListener listener) {
- mapChangeReceiver.addOnDidFailLoadingMapListener(listener);
+ mapPresenter.addOnDidFailLoadingMapListener(listener);
}
/**
@@ -616,7 +586,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map failed to load
*/
public void removeOnDidFailLoadingMapListener(OnDidFailLoadingMapListener listener) {
- mapChangeReceiver.removeOnDidFailLoadingMapListener(listener);
+ mapPresenter.removeOnDidFailLoadingMapListener(listener);
}
/**
@@ -625,7 +595,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera will start rendering a frame
*/
public void addOnWillStartRenderingFrameListener(OnWillStartRenderingFrameListener listener) {
- mapChangeReceiver.addOnWillStartRenderingFrameListener(listener);
+ mapPresenter.addOnWillStartRenderingFrameListener(listener);
}
/**
@@ -634,7 +604,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the camera will start rendering a frame
*/
public void removeOnWillStartRenderingFrameListener(OnWillStartRenderingFrameListener listener) {
- mapChangeReceiver.removeOnWillStartRenderingFrameListener(listener);
+ mapPresenter.removeOnWillStartRenderingFrameListener(listener);
}
/**
@@ -643,7 +613,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has finished rendering a frame
*/
public void addOnDidFinishRenderingFrameListener(OnDidFinishRenderingFrameListener listener) {
- mapChangeReceiver.addOnDidFinishRenderingFrameListener(listener);
+ mapPresenter.addOnDidFinishRenderingFrameListener(listener);
}
/**
@@ -652,7 +622,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has finished rendering a frame
*/
public void removeOnDidFinishRenderingFrameListener(OnDidFinishRenderingFrameListener listener) {
- mapChangeReceiver.removeOnDidFinishRenderingFrameListener(listener);
+ mapPresenter.removeOnDidFinishRenderingFrameListener(listener);
}
/**
@@ -661,7 +631,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map will start rendering
*/
public void addOnWillStartRenderingMapListener(OnWillStartRenderingMapListener listener) {
- mapChangeReceiver.addOnWillStartRenderingMapListener(listener);
+ mapPresenter.addOnWillStartRenderingMapListener(listener);
}
/**
@@ -670,7 +640,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map will start rendering
*/
public void removeOnWillStartRenderingMapListener(OnWillStartRenderingMapListener listener) {
- mapChangeReceiver.removeOnWillStartRenderingMapListener(listener);
+ mapPresenter.removeOnWillStartRenderingMapListener(listener);
}
/**
@@ -679,7 +649,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has finished rendering
*/
public void addOnDidFinishRenderingMapListener(OnDidFinishRenderingMapListener listener) {
- mapChangeReceiver.addOnDidFinishRenderingMapListener(listener);
+ mapPresenter.addOnDidFinishRenderingMapListener(listener);
}
/**
@@ -688,7 +658,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has has finished rendering.
*/
public void removeOnDidFinishRenderingMapListener(OnDidFinishRenderingMapListener listener) {
- mapChangeReceiver.removeOnDidFinishRenderingMapListener(listener);
+ mapPresenter.removeOnDidFinishRenderingMapListener(listener);
}
/**
@@ -697,7 +667,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has entered the idle state.
*/
public void addOnDidBecomeIdleListener(OnDidBecomeIdleListener listener) {
- mapChangeReceiver.addOnDidBecomeIdleListener(listener);
+ mapPresenter.addOnDidBecomeIdleListener(listener);
}
/**
@@ -706,7 +676,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the map has entered the idle state.
*/
public void removeOnDidBecomeIdleListener(OnDidBecomeIdleListener listener) {
- mapChangeReceiver.removeOnDidBecomeIdleListener(listener);
+ mapPresenter.removeOnDidBecomeIdleListener(listener);
}
/**
@@ -716,7 +686,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the style has finished loading
*/
public void addOnDidFinishLoadingStyleListener(OnDidFinishLoadingStyleListener listener) {
- mapChangeReceiver.addOnDidFinishLoadingStyleListener(listener);
+ mapPresenter.addOnDidFinishLoadingStyleListener(listener);
}
/**
@@ -725,7 +695,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the style has finished loading
*/
public void removeOnDidFinishLoadingStyleListener(OnDidFinishLoadingStyleListener listener) {
- mapChangeReceiver.removeOnDidFinishLoadingStyleListener(listener);
+ mapPresenter.removeOnDidFinishLoadingStyleListener(listener);
}
/**
@@ -734,7 +704,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the source has changed
*/
public void addOnSourceChangedListener(OnSourceChangedListener listener) {
- mapChangeReceiver.addOnSourceChangedListener(listener);
+ mapPresenter.addOnSourceChangedListener(listener);
}
/**
@@ -743,7 +713,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
* @param listener The callback that's invoked when the source has changed
*/
public void removeOnSourceChangedListener(OnSourceChangedListener listener) {
- mapChangeReceiver.removeOnSourceChangedListener(listener);
+ mapPresenter.removeOnSourceChangedListener(listener);
}
@@ -769,36 +739,40 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
setWillNotDraw(false);
}
- MapRenderer initializeTextureView(@Nullable String localFontFamily, boolean translucent) {
+ MapRenderer createTextureView(@NonNull MapPresenter mapPresenter, @Nullable String localFontFamily,
+ boolean translucent) {
TextureView textureView = new TextureView(getContext());
- mapRenderer = new TextureViewMapRenderer(getContext(),
- textureView, localFontFamily, translucent) {
- @Override
- protected void onSurfaceCreated(GL10 gl, EGLConfig config) {
- MapView.this.onSurfaceCreated();
- super.onSurfaceCreated(gl, config);
- }
- };
-
+ MapRenderer mapRenderer =
+ new TextureViewMapRenderer(mapPresenter, getContext(), textureView, localFontFamily, translucent);
addView(textureView, 0);
return mapRenderer;
}
- MapRenderer initializeSurfaceView(@Nullable String localFontFamily) {
+ MapRenderer createSurfaceView(@NonNull MapPresenter mapPresenter, @Nullable String localFontFamily,
+ boolean renderSurfaceOnTop) {
GLSurfaceView glSurfaceView = new GLSurfaceView(getContext());
- glSurfaceView.setZOrderMediaOverlay(mapboxMapOptions.getRenderSurfaceOnTop());
- mapRenderer = new GLSurfaceViewMapRenderer(getContext(), glSurfaceView, localFontFamily) {
- @Override
- public void onSurfaceCreated(GL10 gl, EGLConfig config) {
- MapView.this.onSurfaceCreated();
- super.onSurfaceCreated(gl, config);
- }
- };
-
+ glSurfaceView.setZOrderMediaOverlay(renderSurfaceOnTop);
+ MapRenderer mapRenderer = new GLSurfaceViewMapRenderer(mapPresenter, getContext(), glSurfaceView, localFontFamily);
addView(glSurfaceView, 0);
return mapRenderer;
}
+ float getDensity() {
+ return getResources().getDisplayMetrics().density;
+ }
+
+ NativeMapView createNativeMapView(float pixelRatio, boolean crossSourceCollisions,
+ MapChangeReceiver mapChangeReceiver, MapRenderer renderer) {
+ return new NativeMapView(
+ FileSource.getInstance(getContext()),
+ pixelRatio,
+ crossSourceCollisions,
+ this,
+ mapChangeReceiver,
+ renderer
+ );
+ }
+
/**
* Interface definition for a callback to be invoked when the camera will change.
* <p>
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
index 10942d521c..9fd4663b57 100755
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java
@@ -10,6 +10,7 @@ import android.support.annotation.Keep;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
+
import com.mapbox.geojson.Feature;
import com.mapbox.geojson.Geometry;
import com.mapbox.mapboxsdk.LibraryLoader;
@@ -80,22 +81,15 @@ final class NativeMapView implements NativeMap {
}
//
- // Constructors
+ // Constructor
//
- public NativeMapView(@NonNull final Context context, final boolean crossSourceCollisions,
- final ViewCallback viewCallback, final StateCallback stateCallback,
- final MapRenderer mapRenderer) {
- this(context, context.getResources().getDisplayMetrics().density, crossSourceCollisions, viewCallback,
- stateCallback, mapRenderer);
- }
-
- public NativeMapView(final Context context, final float pixelRatio, final boolean crossSourceCollisions,
- final ViewCallback viewCallback, final StateCallback stateCallback,
+ public NativeMapView(final FileSource fileSource, final float pixelRatio, final boolean crossSourceCollisions,
+ @Nullable final ViewCallback viewCallback, @Nullable final StateCallback stateCallback,
final MapRenderer mapRenderer) {
this.mapRenderer = mapRenderer;
this.viewCallback = viewCallback;
- this.fileSource = FileSource.getInstance(context);
+ this.fileSource = fileSource;
this.pixelRatio = pixelRatio;
this.thread = Thread.currentThread();
this.stateCallback = stateCallback;
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java
index 3e24b8c797..73cc343f28 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java
@@ -974,7 +974,9 @@ public final class UiSettings {
* Returns the measured height of the MapView
*
* @return height in pixels
+ * @deprecated use {@link MapView#getHeight()} instead
*/
+ @Deprecated
public float getHeight() {
return projection.getHeight();
}
@@ -983,7 +985,9 @@ public final class UiSettings {
* Returns the measured width of the MapView
*
* @return widht in pixels
+ * @deprecated use {@link MapView#getWidth()} instead
*/
+ @Deprecated
public float getWidth() {
return projection.getWidth();
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java
index a9bea97836..68719a5f59 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java
@@ -3,9 +3,10 @@ package com.mapbox.mapboxsdk.maps.renderer;
import android.content.Context;
import android.support.annotation.CallSuper;
import android.support.annotation.Keep;
-
import android.support.annotation.NonNull;
+
import com.mapbox.mapboxsdk.log.Logger;
+import com.mapbox.mapboxsdk.maps.MapPresenter;
import com.mapbox.mapboxsdk.maps.MapboxMap;
import com.mapbox.mapboxsdk.storage.FileSource;
@@ -27,10 +28,13 @@ public abstract class MapRenderer implements MapRendererScheduler {
// Holds the pointer to the native peer after initialisation
private long nativePtr = 0;
+ private final MapPresenter mapPresenter;
+
private double expectedRenderTime = 0;
private MapboxMap.OnFpsChangedListener onFpsChangedListener;
- public MapRenderer(@NonNull Context context, String localIdeographFontFamily) {
+ public MapRenderer(@NonNull MapPresenter mapPresenter, @NonNull Context context, String localIdeographFontFamily) {
+ this.mapPresenter = mapPresenter;
FileSource fileSource = FileSource.getInstance(context);
float pixelRatio = context.getResources().getDisplayMetrics().density;
String programCacheDir = FileSource.getInternalCachePath(context);
@@ -65,6 +69,7 @@ public abstract class MapRenderer implements MapRendererScheduler {
@CallSuper
protected void onSurfaceCreated(GL10 gl, EGLConfig config) {
+ mapPresenter.onSurfaceCreated();
nativeOnSurfaceCreated();
}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenter.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenter.java
new file mode 100644
index 0000000000..2a728c73b0
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenter.java
@@ -0,0 +1,4 @@
+package com.mapbox.mapboxsdk.maps.renderer;
+
+public interface RendererPresenter {
+}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenterImpl.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenterImpl.java
new file mode 100644
index 0000000000..8035420777
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/RendererPresenterImpl.java
@@ -0,0 +1,15 @@
+package com.mapbox.mapboxsdk.maps.renderer;
+
+import android.support.annotation.NonNull;
+
+import com.mapbox.mapboxsdk.maps.MapPresenter;
+
+public class RendererPresenterImpl implements RendererPresenter {
+ private final MapRenderer renderer;
+ private final MapPresenter mapPresenter;
+
+ public RendererPresenterImpl(@NonNull MapRenderer renderer, @NonNull MapPresenter mapPresenter) {
+ this.renderer = renderer;
+ this.mapPresenter = mapPresenter;
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java
index 584c9dcf57..6e86b6395a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java
@@ -4,6 +4,8 @@ import android.content.Context;
import android.opengl.GLSurfaceView;
import android.support.annotation.NonNull;
+
+import com.mapbox.mapboxsdk.maps.MapPresenter;
import com.mapbox.mapboxsdk.maps.renderer.MapRenderer;
import com.mapbox.mapboxsdk.maps.renderer.egl.EGLConfigChooser;
@@ -23,10 +25,10 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi
@NonNull
private final GLSurfaceView glSurfaceView;
- public GLSurfaceViewMapRenderer(Context context,
+ public GLSurfaceViewMapRenderer(@NonNull MapPresenter mapPresenter, Context context,
GLSurfaceView glSurfaceView,
String localIdeographFontFamily) {
- super(context, localIdeographFontFamily);
+ super(mapPresenter, context, localIdeographFontFamily);
this.glSurfaceView = glSurfaceView;
glSurfaceView.setEGLContextClientVersion(2);
glSurfaceView.setEGLConfigChooser(new EGLConfigChooser());
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java
index ad25dea0d3..d58b6e0de4 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java
@@ -4,6 +4,7 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.view.TextureView;
+import com.mapbox.mapboxsdk.maps.MapPresenter;
import com.mapbox.mapboxsdk.maps.renderer.MapRenderer;
import javax.microedition.khronos.egl.EGLConfig;
@@ -27,11 +28,11 @@ public class TextureViewMapRenderer extends MapRenderer {
* @param localIdeographFontFamily the local font family
* @param translucentSurface the translucency flag
*/
- public TextureViewMapRenderer(@NonNull Context context,
+ public TextureViewMapRenderer(@NonNull MapPresenter mapPresenter, @NonNull Context context,
@NonNull TextureView textureView,
String localIdeographFontFamily,
boolean translucentSurface) {
- super(context, localIdeographFontFamily);
+ super(mapPresenter, context, localIdeographFontFamily);
this.translucentSurface = translucentSurface;
renderThread = new TextureViewRenderThread(textureView, this);
renderThread.start();
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapPresenterTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapPresenterTest.kt
index 612e8c3995..c1bf44e81c 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapPresenterTest.kt
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/MapPresenterTest.kt
@@ -1,11 +1,10 @@
package com.mapbox.mapboxsdk.maps
import android.content.Context
-import org.junit.After
+import com.mapbox.mapboxsdk.maps.renderer.MapRenderer
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.Mockito
import org.mockito.Mockito.*
import org.mockito.junit.MockitoJUnitRunner
@@ -15,18 +14,25 @@ class MapPresenterTest {
private lateinit var mapView: MapView
private lateinit var context: Context
private lateinit var mapboxMapOptions: MapboxMapOptions
+ private lateinit var mapRenderer: MapRenderer
+ private lateinit var mapChangeReceiver: MapChangeReceiver
@Before
fun setup() {
mapView = mock(MapView::class.java)
context = mock(Context::class.java)
+ mapChangeReceiver = mock(MapChangeReceiver::class.java)
mapboxMapOptions = mock(MapboxMapOptions::class.java)
doReturn(0xFFF0E9E1.toInt()).`when`(mapboxMapOptions).foregroundLoadColor
doReturn(false).`when`(mapboxMapOptions).textureMode
doReturn(null).`when`(mapboxMapOptions).localIdeographFontFamily
+ doReturn(1f).`when`(mapboxMapOptions).pixelRatio
- mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
+ doReturn(mapRenderer).`when`(mapView).createSurfaceView(any(), any(), any())
+ doReturn(mapRenderer).`when`(mapView).createTextureView(any(), any(), any())
+
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
}
@Test
@@ -46,44 +52,67 @@ class MapPresenterTest {
@Test
fun init_initializeTextureView() {
+ reset(mapView)
doReturn(true).`when`(mapboxMapOptions).textureMode
doReturn(false).`when`(mapboxMapOptions).translucentTextureSurface
doReturn(null).`when`(mapboxMapOptions).localIdeographFontFamily
- mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
- verify(mapView).initializeTextureView(null, false)
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createTextureView(mapPresenter, null, false)
}
@Test
- fun init_initializeTranslucentTextureView() {
+ fun init_initializeTextureView_translucent() {
+ reset(mapView)
doReturn(true).`when`(mapboxMapOptions).textureMode
doReturn(true).`when`(mapboxMapOptions).translucentTextureSurface
doReturn(null).`when`(mapboxMapOptions).localIdeographFontFamily
- mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
- verify(mapView).initializeTextureView(null, true)
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createTextureView(mapPresenter, null, true)
}
@Test
- fun init_initializeTextureViewWithLocalFonts() {
+ fun init_initializeTextureView_localFonts() {
+ reset(mapView)
doReturn(true).`when`(mapboxMapOptions).textureMode
doReturn(true).`when`(mapboxMapOptions).translucentTextureSurface
doReturn("comic-sans").`when`(mapboxMapOptions).localIdeographFontFamily
- mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
- verify(mapView).initializeTextureView("comic-sans", true)
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createTextureView(mapPresenter, "comic-sans", true)
}
@Test
fun init_initializeSurfaceView() {
+ reset(mapView)
doReturn(false).`when`(mapboxMapOptions).textureMode
doReturn(null).`when`(mapboxMapOptions).localIdeographFontFamily
- mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
- verify(mapView).initializeSurfaceView(null)
+ doReturn(false).`when`(mapboxMapOptions).renderSurfaceOnTop
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createSurfaceView(mapPresenter, null, false)
}
@Test
- fun init_initializeSurfaceViewWithLocalFonts() {
+ fun init_initializeSurfaceView_LocalFonts() {
+ reset(mapView)
doReturn(false).`when`(mapboxMapOptions).textureMode
doReturn("comic-sans").`when`(mapboxMapOptions).localIdeographFontFamily
-// mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions)
-// verify(mapView).initializeSurfaceView("comic-sans")
+ doReturn(true).`when`(mapboxMapOptions).renderSurfaceOnTop
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createSurfaceView(mapPresenter, "comic-sans", true)
+ }
+
+ @Test
+ fun init_initializeNativeMapView() {
+ reset(mapView)
+ doReturn(false).`when`(mapboxMapOptions).crossSourceCollisions
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createNativeMapView(1f, false, mapChangeReceiver, mapRenderer)
+ }
+
+ @Test
+ fun init_initializeNativeMapView_crossSourceCollisions() {
+ reset(mapView)
+ doReturn(true).`when`(mapboxMapOptions).crossSourceCollisions
+ mapPresenter = MapPresenterImpl(mapView, context, mapboxMapOptions, mapChangeReceiver)
+ verify(mapView).createNativeMapView(1f, true, mapChangeReceiver, mapRenderer)
}
} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt
index 4b3b97b481..f8ea46231f 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/BaseLayerTest.kt
@@ -2,25 +2,26 @@ package com.mapbox.mapboxsdk.maps
import android.support.test.InstrumentationRegistry
import android.support.test.runner.AndroidJUnit4
+import com.mapbox.mapboxsdk.storage.FileSource
import com.mapbox.mapboxsdk.style.layers.Layer
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
abstract class BaseLayerTest {
- private lateinit var nativeMapView: NativeMapView
+ private lateinit var nativeMapView: NativeMapView
- companion object {
- const val WIDTH = 500
- const val HEIGHT = WIDTH
- }
+ companion object {
+ const val WIDTH = 500
+ const val HEIGHT = WIDTH
+ }
- fun before() {
- val context = InstrumentationRegistry.getContext()
- nativeMapView = NativeMapView(context, false, null, null, NativeMapViewTest.DummyRenderer(context))
- nativeMapView.resizeView(WIDTH, HEIGHT)
- }
+ fun before() {
+ val context = InstrumentationRegistry.getContext()
+ nativeMapView = NativeMapView(FileSource.getInstance(context), context.resources.displayMetrics.density, false, null, null, NativeMapViewTest.DummyRenderer(context))
+ nativeMapView.resizeView(WIDTH, HEIGHT)
+ }
- fun setupLayer(layer: Layer) {
- nativeMapView.addLayer(layer)
- }
+ fun setupLayer(layer: Layer) {
+ nativeMapView.addLayer(layer)
+ }
} \ No newline at end of file