2.9 KiB
Compose previews
Select the debug build variant in Android Studio, then open a preview file under
app/src/debug/java/com/droiddeck/launcher/ and choose Split or Design.
Build the project after syncing Gradle. Previews call the production composables;
there is no separate mock UI to keep in sync.
| File | Coverage |
|---|---|
ui/LauncherPreviews.kt |
Steam home, runtime missing/downloading, populated/empty library, game details, desktop, emulator, Android apps, Store, Updates, alternate theme |
ui/SettingsPreviews.kt |
All four Setup tabs, all six Steam settings tabs, desktop settings, controller/mapping, performance, shared settings widgets |
ui/RuntimePreviews.kt |
Proton installed/empty/downloading, components/loading, GPU drivers and driver downloads |
ui/SessionPreviews.kt |
Every session drawer page, loading/starting/error screens, PC keyboard, HUD, cursor |
ui/DialogPreviews.kt |
Add/edit app, confirmation, custom resolution, ROM folder, environment variables, Windows components, display chooser, wireless ADB, process-limit help |
files/FilePreviews.kt |
File manager grid/list/empty/favorites, file/folder pickers, properties |
@DroidDeckPreviews shows handheld landscape (960×540 dp), compact landscape
(480×360 dp), portrait (400×700 dp), and larger text. The Paper theme has a separate
launcher preview. Dimensions are Android layout units, not physical display pixels.
Edit the real UI components to adjust layouts. Edit PreviewData.kt for sample
screen state and callbacks, and FilePreviews.kt for file metadata. Add a preview
for each new screen or materially different state. Add its entry to
PreviewCases.kt or filePreviewCases so it is covered by the render check.
Preview fixtures and tooling are debug-only. PreviewHost supplies the production
theme, inspection mode, and inert navigation/file-picker owners. Inspection paths
skip automatic runtime, directory, device, and network operations and settle
entrance animations so content is visible immediately. File manager mutation
commands are disabled in inspection mode. Previews are for layout and local UI
interaction; they do not validate installation, pairing, launching, or controller
input latency.
The native game surface, Termux terminal, on-screen gamepad, and second-screen View controls are outside this Compose preview set. Their surrounding Compose menus are covered. These components still need device validation.
Run the preview render smoke checks:
./gradlew app:testDebugUnitTest --tests '*PreviewRenderTest'
The checks use Robolectric native graphics with an ordinary Application, render
the same 68 preview entry points at handheld, compact, and portrait sizes, reject
empty/solid-color output, and write PNGs to
app/build/preview-renders/. This catches composition/render errors without starting
the Linux runtime. Android Studio uses Layoutlib, so the smoke check complements
Studio preview validation rather than replacing it.