summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-04-15 11:58:46 +0200
committertobrun <tobrun.van.nuland@gmail.com>2019-04-16 13:32:37 +0200
commitdde289a846c6ee48626dbe509ec6e86fd3e4f9b9 (patch)
tree43c7241d93b949a58114d6b073bf776e1f3d4b63
parenta8526b4c91a2eaad0f915a59f420c513d40aa1ac (diff)
downloadqtlocation-mapboxgl-dde289a846c6ee48626dbe509ec6e86fd3e4f9b9.tar.gz
[android] - unify has surface state handling
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java19
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java4
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java17
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/MapRenderer.java11
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java4
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java2
6 files changed, 16 insertions, 41 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 167a1318ce..48c8bb1016 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
@@ -289,12 +289,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
MapView.this.onSurfaceCreated();
super.onSurfaceCreated(gl, config);
}
-
- @Override
- protected void onSurfaceDestroyed() {
- super.onSurfaceDestroyed();
- MapView.this.onSurfaceDestroyed();
- }
};
addView(textureView, 0);
@@ -307,12 +301,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
MapView.this.onSurfaceCreated();
super.onSurfaceCreated(gl, config);
}
-
- @Override
- protected void onSurfaceDestroyed() {
- super.onSurfaceDestroyed();
- MapView.this.onSurfaceDestroyed();
- }
};
addView(glSurfaceView, 0);
@@ -325,7 +313,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
}
private void onSurfaceCreated() {
- nativeMapView.setHasSurface(true);
post(new Runnable() {
@Override
public void run() {
@@ -338,12 +325,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
});
}
- private void onSurfaceDestroyed() {
- if (nativeMapView != null) {
- nativeMapView.setHasSurface(false);
- }
- }
-
/**
* You must call this method from the parent's Activity#onSaveInstanceState(Bundle)
* or Fragment#onSaveInstanceState(Bundle).
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java
index 35316379a1..e49126531a 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMap.java
@@ -37,10 +37,6 @@ interface NativeMap {
boolean isDestroyed();
- boolean hasSurface();
-
- void setHasSurface(boolean hasSurface);
-
//
// Camera API
//
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 0a63150759..2dff2194a5 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
@@ -68,9 +68,6 @@ final class NativeMapView implements NativeMap {
// Flag to indicate destroy was called
private boolean destroyed = false;
- // Flag to indicate surface was destroyed
- private boolean hasSurface = false;
-
// Holds the pointer to JNI NativeMapView
@Keep
private long nativePtr = 0;
@@ -893,7 +890,7 @@ final class NativeMapView implements NativeMap {
public List<Feature> queryRenderedFeatures(@NonNull PointF coordinates,
@Nullable String[] layerIds,
@Nullable Expression filter) {
- if (checkState("queryRenderedFeatures") || !hasSurface) {
+ if (checkState("queryRenderedFeatures") || !mapRenderer.hasSurface()) {
return new ArrayList<>();
}
Feature[] features = nativeQueryRenderedFeaturesForPoint(coordinates.x / pixelRatio,
@@ -906,7 +903,7 @@ final class NativeMapView implements NativeMap {
public List<Feature> queryRenderedFeatures(@NonNull RectF coordinates,
@Nullable String[] layerIds,
@Nullable Expression filter) {
- if (checkState("queryRenderedFeatures") || !hasSurface) {
+ if (checkState("queryRenderedFeatures") || !mapRenderer.hasSurface()) {
return new ArrayList<>();
}
Feature[] features = nativeQueryRenderedFeaturesForBox(
@@ -1436,16 +1433,6 @@ final class NativeMapView implements NativeMap {
return destroyed;
}
- @Override
- public boolean hasSurface() {
- return hasSurface;
- }
-
- @Override
- public void setHasSurface(boolean hasSurface) {
- this.hasSurface = hasSurface;
- }
-
public interface ViewCallback {
int 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 094129ed5c..22e717d8ff 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
@@ -30,9 +30,9 @@ public abstract class MapRenderer implements MapRendererScheduler {
// Holds the pointer to the native peer after initialisation
private long nativePtr = 0;
-
private double expectedRenderTime = 0;
private MapboxMap.OnFpsChangedListener onFpsChangedListener;
+ protected boolean hasSurface;
public MapRenderer(@NonNull Context context, String localIdeographFontFamily) {
float pixelRatio = context.getResources().getDisplayMetrics().density;
@@ -156,4 +156,13 @@ public abstract class MapRenderer implements MapRendererScheduler {
}
expectedRenderTime = 1E9 / maximumFps;
}
+
+ /**
+ * Returns true if renderer has a surface to draw on.
+ *
+ * @return returns if renderer has a surface, false otherwise
+ */
+ public boolean hasSurface() {
+ return hasSurface;
+ }
}
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 47cb35edbc..0b7861eb79 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
@@ -22,7 +22,6 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi
@NonNull
private final GLSurfaceView glSurfaceView;
- private boolean hasSurface;
public GLSurfaceViewMapRenderer(Context context,
GLSurfaceView glSurfaceView,
@@ -40,6 +39,7 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi
public void surfaceCreated(SurfaceHolder holder) {
super.surfaceCreated(holder);
hasSurface = true;
+
}
@Override
@@ -103,7 +103,7 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi
*/
@Override
public void requestRender() {
- if (!hasSurface) {
+ if (!hasSurface()) {
return;
}
glSurfaceView.requestRender();
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 46e6463fe8..eade1e6aac 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
@@ -43,6 +43,7 @@ public class TextureViewMapRenderer extends MapRenderer {
@Override
protected void onSurfaceCreated(GL10 gl, EGLConfig config) {
super.onSurfaceCreated(gl, config);
+ hasSurface = true;
}
/**
@@ -58,6 +59,7 @@ public class TextureViewMapRenderer extends MapRenderer {
*/
@Override
protected void onSurfaceDestroyed() {
+ hasSurface = false;
super.onSurfaceDestroyed();
}