Skip to content

Add movies and TV show search bar to app shell#94

Closed
CyberoniOntoni wants to merge 7 commits into
dfederm:mainfrom
CyberoniOntoni:feature/shell-search-upstream
Closed

Add movies and TV show search bar to app shell#94
CyberoniOntoni wants to merge 7 commits into
dfederm:mainfrom
CyberoniOntoni:feature/shell-search-upstream

Conversation

@CyberoniOntoni

Copy link
Copy Markdown
Contributor

Summary

Adds a persistent movies/TV search bar to the app shell, plus stability fixes for AutoSuggestBox and search-to-details navigation.

Review tip: This branch includes the controller commit as a prerequisite. For a smaller diff, review the fork stacked PR (search only vs controller base) or review commits bbf5aab through 58ce599 here.

Search

  • Styled AutoSuggestBox in MainPage with debounced Jellyfin search hints
  • Submitting a query navigates to a dedicated Search results page with portrait cards
  • Picking a suggestion navigates to item details

Crash fixes

  • Replace fragile TwoWay x:Bind on search text with code-behind handling
  • Remove TextMemberPath (requires WinRT-bindable custom properties)
  • Suppress duplicate navigation after SuggestionChosen
  • Cancel stale ItemDetails loads; guard null UserData on series items
  • Defer suggestion navigation to the next UI frame; log unhandled exceptions

Merge order

  1. Fix build reliability and improve subtitle playback performance #88 — build/subtitle fixes
  2. Add Xbox Series X controller support and shell navigation #93 — Xbox controller
  3. This PR — shell search

Replaces the search portion of closed #89.

Test plan

  • Search bar accepts keyboard and controller input
  • Debounced hints show movies and TV shows
  • Submit opens search results page
  • Selecting a suggestion opens item details without crash
  • Verified on Xbox Series X (dev mode)

Centralize gamepad virtual-key handling in GamepadInput and route shell navigation (menu toggle, left-edge open, B/Escape back) through NavigationManager at the CoreWindow level so it works on every content page, not only when MainPage has focus.

Video playback now maps A to play/pause, X to mute, and D-pad/stick directions to volume and seeking. Login and server selection accept Gamepad A to submit. WebVideo supports B to go back.
Place a styled AutoSuggestBox at the top of MainPage with debounced Jellyfin search hints. Submitting a query or picking a suggestion navigates to search results or item details. Includes a dedicated Search page with portrait result cards and adjusted content page spacing for the new header.
Replace nested TwoWay x:Bind on search text with code-behind TextChanged handling, use ObservableCollection for suggestions with TextMemberPath, simplify the search box style, and restore full-screen navigation overlay span.
Suppress duplicate QuerySubmitted navigation after SuggestionChosen, cancel stale ItemDetails loads when navigating away, and guard against null UserData on series items.
Defer AutoSuggestBox suggestion navigation to the next UI frame, reset ItemDetails playback state between loads, use null-safe stream bindings, navigate cards by item id, and log unhandled exceptions to the debug output.
AutoSuggestBox TextMemberPath requires WinRT bindable custom properties on suggestion items. Selection text is already applied in code when a suggestion is chosen.
Reload search results when submitting the same query on the results page. Collapse suggestion picking into ShellSearchViewModel.SelectSuggestion with debounce suppression. Add stale-load guards to SearchViewModel. Restore PR dfederm#93 NavigationManager menu and gamepad polish (OpenNavigationMenu only, GamepadA focus fix, unified text-input checks).
@CyberoniOntoni CyberoniOntoni marked this pull request as draft June 23, 2026 02:30
@CyberoniOntoni CyberoniOntoni deleted the feature/shell-search-upstream branch June 23, 2026 03:53
@dfederm

dfederm commented Jun 23, 2026

Copy link
Copy Markdown
Owner

@CyberoniOntoni I noticed you closed this and your other PRs. Are you just reorganizing/rebasing the PRs or abandoning the work? The changes do look useful and like something I'd want to integrate in, so I'm hoping it's the former and not the latter.

Thanks!

@CyberoniOntoni

Copy link
Copy Markdown
Contributor Author

@CyberoniOntoni I noticed you closed this and your other PRs. Are you just reorganizing/rebasing the PRs or abandoning the work? The changes do look useful and like something I'd want to integrate in, so I'm hoping it's the former and not the latter.

Thanks!

@dfederm Hi! Yes, I want to reorganize them a little bit. There was quite a bit of overlap here and there.

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.

2 participants