Files
MapLibreParticleLab/docs/50_Step记录/STEP-060_RNTestHost与WeatherRuntime薄桥接_v2.md
OpenAI Codex c91af16825
Some checks failed
validate-scripts / validate-scripts (push) Has been cancelled
fix: route WeatherColor opacity through typed API
2026-09-08 22:14:33 +08:00

2.4 KiB
Raw Permalink Blame History

STEP-060 RN Test Host 与 WeatherRuntime 薄桥接

状态:IMPLEMENTED / WAITING_ANDROID_VALIDATION

目标与基线

本记录在 v1 基础上追加 STEP-060F 收尾:修正 Android WeatherColor opacity 的 typed 路径,固定 Test Host 的 Metro reverse 兼容与横屏交接;仍属于 STEP-060,不进入 STEP-061 Binary U/V Field Transport。

已完成项

  • STEP-060E Android attach 已人工 PASS;CoreOnly source/layer 真值查询使 WEATHER_OBJECTS_NOT_READY 消失。
  • WeatherRuntime.setWeatherColorOpacity() 不再误走仅适用于 RasterParticleLayer 的 float property setter。
  • 新增 MapLibreMap.setWeatherColorOpacity(String, float),经 NativeMap、NativeMapView、JNI 直达 Core WeatherColorLayer::setOpacity();不存在、类型不符或非 finite 输入均返回 false,未创建 Java Layer peer。
  • RasterParticle 的 float-property whitelist、RasterParticleLayer 类型语义及 Timeline/Playback 均未扩大或修改。
  • 纳入受控 scripts/05-install-and-run.ps1:保留 8091 -> 8091,并在安装前增加 8081 -> 8091。
  • 保持 app.json 的 orientation: landscape;下次 Android prebuild/build 应生成 MainActivity android:screenOrientation="landscape"。
  • 临时 Maven 坐标切换为 org.maplibre.gl:android-sdk-opengl:13.4.1-step060f。

验证边界与当前结果

  • 已作 JNI Java/C++ 声明、实现与 registration 静态一致性检查;WeatherColor opacity 唯一路径直达 WeatherColorLayer::setOpacity()。
  • 已检查双 reverse、版本接线、landscape JSON 与源码 diff。
  • Android AAR、Maven Local、APK、Gradle、ADB/设备与 Jest:本轮未执行,等待用户按人工验收文档验证。

无 Binary Field 时 WAITING_FOR_FIELDS / PAUSE 下的 Timeline 命令仍可返回 TIMELINE_NOT_READY;这是预期 fail-closed 行为。最终 Android hard gate 尚需确认 weather opacity: ACCEPTED 且不再有 STYLE_PROPERTY_SET result=UNSUPPORTED_PROPERTY。

禁止范围确认

未改 RasterParticleLayerFactory / WeatherColorLayerFactory CoreOnly 注册、NavSea、Bridge JS state、Timeline 语义或 STEP-061 内容。

下一步

用户手工构建并发布 13.4.1-step060f OpenGL AAR,核对 Linux/Win11 SHA-256 与两条 dependencyInsight,随后 Android clean prebuild、APK build、双 reverse 安装和设备验收。只有所有 Android hard gate 通过后,STEP-060 才可标记 CLOSED / PASS。