Skip to content

RSL 3.2 - Added download pause/resume feature with cross-session progress persistence, added setting to show/hide adult (18+) content (off by default)#190

Open
jp64k wants to merge 20 commits intonerdunit:masterfrom
jp64k:master
Open

RSL 3.2 - Added download pause/resume feature with cross-session progress persistence, added setting to show/hide adult (18+) content (off by default)#190
jp64k wants to merge 20 commits intonerdunit:masterfrom
jp64k:master

Conversation

@jp64k
Copy link
Copy Markdown
Contributor

@jp64k jp64k commented Apr 14, 2026

- Added download pause/resume feature with cross-session progress persistence:

Added a pause/resume button to the active download item in the queue panel. Pausing kills the rclone process while keeping partial files on disk; resuming restarts rclone which continues the transfer from where it left off.
Progress bar percentage and part counter (e.g. "3/5") are preserved across both in-session pause/resume and app restarts. Rclone's fresh session stats are mapped onto the remaining range using offset snapshots to avoid feedback loops. Progress state is persisted to settings.json on every poll tick and on app close, and restored on startup before queue items are loaded.

- Updated changelog and bumped version to 3.2
- Added persistent setting to show/hide adult (18+) content (off by default)
- Removed 11 empty _CheckedChanged handler stubs from SettingsForm
- Fixed reinstall freezing UI:

Wrapped long-running ADB/package operations in Task.Run to avoid blocking the caller. The code now performs device/client/package manager setup, backup (pull), uninstall, install (with upload progress callbacks), restore (push) and cleanup inside a background task.

- Implemented true byte-level download resume via local rclone proxy:

  • Added ChunkedDownloader.cs to perform real HTTP Range downloads with retry, concurrency/threads, bandwidth throttle, and accurate speed/ETA.
  • Instead of trying to mimic rclone at the TLS level, the downloader starts rclone serve http on 127.0.0.1 and talks to that local HTTP endpoint. Rclone handles upstream TLS; our code owns byte-range resume and progress.
  • Integrated with existing queue/pause/cancel UI and preserved proxy/bandwidth/thread settings.

- Added visual indicators for downloaded titles (gallery: badge, list: row tint)
- Added "Delete from PC" option to right-click context menu for downloaded titles

Changelog.txt:

RSL 3.2

  • Added download pause/resume feature with cross-session progress persistence
  • Added visual indicators for downloaded titles (gallery: badge, list: row tint)
  • Added "Delete from PC" option to right-click context menu for downloaded titles
  • Added setting to show/hide adult (18+) content (off by default)
  • Fixed UI freezing during reinstall operations

jp64k added 6 commits April 14, 2026 03:22
…stence

Added a pause/resume button to the active download item in the queue panel. Pausing kills the rclone process while keeping partial files on disk; resuming restarts rclone which continues the transfer from where it left off.
Progress bar percentage and part counter (e.g. "3/5") are preserved across both in-session pause/resume and app restarts. Rclone's fresh session stats are mapped onto the remaining range using offset snapshots to avoid feedback loops. Progress state is persisted to settings.json on every poll tick and on app close, and restored on startup before queue items are loaded.
…ault) + Removed 11 empty _CheckedChanged handler stubs from SettingsForm
@jp64k jp64k changed the title Added download pause/resume feature with cross-session progress persistence RSL 3.2 - Added download pause/resume feature with cross-session progress persistence, Added setting to show/hide adult (18+) content (off by default) Apr 14, 2026
@jp64k jp64k changed the title RSL 3.2 - Added download pause/resume feature with cross-session progress persistence, Added setting to show/hide adult (18+) content (off by default) RSL 3.2 - Added download pause/resume feature with cross-session progress persistence, added setting to show/hide adult (18+) content (off by default) Apr 14, 2026
jp64k added 14 commits April 14, 2026 19:46
Wrapped long-running ADB/package operations in Task.Run to avoid blocking the caller. The code now performs device/client/package manager setup, backup (pull), uninstall, install (with upload progress callbacks), restore (push) and cleanup inside a background task
- Added ChunkedDownloader.cs to perform real HTTP Range downloads with retry, concurrency/threads, bandwidth throttle, and accurate speed/ETA.
- Instead of trying to mimic rclone at the TLS level, the downloader starts rclone serve http on 127.0.0.1 and talks to that local HTTP endpoint. Rclone handles upstream TLS; our code owns byte-range resume and progress.
- Integrated with existing queue/pause/cancel UI and preserved proxy/bandwidth/thread settings.
Wrapped the HttpRequestMessage and HttpResponseMessage in using blocks to ensure they are disposed
… and fixed not being able to cancel paused downloads

Overhauled ChunkedDownloader to start rclone with --http-no-head and normalized origin/paths to avoid any upstream HEAD requests. For a 100-part download, this means 0 HEAD requests vs. 100 upfront; 1 listing GET + N file GETs remain. Also reduced code redundancy and complexity.
…fficient and fixed not being able to cancel paused downloads"

This reverts commit adf071a.
…ded titles, modified row tint color, updated changelog
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.

1 participant