From 4b453a109b6c861996b9970b03f6582a4c083b0e Mon Sep 17 00:00:00 2001 From: OpenAI Codex Date: Fri, 4 Sep 2026 19:09:44 +0800 Subject: [PATCH] fix: expose STEP-053 host field validation path --- ...ical_Field与Host_MapLibre_Submission_Contract_v1.md | 12 ++++++++++++ .../particle/ParticleCoreLayerValidationActivity.kt | 11 +++++++---- 粒子开发记录.md | 6 ++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/docs/50_Step记录/STEP-053_Windy-style_Canonical_Field与Host_MapLibre_Submission_Contract_v1.md b/docs/50_Step记录/STEP-053_Windy-style_Canonical_Field与Host_MapLibre_Submission_Contract_v1.md index 26a4d081f..1eacccf36 100644 --- a/docs/50_Step记录/STEP-053_Windy-style_Canonical_Field与Host_MapLibre_Submission_Contract_v1.md +++ b/docs/50_Step记录/STEP-053_Windy-style_Canonical_Field与Host_MapLibre_Submission_Contract_v1.md @@ -107,3 +107,15 @@ MORE 菜单新增: 未实现 Weather Service、HTTP/provider、React Native binding、Manifest/Catalog、下载/重试/cache、GRIB/NetCDF/vendor decoder、WeatherColorLayer、第二套状态机。Validation UI MIX/WAITING/INVALID observability 继续为 NON-BLOCKING;Rotation/Viewport 技术债未处理。 当前状态:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。 + +## Android Validation Host 接线补充 + +Android Validation Host 原有 STEP-053 控件和 JNI/API 已存在,但 MORE 菜单将入口显示为 `HOST FIELD SUBMIT`,未紧邻 `PRODUCTION FEED`,且 Kotlin 在读取本地 canonical dataset 后没有单独输出 dataset-load 事件。该可观察性不足会使手工验收难以一眼区分 STEP-051 的 `PRODUCTION FEED` 与 STEP-053 Host submission。 + +- MORE 菜单现在按 `PRODUCTION FEED → HOST FIELD → INVALID PROD → HOST DUPLICATE → HOST INVALID` 显示相关入口;旧 `PRODUCTION FEED` 和 `INVALID PROD` 的语义未改。 +- `HOST FIELD` 创建 `{"type":"raster-array","host-field-submission":true}` source,并在 style ready 后读取既有 T0~T3 metadata/binary resources,通过 `MapLibreMap.submitRasterArraySourceHostField()` 逐片提交。 +- Kotlin 对每个时间片输出低频 `HOST_FIELD_DATASET_LOAD`,带 metadata resource、payload resource 和 payload bytes;Native 既有 `HOST_FIELD_SNAPSHOT_READY`/`HOST_FIELD_INITIAL_WINDOW_READY`/`HOST_FIELD_NEXT_SUBMIT` 继续输出 fieldId、generation、validTime 和结果。 +- `HOST DUPLICATE` 重新提交 Host dataset 的最后一个 Field,复用同一 Host submit API,预期 `DUPLICATE_NOOP`;`HOST INVALID` 在已存在有效 Host window 时提交 `field-invalid.json`,经同一 API 结构化拒绝并保持 last valid field。两者均不通过 style reload 冒充 Host submission。 +- 未新增 JNI forwarding,复用既有 `MapLibreMap → NativeMapView → RasterArraySource::submitHostField()` 薄桥。未修改 Adapter、Timeline、Runtime Field Window、Renderer 或任何 provider/network 逻辑。 + +Android Gradle、APK、ADB 和设备验收仍由用户手工执行;状态继续为:`IMPLEMENTED / WAITING_ANDROID_VALIDATION`。 diff --git a/platform/android/MapLibreAndroidTestApp/src/main/java/org/maplibre/android/testapp/activity/particle/ParticleCoreLayerValidationActivity.kt b/platform/android/MapLibreAndroidTestApp/src/main/java/org/maplibre/android/testapp/activity/particle/ParticleCoreLayerValidationActivity.kt index c4152cb6e..a3c939b08 100644 --- a/platform/android/MapLibreAndroidTestApp/src/main/java/org/maplibre/android/testapp/activity/particle/ParticleCoreLayerValidationActivity.kt +++ b/platform/android/MapLibreAndroidTestApp/src/main/java/org/maplibre/android/testapp/activity/particle/ParticleCoreLayerValidationActivity.kt @@ -189,7 +189,7 @@ class ParticleCoreLayerValidationActivity : AppCompatActivity() { findViewById