Skip to content

Add download progress to downloading songs - #1725

Open
dompetriella wants to merge 5 commits into
finamp-app:redesignfrom
dompetriella:redesign-add-download-progress-bars
Open

Add download progress to downloading songs#1725
dompetriella wants to merge 5 commits into
finamp-app:redesignfrom
dompetriella:redesign-add-download-progress-bars

Conversation

@dompetriella

@dompetriella dompetriella commented Aug 10, 2026

Copy link
Copy Markdown

Changes

This PR adds individual progress bars and network download speed to songs downloading in the downloads menu.

Added in this PR

  • Added Updates.statusAndProgress to the DownloadTask to expose TaskProgressUpdate events (progress, network speed, etc)
  • Added stream that adds download progress updates to provider for UI consumption
  • Moved the album filter into its own function to reduce mutation on the items list and clean up a bit
  • Progress bar and network speed added in request of Downloads progress #1464
Screenshot_1786325630

Todo before merging

  • Translations
    (Text add is text that comes from the background_downloader's functions to convert bit size into MBs / KBs. Can try to get a translation layer working if desired)

Related Issues

@dompetriella

Copy link
Copy Markdown
Author

@massimoGG does this resolve your feature request?

@Chaphasilor

Copy link
Copy Markdown
Member

@dompetriella thanks for the PR!
Have you considered circular progress indicators here? Those might be more space-efficient.
Also, how do you feel about adding a "global" progress bar and download speed, that aggregates all individual tasks?

One more thing that needs discussion: we already have an "Active Downloads" screen (the arrows icon in the top right corner), so I guess we should either move the progress bars there, or use the horizontal progress bar there and circular ones on the main downloads screen. Getting rid of the "Active Downloads" screen could also work, but would probably require a bit more work to avoid regressions.

@dompetriella

Copy link
Copy Markdown
Author

@dompetriella thanks for the PR! Have you considered circular progress indicators here? Those might be more space-efficient. Also, how do you feel about adding a "global" progress bar and download speed, that aggregates all individual tasks?

One more thing that needs discussion: we already have an "Active Downloads" screen (the arrows icon in the top right corner), so I guess we should either move the progress bars there, or use the horizontal progress bar there and circular ones on the main downloads screen. Getting rid of the "Active Downloads" screen could also work, but would probably require a bit more work to avoid regressions.

You're welcome @Chaphasilor!

How large would "global" be? Are you saying for individual albums or for all the items being downloaded (Artists, Playlists, etc)? In other words, would it incorporate everything being downloaded and its download rate, or just per album/playlist/artist?

Active downloads is a much better place for this. Embarrassingly, I had no idea that screen existed. There's a couple other fields that TaskProgressUpdate exposes (such as expected download size and remaining time) that might be nice to include per item and wouldn't require a layout shift / clutter UI like the LinearProgressBar is doing now for the expanded download screen.

I think the overall move would be to add this PR's current UI (LinearProgressBar, download speed and maybe a few others) to the Active Downloads screen. Maybe the delete IconButton on the ExpansionTile could be replaced with the circular progress indicator while downloading since delete probably shouldn't function while downloading is happening? With that change in mind, where would you like the "global" download to be? Does it make more sense at the top of the Downloads page or the Active Downloads? I can do a basic figma mockup if this isn't making sense haha

@massimoGG

Copy link
Copy Markdown

@dompetriella this is perfect! Thanks for your time

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants