[android] - remove view tree observer

This commit is contained in:
Tobrun
2018-10-18 14:49:25 +02:00
committed by Tobrun
parent d7d48c3ebc
commit fc2afc1d23

View File

@@ -5,7 +5,6 @@ import android.graphics.Bitmap;
import android.graphics.PointF;
import android.graphics.drawable.ColorDrawable;
import android.opengl.GLSurfaceView;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.CallSuper;
import android.support.annotation.IntDef;
@@ -20,7 +19,6 @@ import android.view.MotionEvent;
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;
@@ -144,8 +142,7 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
// add accessibility support
setContentDescription(context.getString(R.string.mapbox_mapActionDescription));
setWillNotDraw(false);
getViewTreeObserver().addOnGlobalLayoutListener(new MapViewLayoutListener(this, options));
initialiseDrawingSurface(options);
}
private void initialiseMap() {
@@ -1366,30 +1363,6 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback {
void onMapChanged(@MapChange int change);
}
private static class MapViewLayoutListener implements ViewTreeObserver.OnGlobalLayoutListener {
private WeakReference<MapView> mapViewWeakReference;
private MapboxMapOptions options;
MapViewLayoutListener(MapView mapView, MapboxMapOptions options) {
this.mapViewWeakReference = new WeakReference<>(mapView);
this.options = options;
}
@Override
public void onGlobalLayout() {
MapView mapView = mapViewWeakReference.get();
if (mapView != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
mapView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
mapView.initialiseDrawingSurface(options);
}
}
}
private class FocalPointInvalidator implements FocalPointChangeListener {
private final List<FocalPointChangeListener> focalPointChangeListeners = new ArrayList<>();