Expose RENDERMODE_CONTINUOUSLY and RENDERMODE_WHEN_DIRTY (#2801)
This commit is contained in:
@@ -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> {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
import org.maplibre.android.maps.*
|
||||
import org.maplibre.android.maps.MapLibreMap.OnCameraMoveListener
|
||||
import org.maplibre.android.maps.MapLibreMap.OnFpsChangedListener
|
||||
import org.maplibre.android.maps.renderer.MapRenderer
|
||||
import org.maplibre.android.style.layers.Layer
|
||||
import org.maplibre.android.style.layers.Property
|
||||
import org.maplibre.android.style.layers.PropertyFactory
|
||||
@@ -29,6 +30,7 @@ open class DebugModeActivity : AppCompatActivity(), OnMapReadyCallback, OnFpsCha
|
||||
private var actionBarDrawerToggle: ActionBarDrawerToggle? = null
|
||||
private var currentStyleIndex = 0
|
||||
private var isReportFps = true
|
||||
private var isContinuousRendering = false
|
||||
private var fpsView: TextView? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -167,6 +169,13 @@ open class DebugModeActivity : AppCompatActivity(), OnMapReadyCallback, OnFpsCha
|
||||
mapView.setMaximumFps(30)
|
||||
} else if (itemId == R.id.menu_action_limit_to_60_fps) {
|
||||
mapView.setMaximumFps(60)
|
||||
} else if (itemId == R.id.menu_action_toggle_continuous_rendering) {
|
||||
isContinuousRendering = !isContinuousRendering
|
||||
if (isContinuousRendering) {
|
||||
mapView.setRenderingRefreshMode(MapRenderer.RenderingRefreshMode.CONTINUOUS)
|
||||
} else {
|
||||
mapView.setRenderingRefreshMode(MapRenderer.RenderingRefreshMode.WHEN_DIRTY)
|
||||
}
|
||||
}
|
||||
return actionBarDrawerToggle!!.onOptionsItemSelected(item) || super.onOptionsItemSelected(
|
||||
item
|
||||
|
||||
@@ -13,5 +13,9 @@
|
||||
android:id="@+id/menu_action_limit_to_60_fps"
|
||||
android:title="Limit FPS to 60"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/menu_action_toggle_continuous_rendering"
|
||||
android:title="Toggle continuous rendering"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
|
||||
Reference in New Issue
Block a user