Files
Android-247-Radio/chat-summaries/2026-03-10_11-55-now-playing-ui-overhaul.md
2026-03-10 20:17:03 -04:00

45 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Now Playing UI Overhaul — Dominant Color, Typography, Modern Controls
## Task
Address four issues: (1) swap station name / artist-title text hierarchy, (2) fix dominant color extraction not applying, (3) invert back button in portrait mode, (4) make the UI feel cohesive and modern to match the blur aesthetic.
## Changes Made
### `NowPlayingScreen.kt` — full rewrite
**Typography swap**
- Station name → `labelLarge`, uppercase, 3sp letter-spacing, 50% alpha (diminished label)
- Artist/title → `headlineLarge`, bold (hero text)
- "No track info" replaced with `♪` music note when no metadata
- Artist-title separator changed from `-` to `—` (em dash)
**Palette extraction fix**
- Replaced Coil 3 `ImageLoader.execute()` + `toBitmap()` (which was silently failing) with direct `OkHttp` + `BitmapFactory.decodeStream()` for reliable bitmap creation
- Palette swatch fallback chain: dominant → vibrant → muted
- Accent color picks light variants on dark backgrounds, dark variants on light
- Added `animateColorAsState` with 600ms tween for smooth color transitions when artwork/tracks change
- Bitmap properly recycled after palette extraction
**Portrait back button**
- Added gradient scrim (45% black → transparent, 100dp tall) at top of artwork panel
- Back icon uses `Color.White` for visibility over any artwork
**Modern UI refresh**
- Transport controls: hero button (play/pause) is a filled accent circle (80dp) with contrasting icon; secondary buttons (skip, stop) are smaller plain icons
- Settings section wrapped in a translucent `Surface` card with 16dp rounded corners
- Timer section condensed to a single compact line with `·` separators, `bodyMedium` weight `Light`
- Settings labels use `labelLarge`/`labelMedium` for clean hierarchy
- Switch and slider colors fully themed to accent/text palette
- Increased breathing room between sections (2028dp spacers)
- Stop button toned down to 50% alpha (not a bright red error color)
### `RadioApplication.kt`
- Removed unused `ImageLoader` (palette now uses OkHttp directly)
### `gradle/libs.versions.toml` / `app/build.gradle.kts`
- `palette-ktx` dependency added (previous commit, retained)
## Follow-up Items
- Consider adding a gradient seam between artwork panel and metadata panel for smoother visual transition
- May want to add haptic feedback on transport button taps