Skip to content

fix Keep season context when playing specials displayed inline in a seaon - #1074

Merged
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
KevOutIngs:fix/inline-specials-season-context
Aug 7, 2026
Merged

fix Keep season context when playing specials displayed inline in a seaon#1074
RadicalMuffinMan merged 1 commit into
Moonfin-Client:mainfrom
KevOutIngs:fix/inline-specials-season-context

Conversation

@KevOutIngs

Copy link
Copy Markdown
Contributor

Pull Request

Summary

A special with AirsBefore/AirsAfter metadata is displayed inside a regular
season once the library has DisplaySpecialsWithinSeasons enabled, but the item
still carries Specials as its own SeasonId. Opening such a special from a
season reloaded the detail screen against Specials, and playing it queued the
Specials season rather than the run that was on screen.

This carries the browsed season through navigation and playback so an inlined
special stays in the season that actually lists it.

Related Issues

  • Closes #
  • Fixes #
  • Related to #

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Performance improvement
  • UI/UX update
  • Documentation update
  • Build/CI change
  • Other (describe):

Changes Made

  • Links carry the browsed season as a seasonContext query parameter, so the
    detail screen loads the list the viewer came from and falls back to the item's
    own season when that list does not contain it.
  • Playback queues the season that actually lists the episode rather than the
    special's own SeasonId.
  • A queue's season is resolved from its regular episodes instead of the completed
    item, so the rollover after an inlined special continues into the correct season.
  • A season list mixing specials with regular episodes keeps the server's aired
    order; sorting by season number would drag a special to the front of the run it
    was placed in.
  • Playing an episode from a season screen queues the rest of that season instead
    of stopping after the single item.
  • New lib/util/season_queue_context.dart consolidates season/queue resolution
    that was previously duplicated in playback_module.dart (net −90 lines there).

Platform

  • Android
  • iOS
  • tvOS
  • Web
  • macOS
  • Windows
  • Linux
  • All / Shared code

Testing

Unit tests cover the season/queue resolution logic; the app was built and
launched on macOS to confirm the branch compiles and runs.

  • Tested on emulator / simulator
  • Tested on physical device
  • Manual testing completed
  • Not tested (explain why):

Test Steps

  1. Enable DisplaySpecialsWithinSeasons on a TV library whose series has a
    special with AirsBefore/AirsAfter metadata.
  2. Open the season and confirm the special appears at its aired position (not
    pulled to the front of the season).
  3. Open the special: the episode list shown must remain the browsed season, not
    Specials.
  4. Play the special: playback must continue into the next episode of that season.
  5. Play through to the season's last episode and confirm rollover moves into the
    next season.
  6. Open a special from the Specials season directly and confirm it still behaves
    as part of Specials.

Screenshots (if applicable)

N/A — no visual changes; behaviour only.

Checklist

  • Code builds successfully
  • Code follows project style and conventions
  • No unnecessary commented-out code
  • No new warnings introduced

@KevOutIngs KevOutIngs changed the title fix Keep season context when playing specials displayed inline in a s… fix Keep season context when playing specials displayed inline in a seaon Aug 7, 2026
@RadicalMuffinMan
RadicalMuffinMan merged commit 491f2cb into Moonfin-Client:main Aug 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants