No description
- Library tab opens on a list of categories, each opening its own view. - Artists: A–Z under the server's letter headings, with artist photos (initial on a purple circle as fallback). Artist page: photo, Play all, albums in a horizontal row (covers fly to the album page), and every song on their albums. - Albums: the grid, now with a Sort menu (Title, Artist, Year newest first, Recently added). Also reused for a genre's albums. - Songs: every song A–Z, fetched 100 at a time wherever you scroll, with same-size placeholders and an A–Z fast-scroll bar (letter bubble, haptic ticks). Letter jumps binary-search single positions instead of downloading the whole list, remembering what they've seen. Tapping a song queues it plus the next 99. - Playlists: Navidrome playlists, each with cover, length, Play and its songs in playlist order. Genres: genres with album/song counts, each opening its album grid. - Data: new OpenSubsonic calls (getArtists, getArtist, getPlaylists, getPlaylist, getGenres, more getAlbumList2 options). The title-sorted song list uses Navidrome's own REST API (OpenSubsonic can't sort songs), kept in its own client with JWT login and automatic re-login. - Shared UI pieces: large title with back button, song rows, album cards, load/retry handling, cover-URL and playback hooks for screens. - Tests for the letter index, new API parsing and the Navidrome login flow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .idea | ||
| app | ||
| gradle | ||
| .gitattributes | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts | ||