summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-07-19 11:06:03 +0200
committertobrun <tobrun.van.nuland@gmail.com>2019-07-24 12:13:03 +0200
commit347fa80dc04c7522df7edbe144403f3481f69558 (patch)
tree28d9aab9e1f94b282c6cedb762278f45f4c9f099
parentcafecd3f6fedc16e7bf5dff699960978c3b5cb3d (diff)
downloadqtlocation-mapboxgl-347fa80dc04c7522df7edbe144403f3481f69558.tar.gz
[android] delay render thread creation for TextureView implementation
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/textureview/TextureViewMapRenderer.java26
1 files changed, 20 insertions, 6 deletions
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..f743290258 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
@@ -3,7 +3,7 @@ package com.mapbox.mapboxsdk.maps.renderer.textureview;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.TextureView;
-
+import android.view.View;
import com.mapbox.mapboxsdk.maps.renderer.MapRenderer;
import javax.microedition.khronos.egl.EGLConfig;
@@ -25,16 +25,28 @@ public class TextureViewMapRenderer extends MapRenderer {
* @param context the current Context
* @param textureView the TextureView
* @param localIdeographFontFamily the local font family
- * @param translucentSurface the translucency flag
+ * @param translucentSurface the translucency flag
*/
public TextureViewMapRenderer(@NonNull Context context,
- @NonNull TextureView textureView,
+ @NonNull final TextureView textureView,
String localIdeographFontFamily,
boolean translucentSurface) {
super(context, localIdeographFontFamily);
this.translucentSurface = translucentSurface;
- renderThread = new TextureViewRenderThread(textureView, this);
- renderThread.start();
+ textureView.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
+ @Override
+ public void onViewAttachedToWindow(View v) {
+ if (renderThread == null) {
+ renderThread = new TextureViewRenderThread(textureView, TextureViewMapRenderer.this);
+ renderThread.start();
+ }
+ }
+
+ @Override
+ public void onViewDetachedFromWindow(View v) {
+
+ }
+ });
}
/**
@@ -98,7 +110,9 @@ public class TextureViewMapRenderer extends MapRenderer {
*/
@Override
public void onStart() {
- renderThread.onResume();
+ if (renderThread != null) {
+ renderThread.onResume();
+ }
}
/**