Own Android platform services and narrow legacy fallback

This commit is contained in:
2026-06-17 14:53:49 +02:00
parent 74abddd81e
commit 1e9235cb6a
11 changed files with 417 additions and 109 deletions

View File

@@ -51,8 +51,9 @@ Completed, blocked, and superseded task history moved to
`src/platform_apple/apple_platform_state.cpp` and
`src/platform_apple/apple_platform_services.*`, and the live Apple
`PlatformServices` surface now binds directly from those Apple-owned files,
but the broader non-Windows fallback adapter still exists for
Android/Linux/Web
and Android now also binds directly from
`src/platform_android/android_platform_services.*`, but the broader
non-Windows fallback adapter still exists for Linux/Web
- `platform_legacy` is still part of the live app shell
- The app runtime boundary is not finished:
- render/UI queues are static `App` state
@@ -80,6 +81,20 @@ Completed, blocked, and superseded task history moved to
the queue is now ordered by code movement instead.
Current slice:
- `src/platform_android/android_platform_services.*` now owns the concrete
Android `PlatformServices` implementation and `create_platform_services()`
instead of leaving the live Android execution surface in
`platform_legacy`.
- `android/src/cpp/main.cpp` now binds that owned Android `PlatformServices`
instance into `App` directly at the Android entrypoint.
- The touched Android clipboard, keyboard visibility, JNI thread
attach/detach, async render-context, and file-picker execution now route
through `src/platform_android/android_platform_services.*` instead of the
cross-platform fallback adapter.
- `src/platform_legacy/legacy_platform_services.*` no longer carries the
Android bridge/configuration surface or the touched Android method branches,
so the retained fallback adapter is narrower again and now focused on the
Linux/Web path plus generic fallback policy.
- `src/platform_apple/apple_platform_services.*` now owns the concrete Apple
`PlatformServices` implementation plus the `create_apple_platform_services()`
factory instead of leaving the live Apple execution surface in
@@ -96,15 +111,6 @@ Current slice:
document-service provider/configuration surface or the touched Apple method
branches, so the retained fallback adapter is narrower and now focused on the
Android/Linux/Web path.
- `src/platform_legacy/legacy_platform_services.*` now takes an explicit
Android bridge through `create_platform_services(...)` instead of declaring
Android JNI/EGL/clipboard/file-picker hooks directly inside the legacy
adapter.
- `android/src/cpp/main.cpp` now seeds that Android-owned bridge into its
owned legacy `PlatformServices` instance.
- The touched Android clipboard, keyboard visibility, JNI thread attach/detach,
async render-context, and file-picker ownership now sit at the Android
entrypoint instead of the cross-platform fallback adapter body.
- `src/platform_legacy/legacy_platform_services.*` now takes an explicit
`WebPlatformServices*` dependency through `create_platform_services(...)`
instead of routing WebGL publish/flush/default-canvas/save-prepared-file