Repository navigation
TuneBox 0.9.0 — the polish pass
A polish pass
The app was fast to build; this release is about making it feel finished.
States that no longer feel broken
- Home keeps its shelves while it refreshes (no skeleton flash when you like a song) and shows a calm retry card when YouTube can't be reached.
- Search shows placeholder rows while loading, keeps the clear button reachable, remembers your recent searches (with per-item remove and Clear) and offers a retry.
- Library shows a loading skeleton instead of "Nothing here yet"; the sort row only appears where sorting means something, and your choice is remembered.
Player
- Play/pause morphs, with a loading ring while a song starts (also on the mini-player).
- Seek bar: time bubble while dragging, no snap-back, steady digits.
- Title cross-fades on track change; "Playing from" shows the real source.
- Mini-player: swipe left/right for next/previous, swipe down to dismiss.
- Haptics on play/pause, skip, seek, reorder and long-press (respects the setting and Reduce motion).
Queue and playlists
- Queue: Clear (keeps the playing song), undo on remove and clear, opens on the current song, stable drag handles.
- Playlists: rename, delete with undo, swipe a song out with undo.
Everywhere
- Tooltips and screen-reader labels on controls; song-row menus are 48 dp targets.
- Bottom sheets open above the navigation bar.
- Plurals fixed ("1 song"), text-size clamp fixed.
- ~210 more strings translated (de, es, fr, it, nl, pl, pt); other languages fall back to English for them.
- Wide windows: side navigation rail, centred content, a phone-shaped player, and shortcuts (Ctrl+N/P next/previous,
/or Ctrl+K search, media keys).
Downloads
| Android | android-TuneBox-0.9.0.apk — universal, same signing key as before, installs straight over older versions (the app also offers it by itself) |
| iPhone | iphone-TuneBox-0.9.0.ipa — unsigned; sign with your own Apple ID via AltStore/SideStore or Xcode (attached by CI shortly after) |
| Linux | linux-TuneBox-0.9.0.tar.gz — extract and run ./install.sh (needs libmpv) |