Skip to content

fix: refresh Android course structure when requested - #498

Closed
edschema wants to merge 1 commit into
openedx:developfrom
Schema-Education:edschema/android-course-structure-freshness
Closed

fix: refresh Android course structure when requested#498
edschema wants to merge 1 commit into
openedx:developfrom
Schema-Education:edschema/android-course-structure-freshness

Conversation

@edschema

Copy link
Copy Markdown
Contributor

Description

Fixes Android course-structure refresh requests that could return the first cached Flow emission instead of requesting an updated structure.

When getCourseStructure(courseId, isNeedRefresh = true) runs online, it now uses a dedicated request path with Cache-Control: no-cache. Offline refreshes remain cache-only, and ordinary non-refresh callers keep the existing cache-first behavior.

Out of Scope

This is the Android prerequisite for later course-routing work. It does not add Inbox or routing behavior, redesign sibling status, Dates, progress, or enrollment caches, change production callers, or modify server contracts, Room schema, or migrations.

Change Log

  • Add a separate coalesced fresh course-structure request path.
  • Preserve cache-first Flow behavior for non-refresh and offline requests.
  • Prevent delayed requests from an older course session from replacing the newer session final state.
  • Add focused coverage for headers, request coalescing, persistence ordering, session reset, Room races, and refresh markers.

Notes

Fresh and cache-first requests intentionally use separate coalescers so a refresh cannot join a request using the cache-first header. The public CourseInteractor interface and CourseApi contract are unchanged.

Tests Done

  • Focused CoalescingCacheTest, CourseRepositoryFreshTest, and CourseInteractorFreshTest
  • :course:testDevelopDebugUnitTest
  • :app:assembleDevelopDebug
  • detektAll
  • Pixel checks for online refresh, offline cached use, and a controlled changed course-structure response
  • Android lint ran; it reports only established baseline findings outside this change

AI Assistance

AI tools were used to aid in diagnosis, planning, implementation, testing, and review. All work was checked and reviewed.

@openedx-webhooks openedx-webhooks added the open-source-contribution PR author is not from Axim or 2U label Aug 24, 2026
@openedx-webhooks

Copy link
Copy Markdown

Thanks for the pull request, @edschema!

This repository is currently maintained by @openedx/openedx-mobile-maintainers.

Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.

🔘 Get product approval

If you haven't already, check this list to see if your contribution needs to go through the product review process.

  • If it does, you'll need to submit a product proposal for your contribution, and have it reviewed by the Product Working Group.
    • This process (including the steps you'll need to take) is documented here.
  • If it doesn't, simply proceed with the next step.
🔘 Provide context

To help your reviewers and other members of the community understand the purpose and larger context of your changes, feel free to add as much of the following information to the PR description as you can:

  • Dependencies

    This PR must be merged before / after / at the same time as ...

  • Blockers

    This PR is waiting for OEP-1234 to be accepted.

  • Timeline information

    This PR must be merged by XX date because ...

  • Partner information

    This is for a course on edx.org.

  • Supporting documentation
  • Relevant Open edX discussion forum threads
🔘 Get a green build

If one or more checks are failing, continue working on your changes until this is no longer the case and your build turns green.

🔘 Update the status of your PR

Your PR is currently marked as a draft. After completing the steps above, update its status by clicking "Ready for Review", or removing "WIP" from the title, as appropriate.


Where can I find more information?

If you'd like to get more details on all aspects of the review process for open source pull requests (OSPRs), check out the following resources:

When can I expect my changes to be merged?

Our goal is to get community contributions seen and reviewed as efficiently as possible.

However, the amount of time that it takes to review and merge a PR can vary significantly based on factors such as:

  • The size and impact of the changes that it introduces
  • The need for product review
  • Maintenance status of the parent repository

💡 As a result it may take up to several weeks or months to complete a review and merge your PR.

@github-project-automation github-project-automation Bot moved this to Needs Triage in Contributions Aug 24, 2026
@edschema edschema closed this Aug 24, 2026
@github-project-automation github-project-automation Bot moved this from Needs Triage to Done in Contributions Aug 24, 2026
@edschema

Copy link
Copy Markdown
Contributor Author

Closing to make some changes. Will open new pr afterwards

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

Labels

open-source-contribution PR author is not from Axim or 2U

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants