From fee22273be2d33049311de72ff6bf973b6b05164 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Fri, 22 Feb 2019 15:25:02 +0200 Subject: [android] gl surfaceview renderer - only destroy context when destroying the mapview --- .../glsurfaceview/GLSurfaceViewMapRenderer.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) 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 e757907ab8..9d9a7bd2d4 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 @@ -25,6 +25,8 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi @NonNull private final GLSurfaceView glSurfaceView; + private boolean requestDestroy; + public GLSurfaceViewMapRenderer(Context context, GLSurfaceView glSurfaceView, String localIdeographFontFamily) { @@ -40,7 +42,7 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi @Override public void surfaceDestroyed(SurfaceHolder holder) { - GLSurfaceViewMapRenderer.this.onSurfaceDestroyed(); + requestDestroy = true; } }); @@ -51,11 +53,29 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi glSurfaceView.onPause(); } + @Override + public void onPause() { + super.onPause(); + } + + @Override + public void onDestroy() { + if (requestDestroy) { + onSurfaceDestroyed(); + } + super.onDestroy(); + } + @Override public void onStart() { glSurfaceView.onResume(); } + @Override + public void onResume() { + super.onResume(); + } + @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { super.onSurfaceCreated(gl, config); -- cgit v1.2.1