docs(android): close P0 safe-area + card-back items in playability TODO

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
funman300
2026-05-10 20:41:28 -07:00
parent fcc7337c97
commit 304cb050a7
+17 -10
View File
@@ -29,19 +29,26 @@ rewrites required.
## P0 — Blocking playability
- [ ] **Safe-area insets (top + bottom).** Query `WindowInsets` via JNI
(or `winit::window::Window::safe_area()` if exposed in our pinned
winit) and push HUD down by status-bar height + bottom UI up by
nav-bar height. Likely lives in `solitaire_engine` layout system,
gated `#[cfg(target_os = "android")]`.
- [x] **Safe-area insets (top + bottom).** *Closed 2026-05-10 by
`b9aa262`.* `SafeAreaInsets` resource + `SafeAreaInsetsPlugin`
query `WindowInsets.getInsets(systemBars())` via JNI on Android;
HUD anchors carry `SafeAreaAnchoredTop { base_top }` and the
change-detection fix-up system re-applies `base_top + insets.top`
whenever the resource updates. Bottom inset is captured but not
yet consumed (waits for bottom-anchored UI).
- [ ] **Mobile HUD layout.** Wrap to two rows, drop redundant text, or
move secondary actions (Help, Modes) into a hamburger / drawer.
Current single-row layout requires desktop width.
- [ ] **Card-back asset not rendering.** Face-down cards show as red
rectangles. Investigate: is `CardImageSet::back` resolving on
Android? Is the texture being uploaded? Is the sampler wrong? Check
AssetServer load path under Android — does it find the embedded /
packaged texture?
- [x] **Card-back asset not rendering.** *Closed 2026-05-10 by
`fcc7337`.* `AssetPlugin::file_path = "../assets"` was set
unconditionally to fix the desktop `cargo run -p solitaire_app`
CWD relativity, but on Android cargo-apk packages the same
directory into the APK at `assets/` and Bevy's
AndroidAssetReader is already rooted there — prepending `../`
walked the reader out of the APK assets root and every load
failed silently. The face-down branch then fell through to the
`card_back_colour(0)` solid-red brick fallback. Gated the
override behind `#[cfg(not(target_os = "android"))]`.
- [ ] **Viewport overflow.** Leftmost foundation and rightmost tableau
pile clipped. `LayoutResource` must recompute on Android using
actual surface size (post-inset) instead of any desktop default