## Description
Don't recursively query collections for the home page rows. This
prevents episodes within tv shows from being shown.
### Related issues
Fixes https://github.com/damontecres/Wholphin/issues/1148Fixes#1147
### Testing
Emulator & API
## Screenshots
N/A
## AI or LLM usage
None
## Description
A brain dump documenting many classes and functions throughout the app.
Definitely does not document everything, but covers most of the major
components. This should be useful for new contributors.
There is a small amount of code clean up too.
There are no user facing changes.
### Related issues
N/A
### Testing
N/A
## Screenshots
N/A
## AI or LLM usage
None
## Description
Ensure the new pause indicator from #1144 is the right color for all
devices.
### Related issues
Related to #1144
### Testing
Emulator & shield
## Screenshots
N/A
## AI or LLM usage
None
## Description
Instead of displaying the full playback overlay when pausing via a
button press, just show a short pause image in the center of the screen.
Any button press that will pause triggers this including a remote Pause,
Pause/Play, or one-click pause Enter.
I decided to make this the standard behavior instead of a toggle because
I think if the user intends to do something with the overlay (change
subtitles, audio, etc), it's still straightforward to open the overlay,
click the pause button (which is focused first), and then move to the
desired option versus assuming click-to-pause will open the overlay so
the user can move to the desired option.
### Related issues
Closes#990
### Testing
Emulator
## Screenshots
[pause_osd.webm](https://github.com/user-attachments/assets/8f908164-2a50-43f9-9e13-a463d2914e42)
## AI or LLM usage
None
## Description
Use localized date & time formatting such as using 24 hour clock or
Day-Month-Year date formatting. The localization is based on the
device's locale/language setting. Some pages require reloading if you
switch the locale while Wholphin is running.
Format bitrates using SI 1000 magnitudes instead of 1024. File size
still uses 1024 but formats with "MiB"/"GiB" suffixes now. This aligns
with the server web UI and is more in line with standard practices for
display as well.
Fixes the playback overlay layout being messed up by extremely long
episode names.
Finally, adds jumping by letter using keyboard letter keys on grids if
letter jumping is enabled. I doubt many users have a full keyboard
attached to their TV, but this saves me time using the emulator when I
need to repeatedly open the same item for testing.
### Related issues
Fixes#1132
### Testing
Emulator
## Screenshots
N/A
## AI or LLM usage
None
## Description
Updates the playback overlay so that individual component animate in
more deliberately.
For example, the logo & clock slide in from the top instead of the
middle of the screen. And the trick play preview now expands and shrinks
vertically.
### Related issues
I thought there was an issue about this, but I can't find it
### Testing
Emulator, nvidia shield
## Screenshots
N/A
## AI or LLM usage
None
## Description
Adds better error handling when loading home page rows. For example,
this fixes loading errors if a playlist row is configured, but the
playlist is deleted.
Also fixes an issue from #1116 where changing users doesn't go the home
page.
### Related issues
Related to #1124
### Testing
Emulator
## Screenshots
N/A
## AI or LLM usage
None
## Description
Simply fetches the tv show's seasons when returning the details page.
This ensures the unwatched counts are updated.
### Related issues
Mentioned as a bug in
https://github.com/damontecres/Wholphin/issues/767#issuecomment-4071852502
### Testing
Emulator
## Screenshots
N/A
## AI or LLM usage
None
## Description
This fixes some issues restoring the app state after it is killed by the
system, such as to free up memory while the screensaver is showing.
### Dev notes
Reproduce:
1. Start playing media from beginning
2. Pause at 10 minute mark
3. Wait for screensaver to start
4. Press a button
5. Media starts from beginning
Note: It may take a few iterations of 2-4 before the OS destroys the
app.
If the app is killed during playback, ideally Wholphin restores state to
_previous_ page, not playback since restoring playback is complex.
Before this PR, the back stack was maintained by Compose's
`rememberSerializable` and would be restored _after_ the
`PlaybackLifecycleObserver` cleans up the playback destination.
This meant that the app would be restored, from scratch, to the playback
page. The `PlaybackViewModel` would be initialized from scratch as it
was originally called, ie play from beginning.
The fix is to save and restore the back stack outside of Compose.
### Related issues
Fixes#767
### Testing
Emulator & nvidia shield
## Screenshots
N/A
## AI or LLM usage
None
## Description
Several small tweaks:
- Always put screensaver logo on left instead of random
- Disable playback speed option if audio is being passed through
- When opening playback settings such as speed or scale, focus on the
current value instead of top of the list; doesn't apply to subtitles so
it's easy to toggle them off
- If the user has a preferred subtitle language, show tracks in that
language first/top
- Add toast message after creating or adding to a playlist
### Related issues
Playback speed audio pass through: #164
### Testing
Emulator & shield
## Screenshots
N/A
## AI or LLM usage
None
## Description
Fixes debug install updates from trying to install the release APK and
use debug ones instead.
### Related issues
Fixes#1098
### Testing
Unit tests
## Screenshots
N/A
## AI or LLM usage
None
## Description
This PR makes changes to how images are fetched for discover/Seerr
items.
If the discovered item is available on the Jellyfin server, the images
will be fetched from the Jellyfin server.
Then if the Seerr server has image caching enabled, the images will be
fetched from the Seerr server. Otherwise, images are fetched from TMDB .
TMDB was the previous behavior for all images.
### Dev notes
This PR also updates the Seerr server URLs stored in the database, so
it's not backwards compatible.
### Related issues
Fixes#1079
### Testing
Emulator against Jellyseer 2.7.3 & Seerr 3.0.1
## Screenshots
N/A
## AI or LLM usage
None
## Description
This PR simplifies refreshing the episode data when returning to the
series overview page and reduces the number of queries.
Also fixes a race condition when refreshing a single item in the an
`ApiRequestPager`.
### Related issues
Related to #767
### Testing
Emulator, but will need more testing during actual usage
## Screenshots
N/A
## AI or LLM usage
None
## Description
During a slideshow of images, the viewpoint would resize to largest
image resolution and images with smaller dimensions would be scaled down
and centered with black bars.
This might be a Coil bug, but I'm not 100% sure yet. This PR works
around the issue by scaling all images to the display resolution instead
of using `Size.ORIGINAL`.
However, we want `Size.ORIGINAL` while zooming so it doesn't pixelate if
the original image's resolution is larger than the display's.
### Related issues
Fixes
https://github.com/damontecres/Wholphin/issues/835#issuecomment-4035005433
### Testing
Emulator with 1920x1080 & 800x1600 images
## Screenshots
N/A
## AI or LLM usage
None
<!-- By submitting this pull request, you acknowledge that you have read
the [contributing
guide](https://github.com/damontecres/Wholphin/blob/main/CONTRIBUTING.md,
including the AI/LLM policy, and [developer's
guide](https://github.com/damontecres/Wholphin/blob/main/DEVELOPMENT.md)
-->
## Description
The formatter for audio codecs did only match the profile of high
definition DTS streams against "DTS:HD" or "DTS:X". At least for DTS:HD
there are also cases where the profile contains "DTS-HD" with "-"
instead of ":".
Made the matcher more generic by allowing both "-"" or ":"" and also
checking if the profile contains "MA" for Master Audio tracks.
This will now correctly display the following high definition DTS types
in the UI:
- DTS:HD
- DTS:HD MA
- DTS:X
**Note:** This is my first public pull request ever, let me know if I
did it wrong :)
### Related issues
Relates to (but does not fix):
https://github.com/damontecres/Wholphin/issues/1057
### Testing
Tested on a Fire TV Cube Gen 3 with multiple files containing DTS HD
audio tracks.
---------
Co-authored-by: Damontecres <damontecres@gmail.com>
## Description
Fixes a race condition saving preferences. It would be triggered if you
have "Remember selected tabs" enabled and either: 1) changed settings
while on a library grid page or 2) changed settings on a page navigated
_from_ a library grid page and then returned to the grid
### Related issues
I think this will fix#1075
### Testing
Emulator following the steps above
## Screenshots
N/A
## AI or LLM usage
None
## Description
A few fixes
- Better crossfade for photo slideshow
- Fix "Go to" in context menu for photos
- Fix certain home video/photo libraries not working for photos
- Fix removing seerr server in some cases
### Related issues
Closes#835Fixes#1069
Addresses
https://github.com/damontecres/Wholphin/issues/634#issuecomment-4018580518
### Testing
Emulator mostly
## Screenshots
N/A
## AI or LLM usage
None