Splits the converter screen into a fixed header and a body region that behaves differently per state. The empty state centres its label and button on both axes in whatever space is left; the working states keep scrolling, since format pickers and progress can exceed the screen and centring content that overflows would push it out of reach. The primary button now fills the width and stands 56dp tall rather than the Material default of 40dp, so it reads as the main affordance instead of a small control adrift in an otherwise empty screen. Horizontal screen padding drops to 16dp while vertical stays at 24dp, which is what lets a full-width button sit close to both edges. Both dimensions are named constants rather than inline numbers, because the same treatment is applied to the primary action in every other state. No theme changes were needed. Dark mode already tracked the device: the Compose theme reads isSystemInDarkTheme() and the activity theme has a values-night variant. Verified on an API 37 emulator by toggling `cmd uimode night` and capturing both -- mean luminance 245/255 in light against 18/255 in dark, with the button recolouring and status bar icons inverting correctly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
18 lines
622 B
XML
18 lines
622 B
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<project version="4">
|
|
<component name="GradleMigrationSettings" migrationVersion="1" />
|
|
<component name="GradleSettings">
|
|
<option name="linkedExternalProjectsSettings">
|
|
<GradleProjectSettings>
|
|
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
|
<option name="modules">
|
|
<set>
|
|
<option value="$PROJECT_DIR$" />
|
|
<option value="$PROJECT_DIR$/app" />
|
|
</set>
|
|
</option>
|
|
</GradleProjectSettings>
|
|
</option>
|
|
</component>
|
|
</project> |