Repository navigation
feat(downloads): remove downloads by swipe or multi-select in the Downloaded list - #2709
Merged
Merged
Conversation
This was referenced Oct 19, 2026
Merged
…move its download, add Remove download to that list's multi-select sheet in place of Download, keep search results in step with removals and spring a cancelled swipe back
…n thread, since Desktop scans the downloads folder once per song
…drag, which happens when the row starts or stops playing or selection starts, instead of leaving it pushed aside
…anguages, where offset mirrors but drag amounts stay physical, so a swipe toward the end reveals Add to queue and one toward the start reveals delete, as in left-to-right
Downloaded becomes Remove download, and Downloading becomes Cancel download. The icon already shows the state, and a label that only repeated it hid the one place a single download could be removed (maxrave-dev#2176).
cuong-tran
force-pushed
the
delete-download
branch
from
October 30, 2026 17:21
26644de to
f8d8715
Compare
…d in the sheet's default colour
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
The only way to remove one downloaded song was the song menu's "Downloaded" toggle, which few people find (#2176), and there was no way to remove several at once. This adds both to Library › Downloaded:
Removed songs leave the list at once, because the Downloaded list is read once rather than observed, and they leave the search results too while searching. There is no confirmation, matching the song menu's toggle and Remove from playlist, and one toast covers a whole batch. Removal runs off the main thread, since on Desktop each one scans the downloads folder.
Two fixes to the shared song row (
SongFullWidthItems) came along: a swipe that is cancelled, or interrupted because the row starts playing or selection starts, now springs back instead of leaving the row pushed aside; and in right-to-left languages the row now follows the finger (offset {}mirrors there while drag amounts stay physical).Needs maxrave-dev/core#43. Without it, a download removed on Android could be written back as "downloading": Media3 reports STATE_REMOVING first, which
DownloadUtilsread as downloading, and the removed song never left its download map. This PR does not bumpcore; bump it once #43 is merged.Notes for review:
remove_downloadandcancel_download, English only; translations go through Crowdin. Until then, other languages show these two in English where the menu used to show a translated "Downloaded" or "Downloading".Linked issue
Closes #2176
Checklist
Tested on both. Android: debug build on an emulator, with core#43 included, removing songs by swipe and by multi-select; afterwards the removed songs had no files left in the download cache, no Media3 download record, and downloadState 0, with none stuck at downloading. Desktop: the macOS build.
Screenshots