Stash v0.3.6
feat(nowplaying): flag wrong-match track + surface in Failed Matches
Closes #7 — "Need an ability to correct a track."
When a sync-matched track downloads the wrong song (YouTube's match
picked a cover, a remix, or an unrelated video), users couldn't
correct it. They could only dismiss and re-sync the whole playlist,
which rarely surfaced a better candidate for the same metadata.
Three pieces:
-
NowPlayingScreen flag button. A new flag icon in the top bar
marks the currently-playing track as the wrong song. Placed there
because that's the moment of truth — the user's ears say "this
isn't what I asked for," and the fix should live where the error
is noticed. Toast confirms + points to Sync → Failed Matches. -
FailedMatchesScreen "You flagged these" section. The existing
screen already knows how to re-search YouTube, preview candidates,
and approve/dismiss. Flagged tracks now appear in their own
section with the same affordances but a different approve path:
instead of downloading a fresh file for a never-matched track,
the approve-swap path deletes the old audio and downloads the
picked candidate in place, then swaps youtube_id + file_path +
clears the flag so the track disappears from the list. -
Schema + plumbing. match_flagged column on tracks (migration
v8 -> v9), DAO queries to toggle and read flagged rows,
MusicRepository methods, and VM-side combine that merges unmatched- flagged into one reactive UI state.
Reversible throughout: unflag (not dismiss) clears the flag without
permanently skipping the track, so a mistakenly-flagged match can
be restored with one tap.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com
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.3.5...v0.3.6