docs(android): M12 phase 4 as landed #116
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/android-theming-nav-phase-4"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
§5.6 rewritten with the decisions the build had to make, plus a "Phase 4 as landed" section and the ✅ in §8. Targets
edge, like every M12 phase.Three questions the drafted §5.6 left open
All three were put to the org lead before any code, and all three are now written into the section with the reasoning that settled them:
1. The top bar falls back to the text. §5.6 said the logo replaces the uppercased name and, separately, that "an asset that fails to load is the same as no asset" — which taken literally would leave the title blank on a 404. The section now names the top bar as the one place where "empty" is not "nothing": everywhere else something else on the surface already says the instance's name, but there the logo is the title, so "the same as no asset" resolves to the text. It also records that there is deliberately no fallback while the load is in flight, because drawing the text first would flash text → logo on every navigation for one frame.
2. The hero is a fixed 180dp band, cropped. The website's hero is a CSS background driven by
hero_layout, which the app does not port, so the app needs a rule of its own — and the website's default hero is a square emblem, so an uploaded square is a case to expect rather than an edge one. At the app's usual intrinsic-aspect idiom that square is a ~360dp block that pushes the status card off the first screenful.3. It sits inside Home's 20dp padding with themed corners, clipping to
shapes.mediumso it follows--radius-cardlike every other surface, rather than going full-bleed.Also new in §5.6
maxWidth: height * 6)."Phase 4 as landed"
Records how the empty-slot rule is enforced (every size modifier hangs off the image, so an uncomposed image composes no padding either — which is what keeps a
brand?.hero != nullcheck out ofHomeScreen), that the failure flag is keyed on the URL so a fixed upload recovers on the next refresh, why the blank check runs on both sides of the resolver, and that the phase costs the APK nothing.And the limit worth being plain about: the drawing cannot be tested here at all. The app carries no Robolectric and no
androidTestsource set, so a composable body cannot run in a JVM test; only the decision of whether to draw is pure. That makes phase 4 the one with the most riding on AC-5's on-device walk.Android-app: RunicGateway/Android-app#37.