Files
SoulStream/handoff/rounds/ins-r45-themes-v31.txt
T
KeelrLeek 9f0601027c android: the handoff — the pending rounds, the pipeline, and what is unverified
Everything written this session that has not been through the device: rounds 43
to 48 (each patch adversarially verified, 43's transient-notice expectation
fixed), a partial round 49, the pipeline scripts, the Android Auto design and
the icon comparison mock. Also the two harness changes that were never A/B'd —
adaptive waits, which may only shorten a declared wait and never lengthen it,
and a ship that runs the mock walk and the deploy at the same time. The A/B and
its 255-step baseline are in handoff/tools; main stays at what the phone has
actually walked.
2026-09-14 07:57:41 -05:00

44 lines
2.5 KiB
Plaintext

<?xml version="1.0" encoding="utf-8"?>
<!-- The Android 12+ splash, and a full replacement of Theme.app for API 31+.
The platform draws a splash whether we ask for one or not, and its own is
a white flash. These attributes put the brand ground and the app's icon
there instead. They have to sit on the theme the ACTIVITY resolves, which
is Theme.app (declared on the application, inherited by MainActivity), so
Theme.App.Starting is its PARENT rather than a style nothing references:
androidx.core:core-splashscreen is not a dependency of the app module, so
the platform attributes are the whole mechanism and there is no
postSplashScreenTheme to hand back to. Theme.app already is the
post-splash theme.
ANYTHING ADDED TO THE GENERATED values/themes.xml MUST BE ADDED HERE TOO.
This file replaces Theme.app outright on API 31+; it does not extend it.
Its night twin, values-night-v31/themes.xml, is not optional. The resource
qualifier order puts NIGHT MODE ahead of PLATFORM VERSION, so on a
dark-mode Android 12+ phone the generated values-night/themes.xml beats
this file and a splash written only here is silently ignored.
gen/ is regenerated and gitignored, so this lives under src-tauri/android/
res/ and build.sh and dev.sh lay it over the generated project. -->
<resources>
<style name="Theme.App.Starting" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- the kit's `night`, source/brand-tokens.json. A literal rather than
a colour resource so it cannot collide with a name the
launcher-icon round chooses. -->
<item name="android:windowSplashScreenBackground">#FF05080B</item>
<!-- the app's own icon resource, whatever it is: this follows the
launcher icon rather than naming one of its layers, so it cannot
fail to resolve, and on API 26+ it is the adaptive icon, which is
what the splash slot is shaped for -->
<item name="android:windowSplashScreenAnimatedIcon">@mipmap/ic_launcher</item>
<!-- and the frame between the splash dismissing and the WebView's
first paint, which is otherwise the same white. This is the one
item here that is not strictly "a splash": deleting it leaves the
rest of this file working. -->
<item name="android:windowBackground">#FF05080B</item>
</style>
<style name="Theme.app" parent="Theme.App.Starting" />
</resources>