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

2.3 KiB
Raw Blame History

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