Exciting features like lyrics and media segments are now available, along with significant improvements to subtitles and more in version 0.18 of the Jellyfin for Android TV app. Read the blog post to learn about the changes in this release, or read the changelog below.
If you appreciate my work, you can show your support with a donation trough GitHub sponsors. Your support helps me continue improving and growing the app. Thank you!
π Highlights
- Remove custom subtitle renderer #3825, by @nielsvanvelzen
- Implement My media (small) home section #4011, by @nielsvanvelzen
- Implement media segments #4052, by @nielsvanvelzen
- Rewrite all subtitle behavior #4094, by @nielsvanvelzen
- Implement lyrics #4107, by @nielsvanvelzen
- Add experimental Trickplay implementation #4172, by @nielsvanvelzen
ποΈ Enhancements
- Upgrade ConnectHelpAlertFragment to Jetpack Compose #3596, by @pascalwei
- Add option to customize seek time #3794, by @kabel2
- Add developer preference to prefer FFmpeg for audio decoding #3818, by @rickysixx
- Support float preferences #3824, by @nielsvanvelzen
- Rewrite media queuing #3833, by @nielsvanvelzen
- Set seek parameter for D-Pad to 10 seconds #3928, by @ericleb010
- Add resolution codec check #3953, by @MichaelRUSF
- Avoid baking subtitles when transcoding #3980, by @nielsvanvelzen
- Increase amount of home sections from 7 to 10 #4012, by @nielsvanvelzen
- Add preference for default zoom mode #4020, by @JagerSprinkles
- Add preference to delay start of video #4025, by @JagerSprinkles
- Add flow support for elements #4031, by @nielsvanvelzen
- Rewrite NowPlayingView in compose #4033, by @nielsvanvelzen
- Initial Jellyfin 10.10 support #4040, by @nielsvanvelzen
- Don't skip media segments shorter than 1 second #4064, by @nielsvanvelzen
- Add "ask to skip" media segment action #4068, by @nielsvanvelzen
- Use "Ask to skip" by default for intros and outros #4111, by @nielsvanvelzen
- Hide video player controls by default #4119, by @nielsvanvelzen
- Consider artist images before album artist images #4142, by @nielsvanvelzen
- Consider artist names before album artist names #4143, by @nielsvanvelzen
- Add additional information to PlaybackStartInfo #4147, by @nielsvanvelzen
- Use percentage seekbar for subtitle text size #4175, by @nielsvanvelzen
- Upgrade to Coil 3 #4190, by @nielsvanvelzen
- Unset playing item once the playback queue ends #4221, by @nielsvanvelzen
π₯ Crash fixes
- Fix player crashing when playback failed #4150, by @nielsvanvelzen
- Catch errors when reporting playback state #4171, by @nielsvanvelzen
- Fix ImageProvider always throwing #4195, by @nielsvanvelzen
π§ Bugfixes
- Fix RewriteMediaManager emitting onQueueStatusChanged with a queue when there is no audio items available #3839, by @nielsvanvelzen
- Fix queue not advancing #4030, by @nielsvanvelzen
- Fix VLC marked as watched #4032, by @MichaelRUSF
- Fix Detekt max line length not matching Editorconfig #4058, by @nielsvanvelzen
- Fix skipping to next episode #4072, by @nielsvanvelzen
- Fix PlaybackController not always disabling default track #4098, by @nielsvanvelzen
- Automatically disable subtitles when baking fails #4112, by @nielsvanvelzen
- Fix adding music to existing queue #4117, by @nielsvanvelzen
- Sync custom controls with built-in controls in leanback overlay #4118, by @nielsvanvelzen
- Fix video restarting immediately when baking subtitles #4122, by @nielsvanvelzen
- Fix some issues with lyrics #4134, by @nielsvanvelzen
- Fix getSubtitleDeliveryMethod in StreamInfo always returning "Encoding" #4148, by @nielsvanvelzen
- Fix audio track selection when baking subtitles #4154, by @nielsvanvelzen
- Fix exo track id parsing for format change. #4164, by @reacocard
- Fix position on playback stop reporting when skipping to playback end #4167, by @nielsvanvelzen
- Fix sorting TV shows by last played #4168, by @nielsvanvelzen
- Catch errors when loading MediaSessionService artwork #4170, by @nielsvanvelzen
- Fix skipping to end of video reports wrong end time #4189, by @nielsvanvelzen
- Fix subtitle menu not always showing "None" as first item #4196, by @nielsvanvelzen
- Fix skipping to end of video reports wrong end time #4197, by @nielsvanvelzen
- Use relative index matching for subtitle selection #4201, by @nielsvanvelzen
- Never load PGS externally #4202, by @nielsvanvelzen
- Fix player UI not hiding automatically #4203, by @nielsvanvelzen
- Really never load PGS externally #4206, by @MichaelRUSF
- Refactor subtitle profiles to be more readable #4210, by @nielsvanvelzen
- Fix background of album in now playing screen when lyrics are displaying #4211, by @nielsvanvelzen
- Fix audio now playing screen always showing "1 of x" instead of the actual queue position #4217, by @nielsvanvelzen
- Specify fields in resumePlayback() API request #4248, by @nielsvanvelzen
π Refactoring
- Fix typos #3811, by @starsep
- Use device profile builder in jellyfinPlugin #3893, by @nielsvanvelzen
- Remove DeviceUtils #4071, by @nielsvanvelzen
- Update package for Koin viewModel import #4082, by @nielsvanvelzen
- Rewrite usages of QueueEntry in UI #4110, by @nielsvanvelzen
- Rewrite reporting helper with SDK #4115, by @nielsvanvelzen
- Remove runBlocking usage in HomeRowsFragment #4169, by @nielsvanvelzen
π‘ Everything else
- Update dependency org.jellyfin.sdk:jellyfin-core to v1.6.3 #4228, by @nielsvanvelzen
π Dependency updates
- Update actions/setup-java action by renovate[bot] v4.5.0 #4105, v4.3.0 #3979, v4.2.2 #3832
- Update Kotlin by renovate[bot] v2.0.21 #4066, v1.9.0 - autoclosed #3989, v2.0.10 #3843
- Update gradle/actions action by renovate[bot] v4.2.1 #4227, v4.0.1 #3938, v4 #3857
- Update com.android.tools.build:gradle by renovate[bot] v8.7.2 #4135, v8.7.1 #4042, v8.6.1 #3998, v8.6.0 #3948, v8.5.2 #3866
- Update gradle by renovate[bot] v8.11.1 #4236, v8.11 #4194, v8.10.2 #4017, v8.10.1 - autoclosed #3976, v8.10 #3897
- Update github/codeql-action action by renovate[bot] v3.27.5 #4237, v3.27.2 #4200, v3.27.1 #4184, v3.26.13 #4075, v3.26.8 #4008, v3.26.5 #3927, v3.26.4 #3920, v3.26.3 #3912
- Update aboutlibraries to v11.2.3 #3925, by renovate[bot]
- Update com.android.tools:desugar_jdk_libs by renovate[bot] v2.1.3 #4181, v2.1.2 #3960, v2.1.1 #3944, v2.1.0 #3935
- Update org.jetbrains.kotlinx:kotlinx-serialization-json by renovate[bot] v1.7.3 #4009, v1.7.2 #3945
- Update androidx.fragment by renovate[bot] v1.8.5 #4123, v1.8.4 - autoclosed #4043, v1.8.3 #3962
- Update androidx.lifecycle by renovate[bot] v2.8.7 #4124, v2.8.6 #4001, v2.8.5 #3963
- Update androidx.activity:activity by renovate[bot] v1.9.3 #4083, v1.9.2 #3964
- Update androidx.compose.foundation:foundation by renovate[bot] v1.7.5 #4125, v1.7.4 #4084, v1.7.3 #4044, v1.7.2 #4002, v1.7.1 #3982, v1.7.0 #3965
- Update androidx.compose.ui:ui-tooling by renovate[bot] v1.7.5 #4126, v1.7.4 #4087, v1.7.3 #4045, v1.7.2 - autoclosed #4003, v1.7.1 #3983, v1.7.0 #3966
- Update dependency io.gitlab.arturbosch.detekt to v1.23.7 #3974, by renovate[bot]
- Update acra by renovate[bot] v5.12.0 #4153, v5.11.4 #3990
- Update koin to v4 (major) #3996, by renovate[bot]
- Update dependency androidx.startup:startup-runtime to v1.2.0 #4004, by renovate[bot]
- Update dependency ubuntu to v24 #4024, by renovate[bot]
- Update actions/upload-artifact action to v4.4.3 #4061, by renovate[bot]
- Update dependency io.mockk:mockk to v1.13.13 #4063, by renovate[bot]
- Update org.jellyfin.sdk:jellyfin-core by renovate[bot] v1.6.2 #4222, v1.6.1 #4152, v1.6.0 #4108
- Update dependency androidx.constraintlayout:constraintlayout to v2.2.0 #4127, by renovate[bot]
- Update dependency io.coil-kt.coil3:coil-gif to v3.0.3 #4215, by renovate[bot]
- Update appleboy/ssh-action action to v1.2.0 #4223, by renovate[bot]
- Update coil to v3.0.4 #4247, by renovate[bot]
- chore(deps): update ci dependencies #3814, by renovate[bot]
- Update CI dependencies #3847, by renovate[bot]
- Update CI dependencies #3947, by renovate[bot]
- Update CI dependencies #3987, by renovate[bot]
- Update CI dependencies #4019, by renovate[bot]
- Update CI dependencies #4036, by renovate[bot]
- Update CI dependencies #4102, by renovate[bot]
- Update CI dependencies #4204, by renovate[bot]