Commit graph

1073 commits

Author SHA1 Message Date
Damontecres
df71baccea
Fix remove series from next up (#1369)
## Description
Fixes the "Remove series from next up" context menu item not working at
all.

Looks like after the refactoring in #1302, I missed [adding back the
function
call](https://github.com/damontecres/Wholphin/pull/1302/changes#diff-440f67bfe7be2011418c2f90e3a8ae2af05795a5161edd1a8bda14bc3b962cdcL175).

### Related issues
Fixes #1363

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-05-10 18:00:09 -04:00
Damontecres
dbd17597b2
Show public users when switching users (#1358)
## Description
Show the public users (ie "Hide this user from login screens" is
unchecked) if the server has any. Previously, all users had to be
explicitly added by username or quick connect.

This PR also refactors the server & user pages to use modern state flows
and deletes some unused code.

### Related issues
Closes #600

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-05-10 08:50:08 -04:00
Damontecres
b23d30f94b
Slightly optimize subtitles view & workaround possible crash (#1334)
## Description
Instead of adding/removing the `SubtitleView` from composition
sometimes, instead toggle its visibility. This is technically slightly
more efficient. There's also a couple other minor tweaks that make the
subtitles style a little more efficient.

This should also help prevent crash caused by possible a race condition
in libass-android
(https://github.com/peerless2012/libass-android/issues/75).

### Related issues
I think this fixes #1322

### Testing
Emulator mostly

## Screenshots
N/A

## AI or LLM usage
None
2026-05-06 18:29:26 -04:00
Damontecres
45ab0713a9
Update AGP, Gradle, & other third party dependencies (#1356)
## Description
Just a lot of dependency bumps. There are no user facing changes.

Switches to the new Android gradle DSL now that the protobuf plugin is
compatible.

### Related issues
None

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-05-06 18:08:29 -04:00
Damontecres
8107a82a6b
Fixes/improves showing delete button (#1353)
## Description
Fixes the delete button not showing on the movie detail page. Also fixes
some edge cases where button may not appear when toggling on the media
management setting.

Adds the delete button to album & artist pages. Previously, it was only
in the context menu.

### Related issues
Fixes #1343

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-05-06 11:49:27 -04:00
Damontecres
461bad1ddd
Fix bug where changing subtitles during playback doesn't work (#1352)
## Description
Fixes an issue when changing subtitles during playback if you had
previously explicitly chosen subtitles for that item but not chosen an
audio track.

### Related issues
I don't think there is a specific issue for this

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-05-06 11:49:13 -04:00
Damontecres
6afcfb469b
Enable large heap (#1337)
## Description
This PR simply enables the `largeHeap` flag to request more memory from
the OS.

I am a bit embarrassed that I haven't added this before now, but I had
read that using `largeHeap` was a bandaid, not a solution. So I assumed
Wholphin was doing something incorrect memory-wise. But after crawling
through many, many heap dumps to analyze Wholphin's memory usage, and
after further research, enabling this does make sense for handling high
bitrate, high resolution videos. Furthermore, many other Jellyfin
clients and other video apps like Plex and Prime Video have this
enabled.

So since I am pretty confident that Wholphin doesn't have any memory
leaks, I feel good about enabling this.

### Related issues
I believe this will fix many of the bug reports about crashes during 4K
playback, but it's not a cure-all since it is up the device & OS to
allocate the max memory.
Fixes #333 
Fixes #826
Fixes #1189

### Testing
Shield 2019, Fire 4k Max

## Screenshots
N/A

## AI or LLM usage
None
2026-05-01 19:12:23 -04:00
Damontecres
d538b8d4f9
Preload grid card images & other minor optimizations (#1328)
## Description
Preload ~6 rows worth of images on library grid pages. So depending on
device CPU & memory, most cards do not show a placeholder image when
scrolling unless you press and hold up/down to scroll as fast as
possible.

There's a couple other minor optimizations on the grid code as well, but
nothing huge.

### Dev notes

This PR makes the `cacheWindow` for pre-rendering cards applicable to
their images. Previously, images would not be fetched until the card is
laid out within the window. This was to get the width/height to pass to
the server request. This PR instead calculates the card widths when the
grid itself is laid out and then passes this width into the cards'
composables.

### Related issues
Related to #1246

### Testing
Tested with emulator, shield, fire stick 4k max

## Screenshots
N/A

## AI or LLM usage
None
2026-04-29 19:45:57 -04:00
Damontecres
b94faceb2f
Choose backend to play media in context menu (#1325)
## Description
Adds a context menu option to choose the player backend or transcoding
to start playback. This allows for temporarily swapping to another
backend without having to updating the settings.

### Related issues
A couple comments have suggested this, but I don't think there's a
specific feature request

### Testing
Emulator

## Screenshots
<img width="1280" height="720" alt="play_with Large"
src="https://github.com/user-attachments/assets/2a75756f-5d7f-45f6-8ea6-a406f3d7f3e1"
/>


## AI or LLM usage
None
2026-04-29 19:45:37 -04:00
Damontecres
c718d903a4
Refactor context menu code (#1302)
## Description
This PR refactors most of the context menu dialog code moving more of
the display into a Composable. This then allows for embedding the
confirm delete or choose version sub-dialogs. This will allow for easier
future expansion of the context menu.

Now instead of the page using a combination of `DiaglogPopup` &
`buildMoreFor` functions, pages create a `ContextMenu` object and pass
it to a composable.

There's no significant user facing changes.

### Related issues
None

### Testing
Emulator

## Screenshots
N/A

## AI or LLM usage
None
2026-04-27 18:58:54 -04:00
idezentas
a46cb36735
Translated using Weblate (Turkish)
Currently translated at 100.0% (550 of 550 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-04-26 21:53:03 +00:00
arcker95
4d81d31e8d
Translated using Weblate (Italian)
Currently translated at 100.0% (550 of 550 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-04-26 21:53:03 +00:00
Priit Jõerüüt
c616d58ce5
Translated using Weblate (Estonian)
Currently translated at 100.0% (550 of 550 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-04-26 21:53:03 +00:00
danpergal84
b2ecc2886f
Translated using Weblate (Spanish)
Currently translated at 100.0% (550 of 550 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-04-26 21:53:02 +00:00
MrDog
eeb2373507
Translated using Weblate (Slovenian)
Currently translated at 32.6% (179 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sl/
2026-04-26 21:53:02 +00:00
Outbreak2096
6c2769f84a
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (549 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-04-26 21:53:02 +00:00
SimonHung
dc56296082
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (549 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-04-26 21:53:02 +00:00
North-DaCoder
e82a8632fc
Translated using Weblate (German)
Currently translated at 100.0% (549 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-04-26 21:53:02 +00:00
idezentas
8ae7d7bd1a
Translated using Weblate (Turkish)
Currently translated at 100.0% (549 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-04-26 21:53:02 +00:00
SimonHung
a65f9ecd6c
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 99.8% (548 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-04-26 21:53:02 +00:00
danpergal84
ac85008a7b
Translated using Weblate (Spanish)
Currently translated at 100.0% (549 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-04-26 21:53:02 +00:00
zyplex
e71cb4aaae
Translated using Weblate (German)
Currently translated at 99.6% (547 of 549 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-04-26 21:53:02 +00:00
arcker95
d68a5dfb85
Translated using Weblate (Italian)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-04-26 21:53:02 +00:00
MrDog
28047cceee
Translated using Weblate (Slovenian)
Currently translated at 22.8% (125 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sl/
2026-04-26 21:53:02 +00:00
arcker95
632cf6bae4
Translated using Weblate (Italian)
Currently translated at 99.6% (544 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/it/
2026-04-26 21:53:02 +00:00
MrDog
9bd10a9880
Translated using Weblate (Slovenian)
Currently translated at 20.8% (114 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sl/
2026-04-26 21:53:02 +00:00
Alan700
116b4516a2
Translated using Weblate (French)
Currently translated at 99.8% (545 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-04-26 21:53:02 +00:00
idezentas
4b5b18247d
Translated using Weblate (Turkish)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-04-26 21:53:02 +00:00
Outbreak2096
ed5a6b3aaf
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-04-26 21:53:02 +00:00
TheMatrixan
23a45016eb
Translated using Weblate (Polish)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/pl/
2026-04-26 21:53:02 +00:00
SimonHung
dd0fda5573
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-04-26 21:53:02 +00:00
ymir
6e08f06527
Translated using Weblate (French)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-04-26 21:53:02 +00:00
Priit Jõerüüt
591214fe94
Translated using Weblate (Estonian)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-04-26 21:53:02 +00:00
danpergal84
90e932a804
Translated using Weblate (Spanish)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-04-26 21:53:02 +00:00
North-DaCoder
346349910a
Translated using Weblate (German)
Currently translated at 100.0% (546 of 546 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-04-26 21:53:02 +00:00
Alan700
e6bc4e3c19
Translated using Weblate (French)
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/fr/
2026-04-26 21:53:02 +00:00
Wit Krittawit
3210ad110e
Translated using Weblate (Thai)
Currently translated at 93.7% (510 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/th/
2026-04-26 21:53:01 +00:00
idezentas
72b956a1c4
Translated using Weblate (Turkish)
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-04-26 21:53:01 +00:00
danpergal84
e0b4cf17bb
Translated using Weblate (Spanish)
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-04-26 21:53:01 +00:00
North-DaCoder
73edbbc01d
Translated using Weblate (German)
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/de/
2026-04-26 21:53:01 +00:00
MrDog
504c74e0c6
Translated using Weblate (Slovenian)
Currently translated at 13.6% (74 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/sl/
2026-04-26 21:53:01 +00:00
Priit Jõerüüt
2c0bf94f42
Translated using Weblate (Estonian)
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-04-26 21:53:01 +00:00
MrDog
6e6df53d0c
Added translation using Weblate (Slovenian) 2026-04-26 21:53:01 +00:00
Outbreak2096
371925aa72
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hans/
2026-04-26 21:53:01 +00:00
SimonHung
91a75606df
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (544 of 544 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/zh_Hant/
2026-04-26 21:53:01 +00:00
Wit Krittawit
6fd7d4e1cb
Translated using Weblate (Thai)
Currently translated at 93.9% (510 of 543 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/th/
2026-04-26 21:53:01 +00:00
idezentas
ac9c49a7b3
Translated using Weblate (Turkish)
Currently translated at 99.8% (542 of 543 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/tr/
2026-04-26 21:53:01 +00:00
Priit Jõerüüt
e06170919c
Translated using Weblate (Estonian)
Currently translated at 100.0% (543 of 543 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/et/
2026-04-26 21:53:01 +00:00
danpergal84
6d895042d8
Translated using Weblate (Spanish)
Currently translated at 100.0% (543 of 543 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/es/
2026-04-26 21:53:01 +00:00
jbrek
f42ed8bb09
Translated using Weblate (Thai)
Currently translated at 95.3% (517 of 542 strings)

Translation: Wholphin/Wholphin
Translate-URL: https://translate.codeberg.org/projects/wholphin/wholphin/th/
2026-04-26 21:53:01 +00:00