From d2140582764d47c3c9b42e1ffa4f66cd12da272c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Paczos?= Date: Tue, 13 Aug 2019 13:33:04 +0200 Subject: [PATCH] [scalebar] invalidate the widget when plugin is toggled --- .../com/mapbox/pluginscalebar/ScaleBarPlugin.java | 1 + .../mapbox/pluginscalebar/ScaleBarPluginTest.kt | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/plugin-scalebar/src/main/java/com/mapbox/pluginscalebar/ScaleBarPlugin.java b/plugin-scalebar/src/main/java/com/mapbox/pluginscalebar/ScaleBarPlugin.java index 353b38061..4265a4a3f 100644 --- a/plugin-scalebar/src/main/java/com/mapbox/pluginscalebar/ScaleBarPlugin.java +++ b/plugin-scalebar/src/main/java/com/mapbox/pluginscalebar/ScaleBarPlugin.java @@ -91,6 +91,7 @@ public void setEnabled(boolean enabled) { scaleBarWidget.setVisibility(enabled ? View.VISIBLE : View.GONE); if (enabled) { mapboxMap.addOnCameraMoveListener(cameraMoveListener); + invalidateScaleBar(); } else { mapboxMap.removeOnCameraMoveListener(cameraMoveListener); } diff --git a/plugin-scalebar/src/test/java/com/mapbox/pluginscalebar/ScaleBarPluginTest.kt b/plugin-scalebar/src/test/java/com/mapbox/pluginscalebar/ScaleBarPluginTest.kt index a15cefce9..39fb71cc1 100644 --- a/plugin-scalebar/src/test/java/com/mapbox/pluginscalebar/ScaleBarPluginTest.kt +++ b/plugin-scalebar/src/test/java/com/mapbox/pluginscalebar/ScaleBarPluginTest.kt @@ -6,7 +6,6 @@ import com.mapbox.mapboxsdk.maps.MapView import com.mapbox.mapboxsdk.maps.MapboxMap import com.mapbox.mapboxsdk.maps.Projection import io.mockk.MockKAnnotations -import io.mockk.clearAllMocks import io.mockk.every import io.mockk.impl.annotations.MockK import io.mockk.verify @@ -102,4 +101,17 @@ class ScaleBarPluginTest { verify { scaleBarWidget.visibility = View.VISIBLE } verify(exactly = 1) { mapboxMap.addOnCameraMoveListener(scaleBarPlugin.cameraMoveListener) } } + + @Test + fun toggled_invalidateWidget() { + val scaleBarPlugin = ScaleBarPlugin(mapView, mapboxMap) + scaleBarPlugin.create(scaleBarOptions) + verify(exactly = 1) { mapboxMap.cameraPosition } + verify(exactly = 1) { scaleBarWidget.setDistancePerPixel(100_000.0) } + scaleBarPlugin.isEnabled = false + scaleBarPlugin.isEnabled = true + + verify(exactly = 2) { mapboxMap.cameraPosition } + verify(exactly = 2) { scaleBarWidget.setDistancePerPixel(100_000.0) } + } } \ No newline at end of file