diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src')
3 files changed, 21 insertions, 6 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 b671d1e4db..102c221e0a 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 @@ -292,8 +292,8 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { @Override protected void onSurfaceDestroyed() { - MapView.this.onSurfaceDestroyed(); super.onSurfaceDestroyed(); + MapView.this.onSurfaceDestroyed(); } }; @@ -310,8 +310,8 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { @Override protected void onSurfaceDestroyed() { - MapView.this.onSurfaceDestroyed(); super.onSurfaceDestroyed(); + MapView.this.onSurfaceDestroyed(); } }; @@ -442,7 +442,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { mapboxMap.onDestroy(); } - if (nativeMapView != null && nativeMapView.hasSurface()) { + if (nativeMapView != null) { // null when destroying an activity programmatically mapbox-navigation-android/issues/503 nativeMapView.destroy(); nativeMapView = null; @@ -762,7 +762,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { } /** - * /** + * * Set a callback that's invoked when the style has finished loading. * * @param listener The callback that's invoked when the style has finished loading 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 e1f929c0f1..094129ed5c 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 @@ -4,7 +4,6 @@ import android.content.Context; import android.support.annotation.CallSuper; import android.support.annotation.Keep; import android.support.annotation.NonNull; - import com.mapbox.mapboxsdk.LibraryLoader; import com.mapbox.mapboxsdk.log.Logger; import com.mapbox.mapboxsdk.maps.MapboxMap; 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 524c1a62ee..47cb35edbc 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,6 +22,7 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi @NonNull private final GLSurfaceView glSurfaceView; + private boolean hasSurface; public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView, @@ -33,11 +34,18 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi glSurfaceView.setRenderer(this); glSurfaceView.setRenderMode(RENDERMODE_WHEN_DIRTY); glSurfaceView.setPreserveEGLContextOnPause(true); - glSurfaceView.getHolder().addCallback(new SurfaceHolderCallbackAdapter() { @Override + public void surfaceCreated(SurfaceHolder holder) { + super.surfaceCreated(holder); + hasSurface = true; + } + + @Override public void surfaceDestroyed(SurfaceHolder holder) { + super.surfaceDestroyed(holder); + hasSurface = false; onSurfaceDestroyed(); } }); @@ -74,6 +82,11 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi } @Override + protected void onSurfaceDestroyed() { + super.onSurfaceDestroyed(); + } + + @Override public void onSurfaceChanged(GL10 gl, int width, int height) { super.onSurfaceChanged(gl, width, height); } @@ -90,6 +103,9 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi */ @Override public void requestRender() { + if (!hasSurface) { + return; + } glSurfaceView.requestRender(); } |