summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-07-22 15:29:52 +0200
committerŁukasz Paczos <lukas.paczos@gmail.com>2019-07-22 16:02:56 +0200
commit50e298e959e4b5b779b142e2edf41945b4bc4705 (patch)
treee93500c9ca551966818317e0ff62aa0d345747bb
parentbbea3d01c6035867d08b92973006eae4647df136 (diff)
downloadqtlocation-mapboxgl-upstream/lp-cp-15191.tar.gz
[android] remove layers first when clearing the styleupstream/lp-cp-15191
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java14
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt23
2 files changed, 26 insertions, 11 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
index 07e0daef54..a449ad8a06 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Style.java
@@ -518,13 +518,6 @@ public class Style {
*/
void clear() {
fullyLoaded = false;
- for (Source source : sources.values()) {
- if (source != null) {
- source.setDetached();
- nativeMap.removeSource(source);
- }
- }
-
for (Layer layer : layers.values()) {
if (layer != null) {
layer.setDetached();
@@ -532,6 +525,13 @@ public class Style {
}
}
+ for (Source source : sources.values()) {
+ if (source != null) {
+ source.setDetached();
+ nativeMap.removeSource(source);
+ }
+ }
+
for (Map.Entry<String, Bitmap> bitmapEntry : images.entrySet()) {
nativeMap.removeImage(bitmapEntry.getKey());
bitmapEntry.getValue().recycle();
diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
index 7b5ed67184..9a7462b8d0 100644
--- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
+++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/StyleTest.kt
@@ -8,10 +8,7 @@ import com.mapbox.mapboxsdk.style.layers.SymbolLayer
import com.mapbox.mapboxsdk.style.layers.TransitionOptions
import com.mapbox.mapboxsdk.style.sources.CannotAddSourceException
import com.mapbox.mapboxsdk.style.sources.GeoJsonSource
-import io.mockk.every
-import io.mockk.mockk
-import io.mockk.spyk
-import io.mockk.verify
+import io.mockk.*
import org.junit.Assert
import org.junit.Before
import org.junit.Test
@@ -408,4 +405,22 @@ class StyleTest {
Assert.assertEquals("Layer that failed to be added shouldn't be cached", layer1, mapboxMap.style!!.getLayer("layer1"))
}
}
+
+ @Test
+ fun testClearRemovesSourcesFirst() {
+ val source1 = mockk<GeoJsonSource>(relaxed = true)
+ every { source1.id } returns "source1"
+ val layer1 = mockk<SymbolLayer>(relaxed = true)
+ every { layer1.id } returns "layer1"
+
+ val builder = Style.Builder().withLayer(layer1).withSource(source1)
+ mapboxMap.setStyle(builder)
+ mapboxMap.notifyStyleLoaded()
+ mapboxMap.setStyle(Style.MAPBOX_STREETS)
+
+ verifyOrder {
+ nativeMapView.removeLayer(layer1)
+ nativeMapView.removeSource(source1)
+ }
+ }
} \ No newline at end of file