diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2018-07-12 08:56:21 +0200 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2018-07-12 09:00:04 +0200 |
commit | 34264c5303db6fc3774571e29687fdcea05c5e6e (patch) | |
tree | fd70f3ba508be6aa9e8c75f95129efa8a4768756 | |
parent | bf69f1a2d3ed4e6792b5ebc704b9cb70c02e6f57 (diff) | |
download | qtlocation-mapboxgl-34264c5303db6fc3774571e29687fdcea05c5e6e.tar.gz |
[android] - add convenience method for destroyed state on MapView, can be used to determine if an asynchrous result should be set on map.upstream/tvn-mapview-isdestroyed
3 files changed, 19 insertions, 4 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 f4b1bca251..3c75c65dc0 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 @@ -425,6 +425,19 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { } } + /** + * Returns if the map has been destroyed. + * <p> + * This method can be used to determine if the result of an asynchronous operation should be set. + * </p> + * + * @return true, if the map has been destroyed + */ + @UiThread + public boolean isDestroyed() { + return destroyed; + } + @Override public boolean onTouchEvent(MotionEvent event) { if (!isMapInitialized() || !isZoomButtonControllerInitialized()) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java index afeb3b8979..92c5949ec1 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/annotation/BulkMarkerActivity.java @@ -92,7 +92,7 @@ public class BulkMarkerActivity extends AppCompatActivity implements AdapterView } private void showMarkers(int amount) { - if (mapboxMap == null || locations == null) { + if (mapboxMap == null || locations == null || mapView.isDestroyed()) { return; } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java index f32aa5faf8..3a11a7e020 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/style/SymbolGeneratorActivity.java @@ -14,7 +14,6 @@ import android.view.MenuItem; import android.view.View; import android.widget.TextView; import android.widget.Toast; - import com.mapbox.geojson.Feature; import com.mapbox.geojson.FeatureCollection; import com.mapbox.mapboxsdk.maps.MapView; @@ -26,14 +25,13 @@ import com.mapbox.mapboxsdk.style.sources.GeoJsonSource; import com.mapbox.mapboxsdk.style.sources.Source; import com.mapbox.mapboxsdk.testapp.R; import com.mapbox.mapboxsdk.testapp.utils.ResourceUtils; +import timber.log.Timber; import java.io.IOException; import java.lang.ref.WeakReference; import java.util.HashMap; import java.util.List; -import timber.log.Timber; - import static com.mapbox.mapboxsdk.style.expressions.Expression.concat; import static com.mapbox.mapboxsdk.style.expressions.Expression.division; import static com.mapbox.mapboxsdk.style.expressions.Expression.downcase; @@ -240,6 +238,10 @@ public class SymbolGeneratorActivity extends AppCompatActivity implements OnMapR } public void onDataLoaded(@NonNull FeatureCollection featureCollection) { + if (mapView.isDestroyed()) { + return; + } + // create expressions Expression iconImageExpression = string(get(literal(FEATURE_ID))); Expression iconSizeExpression = division(number(get(literal(FEATURE_RANK))), literal(2.0f)); |