Skip to content

feat: Manage game downloads with a centralized queue - #1651

Draft
joshuatam wants to merge 1 commit into
utkarshdalal:masterfrom
joshuatam:feat/game-download-queue
Draft

feat: Manage game downloads with a centralized queue#1651
joshuatam wants to merge 1 commit into
utkarshdalal:masterfrom
joshuatam:feat/game-download-queue

Conversation

@joshuatam

@joshuatam joshuatam commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Description

Introduces a global download management system to ensure only one game download is active across all integrated services (Steam, Epic, GOG, Amazon) at any given time.

This improves resource management and user experience by:

  • Automatically pausing other active downloads when a new download is initiated.
  • Automatically resuming the next available paused download once the current active download completes or is paused / cancelled.

Recording

N/A

Type of Change

  • Bug fix
  • Performance / stability improvement
  • Compatibility improvements
  • Other (requires prior approval)

Checklist

  • If I have access to #code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed.
  • This change aligns with the current project scope (core functionality, stability, or performance). If not, it has been explicitly approved beforehand.
  • I have attached a recording of the change.
  • I have read and agree to the contribution guidelines in CONTRIBUTING.md.

Summary by cubic

Add a global download queue so only one game download runs at a time across Steam, Epic, GOG, and Amazon. It auto-pauses other active downloads and resumes the next paused one when the current download completes, is paused, or is cancelled.

  • New Features
    • Added app.gamenative.service.GameDownloadQueue with register/unregister APIs, per-source resume listeners, and helpers (active count, lookup); registering a download auto-pauses others, and unregistering resumes the next auto-paused one.
    • Integrated with SteamService, EpicService, GOGService, and AmazonService: downloads register on start and unregister on completion/cancel; services add/remove resume listeners on create/destroy to resume paused downloads. Updated app.gamenative.data.DownloadInfo to track auto-paused state, store queue IDs, support an auto-resume callback, and self-unregister on manual pause/cancel to advance the queue.

Written for commit 293311b. Summary will update on new commits.

Review in cubic

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 67081b29-de20-46cf-9921-7d1d887f6bb3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@joshuatam
joshuatam force-pushed the feat/game-download-queue branch from aad6377 to 2d28f94 Compare July 2, 2026 04:36
@joshuatam
joshuatam force-pushed the feat/game-download-queue branch from 2d28f94 to e84768b Compare July 11, 2026 02:19
@joshuatam
joshuatam force-pushed the feat/game-download-queue branch 3 times, most recently from 421ccac to 22c7341 Compare July 21, 2026 16:37
Introduces a global download management system to ensure only one game download is active across all integrated services (Steam, Epic, GOG, Amazon) at any given time.

This improves resource management and user experience by:
- Automatically pausing other active downloads when a new download is initiated.
- Automatically resuming the next available paused download once the current active download completes or is paused / cancelled.
@joshuatam
joshuatam force-pushed the feat/game-download-queue branch from 22c7341 to 293311b Compare July 22, 2026 23:52
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