Skip to content

fix(tv): return to the watched channel from live TV, dim video under player UI - #121

Merged
JonahMMay merged 1 commit into
mainfrom
fix/live-tv-return-and-scrim
Sep 30, 2026
Merged

JonahMMay merged 1 commit into
mainfrom
fix/live-tv-return-and-scrim

Conversation

@JonahMMay

Copy link
Copy Markdown
Contributor

Return to the channel you were watching

Leaving the live player rebuilt the guide from scratch, so focus always landed on the first row.

  • LiveTvRoute now carries the tab and channel you tuned from (tab, restoreChannelId), following the existing restoreContentId pattern.
  • The guide reopens on that tab and moves focus to that channel's row: the Watch button on the Guide tab, or the row itself on the Channels tab.
  • Rows build lazily, so for a channel far down the list the guide first jumps the list toward it (proportional estimate, up to 8 retries). Once the row exists, it takes focus and scrolls it into view.
  • LiveTvTab moves from a private enum in the screen to route.dart.

Dim the video under the player UI

New PlayerScrim widget, used in both the live TV and regular players:

  • 60 % black while the stream is loading, over the frozen first frame, so the loading indicator clearly reads as "not playing yet".
  • 35 % black while the chrome is up, to keep player text readable over bright video.
  • None while the chrome is hidden. Transitions are animated, and the scrim ignores taps and clicks.

Testing

  • dart analyze lib: no issues
  • flutter test (prairie_core): all pass, including a new route test
  • Not yet run on the TV.

🤖 Generated with Claude Code

…der player UI

Leaving the live player rebuilt the guide from scratch, so focus landed on
the first row. LiveTvRoute now carries the tab and channel the viewer tuned
from; the guide reopens on that tab and moves focus to that channel's row,
scrolling the lazily built list toward it first.

Add a PlayerScrim between the video plane and the player UI, in both the
live and VOD players: a strong dim while the stream is still loading (the
native player shows a frozen first frame), and a lighter one while the
chrome is up, so the text stays readable over bright video.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 30, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 13 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 894052bb-e38b-4942-9a7b-7d451cdde483

📥 Commits

Reviewing files that changed from the base of the PR and between a29eae2 and 6007aeb.

📒 Files selected for processing (8)
  • flutter/packages/prairie_core/lib/prairie_core.dart
  • flutter/packages/prairie_core/lib/src/app.dart
  • flutter/packages/prairie_core/lib/src/routing/route.dart
  • flutter/packages/prairie_core/lib/src/screens/live_tv_player_screen.dart
  • flutter/packages/prairie_core/lib/src/screens/live_tv_screen.dart
  • flutter/packages/prairie_core/lib/src/screens/player_screen.dart
  • flutter/packages/prairie_core/lib/src/widgets/player_scrim.dart
  • flutter/packages/prairie_core/test/route_test.dart
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

@JonahMMay
JonahMMay merged commit bb7c655 into main Sep 30, 2026
7 checks passed
@JonahMMay
JonahMMay deleted the fix/live-tv-return-and-scrim branch September 30, 2026 22:01
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