diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK')
3 files changed, 20 insertions, 4 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java index 9e72be8e9b..3fd155837e 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/UiSettings.java @@ -417,10 +417,6 @@ public final class UiSettings { } void update(@NonNull CameraPosition cameraPosition) { - if (!isCompassEnabled()) { - return; - } - double clockwiseBearing = -cameraPosition.bearing; compassView.update(clockwiseBearing); } @@ -1073,6 +1069,7 @@ public final class UiSettings { */ public void invalidate() { setLogoMargins(getLogoMarginLeft(), getLogoMarginTop(), getLogoMarginRight(), getLogoMarginBottom()); + setCompassEnabled(isCompassEnabled()); setCompassMargins(getCompassMarginLeft(), getCompassMarginTop(), getCompassMarginRight(), getCompassMarginBottom()); setAttributionMargins(getAttributionMarginLeft(), getAttributionMarginTop(), getAttributionMarginRight(), getAttributionMarginBottom()); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java index 53c0c1c60f..b593076dc1 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/CompassView.java @@ -91,6 +91,7 @@ public final class CompassView extends ImageView implements Runnable { resetAnimation(); setAlpha(1.0f); setVisibility(View.VISIBLE); + update(rotation); } else { resetAnimation(); setAlpha(0.0f); diff --git a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java index cfcf0a0486..a84e93cd75 100644 --- a/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java +++ b/platform/android/MapboxGLAndroidSDK/src/test/java/com/mapbox/mapboxsdk/maps/UiSettingsTest.java @@ -5,6 +5,7 @@ import android.view.View; import android.widget.FrameLayout; import android.widget.ImageView; +import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.maps.widgets.CompassView; import org.junit.Before; @@ -17,6 +18,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.mockito.Mockito.verify; public class UiSettingsTest { @@ -412,4 +414,20 @@ public class UiSettingsTest { assertEquals("Zoom rate should be 0.83f", 0.83f, uiSettings.getZoomRate(), 0); } + + @Test + public void testUpdateWhenCompassViewNotHidden() { + CameraPosition cameraPosition = new CameraPosition.Builder(CameraPosition.DEFAULT).bearing(24.0f).build(); + when(compassView.isHidden()).thenReturn(false); + uiSettings.update(cameraPosition); + verify(compassView).update(-24.0f); + } + + @Test + public void testUpdateWhenCompassViewHidden() { + CameraPosition cameraPosition = new CameraPosition.Builder(CameraPosition.DEFAULT).bearing(24.0f).build(); + when(compassView.isHidden()).thenReturn(true); + uiSettings.update(cameraPosition); + verify(compassView).update(-24.0f); + } } |