test: add runtime field duplicate noop control
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled

This commit is contained in:
OpenAI Codex
2026-09-03 19:02:21 +08:00
parent 92953fe46d
commit 4e31163516
14 changed files with 123 additions and 0 deletions

View File

@@ -1164,6 +1164,23 @@ jni::jboolean NativeMapView::advanceRasterArraySourceFieldWindow(JNIEnv& env, co
return success;
}
jni::jboolean NativeMapView::repeatRasterArraySourceFieldWindow(JNIEnv& env, const jni::String& sourceId) {
const auto id = jni::Make<std::string>(env, sourceId);
auto* source = map->getStyle().getSource(id);
auto* rasterArraySource = dynamic_cast<mbgl::style::RasterArraySource*>(source);
if (!rasterArraySource) {
mbgl::Log::Error(mbgl::Event::JNI,
"ParticleField: event=FIELD_WINDOW_UPDATE_REJECTED reason=SOURCE_NOT_FOUND sourceId=" + id);
return false;
}
const auto result = rasterArraySource->repeatRuntimeFieldWindow();
const bool success = result == mbgl::style::RasterArrayRuntimeFieldUpdateResult::Noop;
mbgl::Log::Info(mbgl::Event::JNI,
"ParticleField: event=FIELD_WINDOW_UPDATE_DUPLICATE_BRIDGE sourceId=" + id +
" result=" + (success ? "NOOP" : "REJECTED"));
return success;
}
void NativeMapView::addLayer(JNIEnv& env, jlong nativeLayerPtr, const jni::String& before) {
assert(nativeLayerPtr != 0);
@@ -1549,6 +1566,7 @@ void NativeMapView::registerNative(jni::JNIEnv& env) {
METHOD(&NativeMapView::getLayer, "nativeGetLayer"),
METHOD(&NativeMapView::setStyleLayerFloatProperty, "nativeSetStyleLayerFloatProperty"),
METHOD(&NativeMapView::advanceRasterArraySourceFieldWindow, "nativeAdvanceRasterArraySourceFieldWindow"),
METHOD(&NativeMapView::repeatRasterArraySourceFieldWindow, "nativeRepeatRasterArraySourceFieldWindow"),
METHOD(&NativeMapView::addLayer, "nativeAddLayer"),
METHOD(&NativeMapView::addLayerAbove, "nativeAddLayerAbove"),
METHOD(&NativeMapView::addLayerAt, "nativeAddLayerAt"),

View File

@@ -283,6 +283,7 @@ public:
jni::Local<jni::Object<Layer>> getLayer(JNIEnv&, const jni::String&);
jni::jboolean setStyleLayerFloatProperty(JNIEnv&, const jni::String&, const jni::String&, jni::jfloat);
jni::jboolean advanceRasterArraySourceFieldWindow(JNIEnv&, const jni::String&);
jni::jboolean repeatRasterArraySourceFieldWindow(JNIEnv&, const jni::String&);
void addLayer(JNIEnv&, jlong, const jni::String&);

View File

@@ -296,6 +296,11 @@ public final class MapLibreMap {
return nativeMapView.advanceRasterArraySourceFieldWindow(sourceId);
}
/** Resubmits the Source-owned current T1 to validate the Runtime Field NOOP path. */
public boolean repeatRasterArraySourceFieldWindow(String sourceId) {
return nativeMapView.repeatRasterArraySourceFieldWindow(sourceId);
}
// Style
/**

View File

@@ -143,6 +143,8 @@ interface NativeMap {
boolean advanceRasterArraySourceFieldWindow(String sourceId);
boolean repeatRasterArraySourceFieldWindow(String sourceId);
boolean removeLayer(@NonNull String layerId);
boolean removeLayer(@NonNull Layer layer);

View File

@@ -962,6 +962,12 @@ final class NativeMapView implements NativeMap {
&& nativeAdvanceRasterArraySourceFieldWindow(sourceId);
}
@Override
public boolean repeatRasterArraySourceFieldWindow(String sourceId) {
return !checkState("repeatRasterArraySourceFieldWindow")
&& nativeRepeatRasterArraySourceFieldWindow(sourceId);
}
@Override
public void addLayer(@NonNull Layer layer) {
if (checkState("addLayer")) {
@@ -1699,6 +1705,9 @@ final class NativeMapView implements NativeMap {
@Keep
private native boolean nativeAdvanceRasterArraySourceFieldWindow(String sourceId);
@Keep
private native boolean nativeRepeatRasterArraySourceFieldWindow(String sourceId);
@Keep
private native void nativeAddLayer(long layerPtr, String before) throws CannotAddLayerException;