Expose RENDERMODE_CONTINUOUSLY and RENDERMODE_WHEN_DIRTY (#2801)

This commit is contained in:
alasram
2024-09-17 12:59:58 -07:00
committed by GitHub
parent 0e0c8da72a
commit 77a464d335
11 changed files with 157 additions and 59 deletions

View File

@@ -19,6 +19,7 @@ import org.maplibre.android.annotations.PolylineOptions
import org.maplibre.android.exceptions.InvalidMarkerPositionException
import org.maplibre.android.geometry.LatLng
import org.maplibre.android.maps.MapLibreMap.InfoWindowAdapter
import org.maplibre.android.maps.renderer.MapRenderer.RenderingRefreshMode
import org.maplibre.android.testapp.R
import org.maplibre.android.testapp.activity.EspressoTest
@@ -480,6 +481,19 @@ class MapLibreMapTest : EspressoTest() {
}
}
@Test
fun testRenderingRefreshMode() {
validateTestSetup()
rule.runOnUiThread {
mapView = rule.getActivity().findViewById(R.id.mapView)
// Default RenderingRefreshMode is WHEN_DIRTY
assertTrue(mapView.getRenderingRefreshMode() == RenderingRefreshMode.WHEN_DIRTY)
// Switch to CONTINUOUS rendering
mapView.setRenderingRefreshMode(RenderingRefreshMode.CONTINUOUS)
assertTrue(mapView.getRenderingRefreshMode() == RenderingRefreshMode.CONTINUOUS)
}
}
@Deprecated("remove this class when removing deprecated annotations")
inner class MapLibreMapAction internal constructor(private val invokeViewAction: InvokeViewAction) : ViewAction {
override fun getConstraints(): Matcher<View> {

View File

@@ -437,6 +437,8 @@ class NativeMapViewTest : AppCenter() {
class DummyRenderer(context: Context) : MapRenderer(context, null) {
private var renderingRefreshMode: RenderingRefreshMode = RenderingRefreshMode.WHEN_DIRTY
override fun requestRender() {
// no-op
}
@@ -452,5 +454,13 @@ class NativeMapViewTest : AppCenter() {
override fun getView(): View? {
return null;
}
override fun setRenderingRefreshMode(mode : RenderingRefreshMode) {
renderingRefreshMode = mode
}
override fun getRenderingRefreshMode() : RenderingRefreshMode{
return renderingRefreshMode
}
}
}

View File

@@ -50,7 +50,7 @@ public abstract class BaseTest extends AppCenter {
@Before
@CallSuper
public void beforeTest() {
initialiseMap();
initializeMap();
holdTestRunnerForStyleLoad();
}
@@ -71,15 +71,15 @@ public abstract class BaseTest extends AppCenter {
if (!MapLibre.isConnected()) {
Timber.e("Not connected to the internet while running test");
}
assertNotNull("MapView isn't initialised", mapView);
assertNotNull("MapLibreMap isn't initialised", maplibreMap);
assertNotNull("Style isn't initialised", maplibreMap.getStyle());
assertNotNull("MapView isn't initialized", mapView);
assertNotNull("MapLibreMap isn't initialized", maplibreMap);
assertNotNull("Style isn't initialized", maplibreMap.getStyle());
assertTrue("Style isn't fully loaded", maplibreMap.getStyle().isFullyLoaded());
}
protected abstract Class getActivityClass();
private void initialiseMap() {
private void initializeMap() {
try {
rule.runOnUiThread(() -> {
mapView = rule.getActivity().findViewById(R.id.mapView);