Add more searchable types & choose what to search (#1857)

## Description
This PR adds several more data types to search. It also adds a setting
(per use profile) to choose which types to include/exclude when
searching. The combined results now uses the same types instead of a
separate list.

A user can only search for types that they have access to. For example,
they need Live TV access for TV channels/programs or need access to a
movies-type library to search movies.

Added types to search:
- Photos & Photo albums
- Playlists
- People
- TV channels
- Live TV programs

Clicking a TV channel will play it. Clicking a TV program shows the
program dialog allowing for recording or watching live if it's currently
airing.

On the main search page you can also toggle whether to search Seerr or
not. This does not apply to the discover search tab.

Dev note: Some minor refactoring to move setting up/canceling live tv
recordings into a new service so it can be shared between with the live
tv & search pages. Also search related files are moved into the same
package now.

### Related issues
Closes #409
Closes #646 
Closes #1668
Closes #1750

### Testing
Emulator using users with different permissions and library access

## Screenshots
<img width="475" height="584" alt="image"
src="https://github.com/user-attachments/assets/ebcff697-07ba-4ddd-8c26-57f147cfa02a"
/>


## AI or LLM usage
None
This commit is contained in:
Damontecres 2026-08-26 14:39:02 -04:00 • committed by GitHub
parent 2b9af1e8bc
commit f91bca18ff
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
21 changed files with 1968 additions and 1416 deletions

View file

@ -243,7 +243,7 @@ data class HomeRowViewOptions(
val liveTvDefault =
HomeRowViewOptions(
heightDp = 96,
heightDp = Cards.HEIGHT_LIVE_TV,
aspectRatio = AspectRatio.WIDE,
contentScale = PrefContentScale.FIT,
)