diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-08-21 17:24:11 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-08-27 13:06:00 +0200 |
commit | 956bd5204e30d27f23718a2860c89f33059b62ce (patch) | |
tree | adb5454ebe5365b226f7a484840002c0b3617f24 | |
parent | 808d311868cbc77f05d022c1f1d9c37f3819f4ff (diff) | |
download | qtlocation-mapboxgl-956bd5204e30d27f23718a2860c89f33059b62ce.tar.gz |
Revert "[android] invalidate camera when setting a padding"
(cherry picked from commit baa7086570c1c0df2bf852b91eb55ae7d8d8d88c)
3 files changed, 22 insertions, 85 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt deleted file mode 100644 index e93f54161e..0000000000 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/MapboxMapInstrumentationTest.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.mapbox.mapboxsdk.maps - -import android.graphics.PointF -import android.support.test.runner.AndroidJUnit4 -import com.mapbox.mapboxsdk.camera.CameraUpdateFactory -import com.mapbox.mapboxsdk.geometry.LatLng -import com.mapbox.mapboxsdk.testapp.activity.BaseTest -import com.mapbox.mapboxsdk.testapp.activity.espresso.DeviceIndependentTestActivity -import org.junit.Assert.assertArrayEquals -import org.junit.Assert.assertEquals -import org.junit.Test -import org.junit.runner.RunWith - -@RunWith(AndroidJUnit4::class) -class MapboxMapInstrumentationTest : BaseTest() { - - override fun getActivityClass(): Class<*> { - return DeviceIndependentTestActivity::class.java - } - - @Test - fun setPadding_cameraInvalidated() { - rule.runOnUiThread { - mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 0.0), 10.0)) - val initialCameraPosition = mapboxMap.cameraPosition - val initialPoint = mapboxMap.projection.toScreenLocation(initialCameraPosition.target) - - val bottomPadding = mapView.height / 4 - val leftPadding = mapView.width / 4 - mapboxMap.setPadding(leftPadding, 0, 0, bottomPadding) - - val resultingCameraPosition = mapboxMap.cameraPosition - assertArrayEquals(intArrayOf(leftPadding, 0, 0, bottomPadding), mapboxMap.padding) - assertEquals(initialCameraPosition, resultingCameraPosition) - assertEquals( - PointF(initialPoint.x + leftPadding / 2, initialPoint.y - bottomPadding / 2), - mapboxMap.projection.toScreenLocation(resultingCameraPosition.target) - ) - } - } -}
\ No newline at end of file diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt index 684b13af5d..d527395e2a 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt @@ -8,7 +8,8 @@ import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke import com.mapbox.mapboxsdk.testapp.activity.BaseTest import com.mapbox.mapboxsdk.testapp.activity.espresso.PixelTestActivity -import org.junit.Assert.* +import org.junit.Assert.assertFalse +import org.junit.Assert.assertTrue import org.junit.Test class VisibleRegionTest : BaseTest() { @@ -69,7 +70,7 @@ class VisibleRegionTest : BaseTest() { val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(1, filtered.size) + assertTrue(filtered.size == 1) assertTrue(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f))) } } @@ -88,18 +89,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, 0f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(mapView.width / 4, 0, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) - val filtered = latLngs.filter { - visibleRegion.latLngBounds.contains(it) - } - assertEquals(5, filtered.size) + val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f))) } } @@ -118,16 +115,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height * 3f / 4f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, mapView.height / 4, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f))) } } @@ -146,16 +141,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, 0f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, 0, mapView.width / 4, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height / 2f))) } } @@ -174,16 +167,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 4f), - mapboxMap.getLatLngFromScreenCoords(0f, mapView.height * 3f / 4f) + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, 0, 0, mapView.height / 4) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()))) } } @@ -237,7 +228,7 @@ class VisibleRegionTest : BaseTest() { val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(1, filtered.size) + assertTrue(filtered.size == 1) assertTrue(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f))) } } @@ -259,17 +250,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, 0f), - mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, mapView.height / 2f) - .also { it.longitude += 360 } + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(mapView.width / 4, 0, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f))) } } @@ -279,6 +267,7 @@ class VisibleRegionTest : BaseTest() { validateTestSetup() invoke(mapboxMap) { ui: UiController, mapboxMap: MapboxMap -> mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 180.0), 8.0)) + ui.loopMainThreadForAtLeast(5000) val latLngs = listOf( mapboxMap.getLatLngFromScreenCoords(0f, 0f), mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f), @@ -291,17 +280,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), - mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height * 3f / 4f) - .also { it.longitude += 360 } + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, mapView.height / 4, 0, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f))) } } @@ -323,17 +309,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 4f, 0f), - mapboxMap.getLatLngFromScreenCoords(mapView.width * 3f / 4f, mapView.height / 2f) - .also { it.longitude += 360 } + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, 0, mapView.width / 4, 0) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height / 2f))) } } @@ -355,17 +338,14 @@ class VisibleRegionTest : BaseTest() { mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height.toFloat()), mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f), - mapboxMap.getLatLngFromScreenCoords(0f, mapView.height / 4f), - mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height * 3f / 4f) - .also { it.longitude += 360 } + mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f) ) mapboxMap.setPadding(0, 0, 0, mapView.height / 4) val visibleRegion = mapboxMap.projection.getVisibleRegion(false) val filtered = latLngs.filter { visibleRegion.latLngBounds.contains(it) } - assertEquals(5, filtered.size) + assertTrue(filtered.size == 6) assertFalse(filtered.contains(mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height.toFloat()))) } } diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 47f2c6d9aa..48b65c4c02 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -516,8 +516,6 @@ void NativeMapView::setVisibleCoordinateBounds(JNIEnv& env, const jni::Array<jni void NativeMapView::setContentPadding(JNIEnv&, float top, float left, float bottom, float right) { insets = {top, left, bottom, right}; - // invalidate the camera position to consider the new padding - map->jumpTo(map->getCameraOptions(insets)); } jni::Local<jni::Array<jni::jfloat>> NativeMapView::getContentPadding(JNIEnv& env) { |