Stash v0.9.77
Stash v0.9.77 turns the lights off and the discovery on. A true pure-black AMOLED theme, an analog fast-scroll for long lists, and a ground-up overhaul of Daily Discover so it finally earns the "daily": it refreshes visibly every time, hunts new music from what you played yesterday, and serves tracks you haven't heard first. Plus a wave of community fixes — play counts, non-Latin filenames, Liked search, lyrics sidecars. Details below.
Appearance
- Pure black (AMOLED). Settings → Appearance → Dark theme has a new switch: every background and surface goes to true #000000 so OLED pixels switch off entirely — across the whole app and Now Playing, where the ambient animation gives way to a dead-black canvas. It composes with Light/Dark/Follow system, so system-dark nights go pure black automatically. (@ParaliyzedEvo)
- A fast-scroll fader. Long lists — Library songs, Liked, playlists/artists/albums grids, playlist details, the Qobuz browse — grow a mixer-style fader cap on the right edge while you scroll. Grab it and scrub: pixel-smooth, straight to anywhere in an 800-track library. Styled in the app's own chrome and carefully carved out of Android's back-gesture zone so it's always grabbable. (@ParaliyzedEvo)
Daily Discover, actually daily
- Refresh refreshes. Long-press the hero → Refresh now visibly rearranges the mix every single tap — new cover art, new top of the list. Under the hood the mix rotates through your whole accepted-discovery backlog instead of pinning the same newest tracks forever.
- It chases yesterday's listening. The seeds that drive discovery now lead with your last 48 hours of plays, blended with your longer-term taste — so each day's hunt follows what you're actually into this week, not last month.
- Fresh finds arrive daily. The discovery pipeline's completion budget went from 100 per week to 40 per day, and new candidates are processed newest-first — so current-taste discoveries land in the mix within minutes of a refresh instead of queueing for days behind stale ones. Unheard tracks always outrank repeats.
- Torn playlists fixed. Two refreshes racing could leave a mix half-written (a 25-of-39-track playlist with a wrong count). Materialization is now serialized.
Library
- Search works on the Liked tab. Typing in the Library search bar now filters Liked like every other tab — title, artist, and album. (Thanks @Ilham9876 for the precise report.)
- Most Played means something. Completed listens now bump each track's play count and last-played timestamp — recorded atomically, with a one-time backfill from your existing listening history on first launch. The Library's Most Played sort finally has real data. (Thanks @arpitagarwal1301.)
- Storage numbers stay honest. The Library & Storage screen recomputes disk usage every time you open it, not just when the track count changes. (@arpitagarwal1301)
Downloads & Files
- Non-Latin music keeps its name. Cyrillic, Japanese, and other non-Latin titles now produce real filenames instead of being stripped to nothing — with truncation that can't split characters mid-way. (@arpitagarwal1301)
- Tagging failures are honest. If ffmpeg fails to embed metadata, the track now stays in the "needs tagging" set and retries later, instead of being stamped done with no tags. (@arpitagarwal1301)
Now Playing
- Save lyrics sidecar. Downloaded tracks can export their lyrics as an
.lrcfile right next to the audio, so external players pick them up. (@arpitagarwal1301)
Co-authored across this release by @ParaliyzedEvo (AMOLED theme and scrollbar foundations from #215) and @arpitagarwal1301 (five merged fixes). Thank you.
Install
Download the .apk below and open it on your Android device. If you've got a previous Stash release installed, this upgrades in place — your library, sync history, and settings are preserved.
Requires: Android 8.0 (API 26) or newer.
See the README for first-time setup.
Full Changelog: v0.9.76...v0.9.77