diff options
author | Peng Liu <peng.liu@mapbox.com> | 2019-09-12 11:59:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-12 11:59:56 +0300 |
commit | f0d3d459b8e2f19bf8eae923e2a01bcf57a4067f (patch) | |
tree | 3852ef7b1b1b4525a34cd23c22b7a42bf460df3d /platform | |
parent | 53e56945ebef1bd1ccfff724223aba2de5fca058 (diff) | |
download | qtlocation-mapboxgl-f0d3d459b8e2f19bf8eae923e2a01bcf57a4067f.tar.gz |
[android] Keep CompassView's state up to date when compass is enabled. (#15606)
* [android] Keep CompassView's state up to date when compass is enabled.
* [android] Add unit test for updating compass view.
* [android] Add change log.
Diffstat (limited to 'platform')
4 files changed, 21 insertions, 4 deletions
diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 6937b7e6d1..9ad600b16e 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -6,6 +6,7 @@ Mapbox welcomes participation and contributions from everyone. If you'd like to ### Bug fixes - Fixed constant repainting for the sources with invisible layers, caused by `RenderSource::hasFadingTiles()` returning `true` all the time. [#15600](https://github.com/mapbox/mapbox-gl-native/pull/15600) + - Fixed an issue that caused the state of CompassView not up to date when `UiSettings.setCompassEnabled()` is set to true. [#15606](https://github.com/mapbox/mapbox-gl-native/pull/15606) ## 8.4.0-alpha.2 - September 11, 2019 [Changes](https://github.com/mapbox/mapbox-gl-native/compare/android-v8.4.0-alpha.1...android-v8.4.0-alpha.2) since [Mapbox Maps SDK for Android v8.4.0](https://github.com/mapbox/mapbox-gl-native/releases/tag/android-v8.4.0-alpha.1): 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); + } } |