Skip to content

Add universal search screen with classic search toggle#1533

Open
obiwantoby wants to merge 1 commit intoUnicornsOnLSD:redesignfrom
obiwantoby:feature/universal-search
Open

Add universal search screen with classic search toggle#1533
obiwantoby wants to merge 1 commit intoUnicornsOnLSD:redesignfrom
obiwantoby:feature/universal-search

Conversation

@obiwantoby
Copy link
Copy Markdown

Changes

  • Universal Search Screen: New dedicated search screen that queries the Jellyfin API with debounced requests (300ms) across Audio, Albums, Artists, Playlists, and Genres
  • Rich Search Results: Uses TrackListTile for audio items and ItemCollectionWrapper for albums/artists/playlists to maintain consistency with existing app UI
  • Classic Search Toggle: Added useUniversalSearch setting (HiveField 144) with a toggle in Layout & Theme settings. Users can switch back to the in-page classic search if preferred
  • Search Integration: Search icon in the app bar and drawer menu entry now route to universal or classic search based on the user's preference setting
  • iOS 26 Crash Fix: Added FLTEnableTouchRateCorrection=false to Debug, Release, and Profile plists to resolve VSyncClient crash on iOS 26 devices
  • iOS file_picker Fix: Added Podfile preprocessor rename for FileUtilsFPFileUtils to resolve class collision with OSAnalytics framework
  • Dependency Bump: Updated file_picker to ^10.3.10 for compatibility fixes

Todo before merging

  • Translations (English strings added to app_en.arb; other language translations will follow)
  • Reset Settings (useUniversalSearch reset support added to resetLayoutSettings)
  • Extended CONTRIBUTING.md

Related Issues

Note this did fix an inappropriate pull request to which some other dart code was removed.

- Add UniversalSearchScreen with debounced Jellyfin API search across
  Audio, Albums, Artists, Playlists, and Genres
- Use TrackListTile and ItemCollectionWrapper for rich search results
- Add useUniversalSearch setting (HiveField 144) with Layout Settings toggle
- Route search icon and drawer to universal or classic search based on setting
- Fix iOS 26 crash: add FLTEnableTouchRateCorrection=false to all plists
- Fix iOS file_picker FileUtils class collision via Podfile preprocessor rename
- Bump file_picker to ^10.3.10

Closes UnicornsOnLSD#471
@Chaphasilor
Copy link
Copy Markdown
Collaborator

Thanks for the (new) PR!
I haven't tried it out yet, but looking at the code this doesn't support offline mode yet. Could you look into adding this?

Some more things you might want to consider:

  1. Originally it was planned to add global search along with the new home screen (✨ Home Screen #1141), but I didn't have time to add both. You could consider updating the target branch to that PR branch, the branches should be mostly compatible (just the Hive IDs might change, and then you will need to run code generation again)
  2. Splitting your changes into separate commits would be nice, but you can do that next time. Try to separate different changes as much as possible.
  3. There is an existing more or less complete mockup for the global search:
image This is just a **rough** mockup, and somewhat outdated. Don't mind how the item tiles look, don't mind the dark mode, don't mind the colors. The important bit would be the tabs / item types to search in, which can be toggled on and off. It would also be good if were obvious which kind of item is being shown.
  1. This will now keep the old and new search implementation around, which isn't ideal. I don't see a reason to keep the old search function around, aside from filtering maybe?

@Chaphasilor
Copy link
Copy Markdown
Collaborator

@obiwantoby are you planning to make any further changes here? If not, I'll have to close the PR :)

@Chaphasilor Chaphasilor added the awaiting response / stale Issue is possibly outdated or waiting for user feedback label Mar 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting response / stale Issue is possibly outdated or waiting for user feedback

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants