Commit Graph
2948 Commits
Author SHA1 Message Date
DyingSlacker 0cf4726563 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/zh_Hans/
2026-06-27 12:47:32 +00:00
serzh-photograf 55390921ee Translated using Weblate (Ukrainian)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/uk/
2026-06-27 12:47:32 +00:00
Gargotaire 58f361fa8e Translated using Weblate (Catalan)
Currently translated at 96.1% (150 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/ca/
2026-06-27 12:47:32 +00:00
Lofuuzi 6dc38f129d Translated using Weblate (Cantonese (Traditional Han script))
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/yue_Hant/
2026-06-27 12:47:32 +00:00
Thunderstrike116 c201745973 Translated using Weblate (Greek)
Currently translated at 87.8% (137 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/el/
2026-06-27 12:47:32 +00:00
Antonio Toledo f9616b0e81 Translated using Weblate (Spanish)
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/es/
2026-06-27 12:47:32 +00:00
Szilki077 ad1b8e1a0b Translated using Weblate (Hungarian)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/hu/
2026-06-27 12:47:32 +00:00
Fjuro 4d2f7cec55 Translated using Weblate (Czech)
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/cs/
2026-06-27 12:47:32 +00:00
Kityn 1de8acac18 Translated using Weblate (Polish)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/pl/
2026-06-27 12:47:31 +00:00
Ayaz Abdulazimli 3c095a842b Translated using Weblate (Azerbaijani)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/az/
2026-06-27 12:47:31 +00:00
Rui Rodrigues de Andrade 677ca3c88b Translated using Weblate (Portuguese (Portugal))
Currently translated at 91.0% (142 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/pt_PT/
2026-06-27 12:47:31 +00:00
myrad2267 f0aec22bfb Translated using Weblate (French)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/fr/
2026-06-27 12:47:31 +00:00
nenadsuperzmaj eef9ecd829 Translated using Weblate (Serbian)
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/sr/
2026-06-27 12:47:31 +00:00
queeup 1b60abbafd Translated using Weblate (Turkish)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/tr/
2026-06-27 12:47:31 +00:00
MrPlow 539be09758 Translated using Weblate (German)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/de/
2026-06-27 12:47:31 +00:00
Maltavius 3dd49c0c8e Translated using Weblate (Swedish)
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/sv/
2026-06-27 12:47:31 +00:00
Bas 3ddc16205e Translated using Weblate (Dutch)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/nl/
2026-06-27 12:47:31 +00:00
Vasile Cristian-Ilie 977474d42c Translated using Weblate (Romanian)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/ro/
2026-06-27 12:47:30 +00:00
Translation expert edff0dde92 Translated using Weblate (Arabic)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/ar/
2026-06-27 12:47:30 +00:00
Andi Chandler 28b6c5f160 Translated using Weblate (English (United Kingdom))
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/en_GB/
2026-06-27 12:47:30 +00:00
Thadah D. Denyse f0e667c511 Translated using Weblate (Basque)
Currently translated at 92.3% (144 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/eu/
2026-06-27 12:47:30 +00:00
Pavel Miniutka 3607690171 Translated using Weblate (Belarusian)
Currently translated at 87.1% (136 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/be/
2026-06-27 12:47:30 +00:00
hoanghuy309 46d62efa46 Translated using Weblate (Vietnamese)
Currently translated at 96.7% (151 of 156 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/vi/
2026-06-27 12:47:30 +00:00
Weblate d1a0cc261a Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/
2026-06-27 12:42:20 +00:00
Niels van Velzen a98457b0a0 Add multi-select deletion to downloads 2026-06-27 14:42:15 +02:00
Niels van Velzen 2ace128505 Fix media session crash when playing audio 2026-06-27 14:41:12 +02:00
Niels van Velzen fa3f97f5c1 Fix crash when double tapping connect button 2026-06-27 14:41:03 +02:00
Niels van Velzen dde3d88f60 Fix PiP behavior 2026-06-27 14:40:56 +02:00
Kyle Farnung b4d4837fda Retry playback with fallback on source errors
**Changes**
When Exoplayer is used on the Android app it lets the server decide
which mode to use (direct play, direct stream, or transcode) based on
the device and content. If the content contains formats incompatible
with ExoPlayer (like compressed PGS subtitles), it will fail to load the
source. On the Android TV app it shows a similar source error in this
case, but still plays successfully. Checking the server shows that the
content is being remuxed without the subtitles, resolving the issue.
Similarly, enabling subtitles in the player forces a transcode that
allows the content to play.

This change adds similar fallback behavior, but it attempts to play the
highest quality stream on transient errors (like network flakiness).
This approach is based on
https://github.com/jellyfin/jellyfin-androidtv/pull/3916 and the
follow-up fix https://github.com/jellyfin/jellyfin-androidtv/pull/4999.

The retry workflow:
1. Try again without restrictions: it might have been a transient error
2. Try disabling direct play: maybe the container was an issue
3. Finally try transcoding when nothing else worked

The last error time is captured to reset the retry count after 30
seconds have elapsed. This should hopefully be enough time to avoid
falling back unnecessarily for transient issues. Retries will always
start with unrestricted again to maximize the quality and minimize the
stress on the server. Intentional track changes (audio or subtitle) also
reset the retry budget, since those are user-initiated reloads rather
than errors.

There's a race condition between retries in which the queue could try to
change the source. This is handled via coroutine cancellation. There's
still a small race which could cause the media from the current retry to
load briefly before the source change starts. This should be
self-correcting in practice.

**Issues**
Fixes #1931
2026-06-27 11:23:25 +02:00
Tal Sarid b7b14db731 Add Trickplay view over the seekbar in ExoPlayer (#1951)
* Add Trickplay view over the seekbar

* Fix a crash on protrait mode when the screen is narrow

* Improve style fidelity to the web-player trickplay view

* Resolve github-advanced-security bot comments

* Fix linter issues
2026-06-27 10:29:13 +02:00
MrPlow 09ae3ad07f Translated using Weblate (German)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/de/
2026-06-25 15:26:48 +00:00
Gargotaire b5f5658727 Translated using Weblate (Catalan)
Currently translated at 99.3% (152 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/ca/
2026-06-24 21:26:23 +00:00
hoanghuy309 3b483399fd Translated using Weblate (Vietnamese)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android-fastlane/vi/
2026-06-24 06:26:22 +00:00
hoanghuy309 3325dbe2b4 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/vi/
2026-06-24 06:26:22 +00:00
Vasile Cristian-Ilie 5d94836e6a Translated using Weblate (Romanian)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/ro/
2026-06-23 08:44:37 +00:00
Rui Rodrigues de Andrade 16c0d50858 Translated using Weblate (Portuguese (Portugal))
Currently translated at 94.1% (144 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/pt_PT/
2026-06-23 00:26:22 +00:00
Rui Rodrigues de Andrade 13df666674 Translated using Weblate (Portuguese (Portugal))
Currently translated at 84.9% (130 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/pt_PT/
2026-06-22 20:55:04 +00:00
Rohith 57b6789ece Translated using Weblate (Kannada)
Currently translated at 50.0% (2 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android-fastlane/kn/
2026-06-22 16:26:22 +00:00
Rohith 87902c99c8 Translated using Weblate (Kannada)
Currently translated at 39.2% (60 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/kn/
2026-06-22 16:26:22 +00:00
serzh-photograf 5b0da131f3 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/uk/
2026-06-22 16:26:22 +00:00
Thunderstrike116 dfc0f597ee Translated using Weblate (Greek)
Currently translated at 90.8% (139 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/el/
2026-06-22 10:26:23 +00:00
Szilki077 cf1e237390 Translated using Weblate (Hungarian)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/hu/
2026-06-22 10:26:22 +00:00
myrad2267 41895f8eee Translated using Weblate (French)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/fr/
2026-06-22 00:52:06 +00:00
Ayaz Abdulazimli f2ef4954af Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android-fastlane/az/
2026-06-21 23:26:25 +00:00
Ayaz Abdulazimli 600c6e3101 Translated using Weblate (Azerbaijani)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/az/
2026-06-21 23:26:25 +00:00
Maxr1998 aa2172880a Use DefaultMediaSourceFactory instead of manually picking factories
This fixes external subtitles not working anymore due to the deprecation of SingleSampleMediaSource, and greatly simplifies the QueueManager code.
2026-06-20 17:35:59 +02:00
Bas b04efbe470 Translated using Weblate (Dutch)
Currently translated at 100.0% (153 of 153 strings)

Translation: Jellyfin Android/Jellyfin Android
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android/nl/
2026-06-20 15:35:35 +00:00
Niels van Velzen 0f3230ffe8 Use transaction for queued downloads query 2026-06-20 17:02:10 +02:00
Maxr1998 6be3652bdc Fix external subtitle selection
A recent (?) AndroidX Media3 update caused MergingMediaPeriod to prepend the period ID to the track format's id, breaking the actual track selection. Only matching the substring fixes selecting external subtitles.
2026-06-20 17:01:53 +02:00
Niels van Velzen e637337eff Store user playback position in MediaItem extras to avoid extra API call v2.7.0-beta.1 2026-06-20 16:25:10 +02:00