49f941b8b9bc6e26c97a31a8bec39200f09f7b2c
Downloads is no longer a Settings sub-screen - it's now a pinned entry at the top of Library > Playlists (Settings keeps only the Wi-Fi-only and default-quality preference toggles, which govern how downloads behave rather than being downloaded content itself). The Downloads screen it opens is no longer a flat track list. It now splits into two sections, both fully reactive to what's actually on disk: - Playlists: any playlist with at least one downloaded track. Tapping one opens the real PlaylistDetailScreen, not a special-cased view - this is a live filter over existing playlists, not a copy of their data. - Tracks: downloaded tracks that aren't a member of any playlist. A track belonging to a playlist is never listed twice - that playlist already qualifies for the Playlists section by virtue of this same track being downloaded, so once it's shown there this list skips it. New PlaylistDao.observeAllMemberships() (and PlaylistRepository.observeTrackIdsByPlaylist()) exposes the full playlist-to-track-id membership map in one reactive query, so working out which playlists have a downloaded track doesn't require loading every playlist's full track list. DownloadsViewModel combines that with the existing downloaded-tracks and playlists flows to derive both sections - no new database tables, this is a computed view over the same Room state Phase 5 and Phase 6 already maintain. Verified on-device: Settings no longer shows a Downloads row; the Library tab shows the new pinned "Downloads" entry; added a downloaded track to a test playlist and confirmed it moved from the flat Tracks list into a Playlists entry with no duplication; confirmed tapping that entry opens the actual playlist detail screen; deleted the playlist and confirmed the track reactively reverted to the flat Tracks list with no manual refresh. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Description
Deepwave is a navidrome client for android
322 KiB
Languages
Kotlin
100%