summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun Van Nuland <tobrun.van.nuland@gmail.com>2017-07-25 14:10:31 +0200
committerTobrun <tobrun@mapbox.com>2017-07-25 15:15:59 +0200
commit906fc0421aa85308460586023cfe727501c9bbb5 (patch)
treea69ea50c67d6a94ac08de51be521e00d0a32ad3d
parenta28228013ce83ce115175d0a40b62fe0bfe81559 (diff)
downloadqtlocation-mapboxgl-906fc0421aa85308460586023cfe727501c9bbb5.tar.gz
[android] - hook into onGlobalLayout to start creating the surface and as a result create the map object
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java17
1 files changed, 14 insertions, 3 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 bb8771b5dd..1f31e3b5a3 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
@@ -4,6 +4,7 @@ import android.content.Context;
import android.graphics.Canvas;
import android.graphics.PointF;
import android.graphics.SurfaceTexture;
+import android.os.Build;
import android.os.Bundle;
import android.support.annotation.CallSuper;
import android.support.annotation.IntDef;
@@ -21,6 +22,7 @@ import android.view.SurfaceView;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ZoomButtonsController;
@@ -122,6 +124,18 @@ public class MapView extends FrameLayout {
// add accessibility support
setContentDescription(context.getString(R.string.mapbox_mapActionDescription));
setWillNotDraw(false);
+
+ getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
+ @Override
+ public void onGlobalLayout() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ getViewTreeObserver().removeOnGlobalLayoutListener(this);
+ } else {
+ getViewTreeObserver().removeGlobalOnLayoutListener(this);
+ }
+ initialiseDrawingSurface(mapboxMapOptions.getTextureMode());
+ }
+ });
}
private void initialiseMap() {
@@ -553,9 +567,6 @@ public class MapView extends FrameLayout {
if (isInEditMode()) {
return;
}
- if (visibility == View.VISIBLE && nativeMapView == null) {
- initialiseDrawingSurface(mapboxMapOptions.getTextureMode());
- }
if (mapZoomButtonController != null && nativeMapView != null) {
mapZoomButtonController.setVisible(visibility == View.VISIBLE);