From f73822d33621cc7b9d50fbc1ad3442c39f06abc1 Mon Sep 17 00:00:00 2001 From: Kevin Li Date: Tue, 26 May 2020 15:53:09 +0800 Subject: [PATCH] Do not take snapshot if map is stopped. (#390) --- .../src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 6 ++++++ .../activity/maplayout/GLSurfaceRecyclerViewActivity.kt | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index f50b1a394..e876f6ad6 100644 --- a/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -81,6 +81,7 @@ public final class MapboxMap { private Style style; private boolean debugActive; + private boolean started; MapboxMap(NativeMap map, Transform transform, UiSettings ui, Projection projection, OnGesturesManagerInteractionListener listener, CameraChangeDispatcher cameraChangeDispatcher, @@ -143,6 +144,7 @@ public final class MapboxMap { * Called when the hosting Activity/Fragment onStart() method is called. */ void onStart() { + started = true; locationComponent.onStart(); } @@ -150,6 +152,7 @@ public final class MapboxMap { * Called when the hosting Activity/Fragment onStop() method is called. */ void onStop() { + started = false; locationComponent.onStop(); } @@ -2003,6 +2006,9 @@ public final class MapboxMap { * @param callback Callback method invoked when the snapshot is taken. */ public void snapshot(@NonNull SnapshotReadyCallback callback) { + if (!started) { + return; + } nativeMapView.addSnapshotCallback(callback); } diff --git a/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt b/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt index 750af7cac..bb64b291a 100644 --- a/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt +++ b/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/maplayout/GLSurfaceRecyclerViewActivity.kt @@ -6,7 +6,6 @@ import android.view.LayoutInflater import android.view.ViewGroup import android.widget.TextView import androidx.appcompat.app.AppCompatActivity -import androidx.recyclerview.widget.RecyclerView import com.mapbox.mapboxsdk.maps.MapView import com.mapbox.mapboxsdk.maps.Style import com.mapbox.mapboxsdk.testapp.R @@ -141,7 +140,11 @@ open class GLSurfaceRecyclerViewActivity : AppCompatActivity() { } fun bind(mapItem: MapItem) { - mapView.getMapAsync { mapboxMap -> mapboxMap.setStyle(mapItem.style) } + mapView.getMapAsync { mapboxMap -> + mapboxMap.setStyle(mapItem.style) { + mapboxMap.snapshot { } + } + } } }