Space Station Android
An Android app for the Space Station library: browse by genre or artist, play with crossfade, and hand playback to a Chromecast or a GroundControl box.






What it does
- Library tabs for Genres, Artists and Stations, drilling down to tracks. A genre or station starts AutoDJ, an artist or album plays all of it.
- Fuzzy search that forgives case, accents, punctuation and small typos, and a Likes list and global play history shared with the other clients.
- Crossfades between tracks, preloading the next track and its art so there is no gap, and resumes where it left off even after the process is killed.
- An up-next queue you can reorder, a "this genre only" mode, an on-device audio cache with an album Download button, and Last.fm scrobbling.
- Android Auto browse tree and search, lock-screen and notification controls.
- Live Death.FM and SomaFM radio, with a LIVE banner and a station switcher.
- At home it streams straight from the Windows LAN server and falls back to the Worker when that is not reachable.
- Casts to Space Station's own receiver and can hand the AutoDJ walk and Last.fm session to a GroundControl device, with a screen, system media controls and a widget for it.
Under the hood
- Kotlin, Jetpack Compose and Material 3. Playback is Media3 ExoPlayer with a custom crossfade player behind a media session service, OkHttp and Coil.
- The whole catalog is mirrored into a Room database, refreshed at startup and on return to the foreground if the server's version changed. Browsing, search and the Android Auto tree all read from it, so they are instant and work offline.
- A route object chooses the LAN or Worker address per track, and the audio cache and LAN routing sit as data sources under the player.
- Authentication is a fixed header pair, so there is no login screen.
The screenshots come from an emulator running a debug build against a local test copy of the Worker with an invented library and generated cover art. The live radio shot uses a public SomaFM stream, so its artwork and now-playing line are theirs.