feat(livetv): add guide search with jump-to-channel/program#1526
Open
l3gitpanda wants to merge 3 commits into
Open
feat(livetv): add guide search with jump-to-channel/program#1526l3gitpanda wants to merge 3 commits into
l3gitpanda wants to merge 3 commits into
Conversation
67be12f to
da62643
Compare
Search icon on the guide tab opens a sheet that filters channels and the next 24h of programs in memory; selecting a result closes the sheet, shifts the guide window if needed, scrolls to the channel row and lands d-pad focus on the match. While the sheet is open it takes over the companion-remote search callback (save/restore, same idiom as the video player overrides) so queries typed on the phone land in guide search with the TV keyboard dismissed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UnEMtLJYbRim4k7YLCwvyZ
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UnEMtLJYbRim4k7YLCwvyZ
The search action was only rendered while the guide tab was selected, but the d-pad route into the app-bar action bar traverses the tab chips, and RIGHT selects each tab it crosses - so focus could only enter the bar with What's On (or Recordings) active, after the search button had already been unmounted. Show the search action on every Live TV tab instead, and switch back to the guide tab when a result is picked. Since a tab switch builds GuideTab fresh, its jump methods now stash a jump requested while programs are still loading and replay it once the load completes, in place of the default scroll-to-now anchoring. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QBt1MzBDJXssuRNH1CBGRC
9a699d5 to
dd69af0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a search to the Live TV guide: a search icon on the Guide tab opens a sheet that filters channels (name, call sign, number) and programs airing in the next 24 hours (title / series name) as you type. Selecting a result closes the sheet and jumps to it in the guide — shifting the guide's time window when the airing isn't in the current one, scrolling to the channel row, and landing d-pad focus on the matched program block.
Screenshots
How
GuideSearchSheetmodeled on the existing subtitle-language filter sheet (FocusableTextField+ in-memory filter +FocusableListTilerows), shown viaOverlaySheetController.showAdaptivelike the reorder-favorites sheet. Programs come from onefetchSchedule(now, now+24h)fan-out overliveTvServerswhen the sheet opens; each program's channel is resolved once so keystroke filtering stays cheap.GuideTabState(jumpToChannel/jumpToProgram) reuse the existing day/time-picker window mechanics,_scrollToChannel/_scrollToProgramTime, and thefocusContent()keyboard-mode gating.CompanionRemoteReceiver.onSearchAction(same save/restore idiom as the video player's overrides) so a query typed on the phone lands in the guide search with the TV keyboard dismissed; the global Search tab handler is restored on close. No protocol changes.fallback_strategy: base_locale).Testing
flutter analyzeclean;dart format(120) applied.🤖 Generated with Claude Code