feat: remember scroll + search position on Back (web + android)

Going into an album/artist and back now restores the scroll position and
keeps the typed query, instead of resetting to the top.

- Web: navigation.js snapshots each history entry's #main-content scroll and
  any open local (header) search, restoring them on Back/Forward; a genuine
  new navigation still starts at the top.
- Android: the Alben/Künstler lists (LibraryViewModel) and the global/local
  search-results lists (ExploreViewModel/SearchViewModel) hoist their
  LazyListState/LazyGridState, so scroll survives a drill-in/back for the
  tab's lifetime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 4.8 committed 2026-09-02 00:06:46 +02:00
1 parent 3ceba8a365
commit 845f125d76
7 files changed
+64 -5

No files matched your search

+9
View File
@@ -89,6 +89,15 @@ like Android), concert events become **reliable across web/Android**, several An
- **30s preview in the importer (Android)** — each resolved track now has a ▶/⏹ button that plays its
Deezer/Spotify preview clip through the same app-level preview bar as Explore (library playback
pauses; the row highlights while playing). Parity with the web importer.
- **Scroll & search position remembered on Back (Web + Android)** — going into an album/artist and
back now returns you to the same scroll spot with your typed query still there, instead of jumping
to the top. Web: each history entry's scroll (and the open local/header search) is snapshotted and
restored on Back/Forward; a genuine new navigation still starts at the top. Android: the Alben /
Künstler lists and the global/local search-results scroll are hoisted into their ViewModels, so
they survive a drill-in/back for as long as you're in that tab.
- **Partial album — Play / Shuffle + track menu (Android)** — an incomplete album's downloaded
tracks now have **Abspielen** and **Zufall** buttons and a per-row 3-dot menu, so you can still
play/shuffle what you have while the rest downloads.
- **Swipe between tabs (Android)** — a left/right swipe now switches tabs in **Now Playing**
(Player ↔ Lyrics ↔ Queue) and in the **Bibliothek** (Playlists ↔ Alben ↔ Künstler ↔ Offline),
two-way synced with the tab bar, matching the existing Erkunden swipe. On Now Playing the cover's