## Description
Can now configure a different subtitle style for HDR playback.
There is also a new setting to change the opacity/dim image based
subtitles. This is primarily for HDR to dim very bright PGS subtitles,
but the setting is available for SDR too.
Please remember that the styles only apply to unstyled text formats like
SRT.
I haven't been able to consistently get the preview to switch the
display into HDR mode, so the preview is not 100% accurate.
### Related issues
Closes#583
### Testing
Shield pro 2019 w/ LG C2
## AI or LLM usage
None
## Description
Simplifies the refresh rate/display mode change code by removing the
live data go between.
Also, instead of a `CountDownLatch` that blocks the thread, use a
`Deferred` to suspend the coroutine instead.
### Related issues
Might help with #769
### Testing
Tested on nvidia shield
## Description
Add ability to sort and filter items in a playlist. There's a new button
for each added to the playlist details page. Starting playback will run
in the order selected.
The sort and filter are persisted locally per playlist, so returning to
the playlist will remember the previous settings.
Note: playlist playback is still limited to 100 items (#42)
### Related issues
Closes#285
### Testing
Emulator & nvidia shield
## Screenshots

## AI or LLM usage
None
## Description
When using LOCAL or JELLYFIN authentication methods to connect to Seerr,
the login flow was not properly establishing session cookies and user
permissions. The login would 'succeed' and you were led to thinking it
worked, but then...
This caused:
- Request functionality to be greyed out even though the user should
have access
- Users to appear to have no permissions after login (permissions=0)
## Solution
This PR fixes the authentication flow by:
**Fetching full user config after login**: For LOCAL and JELLYFIN
auth methods, the login endpoints (`authLocalPost()` and
`authJellyfinPost()`) establish the session cookie but return incomplete
user data. This PR now calls `authMeGet()` immediately after login to
fetch the fully-populated user configuration including proper
permissions.
## Tests
- Have working apk on my dev fork.
- Ran logins as Local + API. Cannot test Jellyfin due to environment,
but codewise, it looks correct.
## Related issues
Related to https://github.com/damontecres/Wholphin/issues/747
---------
Co-authored-by: Ray <154766448+damontecres@users.noreply.github.com>
## Description
Makes sure the invalid credentials error is propagated up instead of
displaying "No URL" as the error message.
Makes sure `OkHttp` is initialized since the startup initialization
provider is disabled. This fixes a possible crash if `OkHttp` needs to
access its assets.
Also, shows the URL when removing the Jellyseerr server.
## Description
Improves loading speed for the series overview page (one with list of
episodes). This is mostly accomplished by querying for the cast/crew in
the episodes on demand instead of during the initial query.
Also stops using the date as a replacement for the episode index. Using
this caused an extra unnecessary (long) query.
Going from home to the 109th of a 230 episode season is ~2x faster with
this change on my test server.
### Related issues
Closes#599
## Description
Updates the logic in the Prefer MPV setting to prevent performance
issues when software decoding is selected. When the MPV backend is
configured to use software decoding, the app will now automatically
fallback to ExoPlayer for 4K content. Most Android TV devices cannot
smoothly render 4K video via software decoding, so falling back to
Exoplayer for this content makes sense in most cases when using the
software renderer. This mirrors the existing fallback mechanism used for
HDR content.
### Related issues
N/A
### Screenshots
N/A
### AI/LLM usage
None
---------
Co-authored-by: Ray <154766448+damontecres@users.noreply.github.com>
## Description
Due a few more MPV bugs showing up, this PR reverts the part of #736
that made "Prefer MPV" the default player option.
User can still manually switch to "Prefer MPV" and its full functional
remains. It's just not set to be the default anymore.
## Description
Bumps dependency versions.
AGP (and hilt by extension) are not yet updated cause moving to AGP 9
has many breaking changes and I think one or two may affect the build
scripts.
Also, one day I will add Renovate to automate these PRs.
## Description
Fixes several bugs and makes it easier to log in to a Jellyseer instance
- Fix initial focus & next focus on the add server dialog
- Don't use an API key for non-API key auth (credit to @voc0der in #734
for suggesting this)
- Show trailers for TV shows
- Fix incorrect/missing similar and recommended rows for both movies &
TV shows
- Allow empty password for Jellyfin users without a password
Log in will now try variations of the input URL such as add the protocol
and/or default port. This is similar to the regular Jellyfin login
process.
### Related issues
Fixes#778Fixes#750Fixes#740
Might help with #747
Fixes
https://github.com/damontecres/Wholphin/issues/764#issuecomment-3801324648
## Description
Fixes a possible crash if a row on the home page is removed.
This could potentially happen if you only have one thing on the resume
row and watch it by accessing it from the bottom row.
## Description
Ensure that MPV is always destroyed before being initialized again.
Also, now creating a new player is only done when switching backends
which means faster, more efficient playing the next up.
### Related issues
Fixes#766
## Description
Disables gpu-next by default in MPV settings. This renderer is
experimental and causes broken playback (purple screen) on some older
devices like the NVIDIA Shield 2019 Pro.
Also adds a migration to ensure gpu-next is turned off for existing
users who upgrade, avoiding playback regressions for users being newly
moved over to the Prefer MPV settings so that they can experience a
smooth transition.
### Related issues
Fixes#754?
### Screenshots
N/A
### AI/LLM usage
PR drafting
## Description
Handle errors on the Discover/Jellyseerr requests tab preventing crashes
Note: this PR fixes the crash, but the error was a 400, which is likely
due to the older Jellyseerr version.
### Related issues
Fixes#764
## Description
This PR has several micro optimizations to the home page & nav drawer.
Basically it computes text off of the main thread and removes redundant
calculations.
## Description
The MPV backend is no longer considered experimental. This PR adds a
setting for player backend "Prefer MPV" which uses MPV for all playback
unless the video is HDR which then uses ExoPlayer.
Switching occurs per video. So if there's a playlist with both SDR &
HDR, the player will switch back and forth as needed.
### Related issues
Closes#253
Related to #235