Commit graph

1073 commits

Author SHA1 Message Date
Damontecres
64c6e4db79
Support delete 2026-03-21 16:38:11 -04:00
Damontecres
803780894c
UI tweaks 2026-03-21 15:53:34 -04:00
Damontecres
99bddea295
Backdrop changes 2026-03-21 15:03:02 -04:00
Damontecres
2b6c4eafb3
Merge branch 'main' into fea/music 2026-03-21 12:37:15 -04:00
Ray
dac0b7208c
Refresh seasons on series details page (#1123)
## 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
2026-03-20 12:07:28 -04:00
Ray
f9ff04c5b7
Fix issues when the system kills the app during playback (#1116)
## 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
2026-03-18 18:09:13 -04:00
Ray
d184990b16
Improvements to ffmpeg decoders build script (#1110)
## Description
A few improvements to the ffmpeg decoder & mpv build scripts. Mainly
changes the dependency fetching so the scripts are more idempotent,
though some rebuilds still always occur.

### Related issues
Related to
https://github.com/damontecres/Wholphin/pull/1106#issuecomment-4077678690

### Testing
Local builds

## Screenshots
N/A

## AI or LLM usage
None
2026-03-17 17:04:27 -04:00
Damontecres
43be11cef9
Merge branch 'main' into fea/music 2026-03-17 13:10:16 -04:00
Damontecres
3af9775592
Release v0.5.4 2026-03-17 12:47:46 -04:00
Damontecres
9259edcf1c
Report & control music playback from server 2026-03-16 14:17:18 -04:00
Damontecres
6c26891bff
Make TrackActivityPlaybackListener more generic 2026-03-16 13:30:25 -04:00
renovate[bot]
bc7b751b83
Update Androidx Media3 to v1.9.3 (#1106) 2026-03-16 13:18:40 -04:00
Damontecres
9badecf086
Merge branch 'main' into fea/music 2026-03-16 13:12:09 -04:00
renovate[bot]
f3c0606ebf
Update Kotlin to v2.3.20 (#1105) 2026-03-16 12:59:52 -04:00
renovate[bot]
31db1f59b9
Update Dependencies (#1082) 2026-03-16 12:59:34 -04:00
renovate[bot]
ee0df25b6f
Update Gradle to v9.4.0 (#1038) 2026-03-16 12:59:04 -04:00
Ray
9057dceef6
Various fixes to screensaver, subtitle order, & playlist modifications (#1104)
## 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
2026-03-15 19:31:18 -04:00
Damontecres
b70a7bc7bb
Smoother now playing backdrop transition 2026-03-15 15:42:33 -04:00
Damontecres
8ddd3fc7eb
Change now playing layout with better animations 2026-03-15 09:34:13 -04:00
Damontecres
3e043d5118
Change backdrop periodically 2026-03-15 08:43:05 -04:00
Damontecres
48a933136f
Visualizer tweaks 2026-03-15 08:28:02 -04:00
Damontecres
1ee1a855a2
Merge branch 'main' into fea/music 2026-03-14 22:24:17 -04:00
Ray
23e5225c19
Debug installs should use same when updating (#1103)
## 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
2026-03-14 18:35:32 -04:00
Ray
627b89f1db
Updates to Seerr image fetching (#1086)
## 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
2026-03-14 16:47:08 -04:00
Ray
2da55bb616
Use newer libplacebo branch (#1077)
## Description
Testing newer `libplacebo` to include
c93aa134ab

### Related issues
Related to #806
2026-03-13 11:54:55 -04:00
Ray
8bc3384094
Simplify series overview page refresh (#1092)
## 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
2026-03-12 21:16:56 -04:00
Ray
62965c1b22
Fix slideshow images not resizing properly (#1089)
## 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
2026-03-12 14:39:26 -04:00
Damontecres
31263a71f7
Merge branch 'main' into fea/music 2026-03-11 14:22:47 -04:00
Damontecres
860369b8eb
Smooth lyric animations a bit 2026-03-11 14:18:38 -04:00
Damontecres
9c53abf152
Fix playlist play/shuffle buttons not working 2026-03-11 14:00:06 -04:00
Damontecres
8aa64c6fef
Ask for record audio permission when enabling visualizer 2026-03-11 13:53:51 -04:00
Damontecres
c91ac434e0
Better defaults when adding music to home page 2026-03-11 00:03:17 -04:00
Jannik Mahr
cca818fabb
Improve display of "DTS:HD" and "DTS:HD MA" audio tracks (#1064)
<!-- 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>
2026-03-10 23:44:44 -04:00
Ray
0dca02b919
Fix race condition when updating preferences (#1078)
## 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
2026-03-10 18:10:14 -04:00
Ray
7bb47bf329
Photo/slideshow fixes & Seerr server removal fix (#1076)
## 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 #835
Fixes #1069
Addresses
https://github.com/damontecres/Wholphin/issues/634#issuecomment-4018580518

### Testing
Emulator mostly

## Screenshots
N/A

## AI or LLM usage
None
2026-03-10 14:16:19 -04:00
Ray
afc47f254b
Request individual seasons from Jellyseerr (#1060)
## Description
Adds a dialog to select individual seasons for a TV show when requesting
it via Discover/Jellyseerr

If a request is already pending, it can be updated. If there's more than
7 seasons, a second submit button is added at the bottom of the dialog
for easier access.

Also, adds a button from Jellyfin series details to its Discover
equivalent and added a request button for partially available series to
request more seasons.

### Related issues
Closes #961

### Testing
Emulator & Jellyseerr 2.7.3

## Screenshots
![discover_seasons
Large](https://github.com/user-attachments/assets/c7781bf4-7c1b-4e4e-a0b8-a572111a8497)

## AI or LLM usage
None
2026-03-10 11:54:00 -04:00
Damontecres
f062aedadf
Remove temp code 2026-03-07 12:01:32 -05:00
Damontecres
f92be72aef
Wire up more playlist actions 2026-03-07 12:00:19 -05:00
Damontecres
a699170583
WIP playlist updates 2026-03-07 11:38:32 -05:00
Damontecres
5f5b07e861
Updates to playlists, add more button on album/artist pages 2026-03-06 20:25:41 -05:00
Damontecres
8ddd4bd747
Merge branch 'main' into fea/music 2026-03-06 18:38:17 -05:00
Damontecres
49a6cd8d2f
Release v0.5.3 2026-03-06 18:16:48 -05:00
Ray
256bb3f988
Fix crash after last screensaver image in list (#1055)
## Description
Fix a screensaver crash after the last item

Also adds some extra error checking

### Related issues
Fixes #1053

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-03-06 18:16:35 -05:00
Damontecres
ec43546bad
WIP Playlist updates 2026-03-06 17:51:42 -05:00
Damontecres
8a4be3dd32
Release v0.5.2 2026-03-06 16:37:06 -05:00
Damontecres
0bb91f2438
WIP Playlist updates 2026-03-06 16:36:38 -05:00
Ray
fe76ee6e10
Translations as of 2026-03-06 (#1050)
Adds batch of translations as of 2026-03-06

Thank you to all of the contributors!
2026-03-06 16:36:02 -05:00
Damontecres
dc58b31e2b
Add indicator for queued songs 2026-03-06 16:20:54 -05:00
Damontecres
73cf54b844
Fixes to strings 2026-03-06 16:18:50 -05:00
idezentas
4cfb471e5d
Translated using Weblate (Turkish)
Currently translated at 100.0% (502 of 502 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-03-06 21:16:21 +00:00