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, pauses, or is cancelled.

  • New Features
    • Introduced app.gamenative.service.GameDownloadQueue with register/unregister APIs, per-source resume listeners, and helpers to inspect active downloads.
    • Hooked into SteamService, EpicService, GOGService, and AmazonService to register/unregister downloads and resume paused ones via listeners; listeners are cleaned up on service destroy.
    • Extended app.gamenative.data.DownloadInfo to track auto-paused state, store queue identifiers, provide an auto-resume callback, and unregister on manual pause/cancel to resume the next download.

Written for commit e84768b. 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: 1b9d2eb0-78b7-4551-9dad-7405fbd57c11

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
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 2d28f94 to e84768b Compare July 11, 2026 02:19
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