Releases: jellyfin/jellyfin-androidtv
v0.16.0-beta.1
The initial beta for version 0.16 is here! This release brings a new music playback backend and optimizes a lot of code to make future changes easier. A blog post with more details and screenshots will be available on release.
If you appreciate my work, you can support me by donating via GitHub sponsors.
π Beta information
Beta versions are not guaranteed to work as expected. We encourage users to create detailed bug reports if any problems arise. Read our blog post for more information about our Android beta programs.
π Highlights
- Show resumable episodes in smart screen for shows #2361, by @Clubfan22
- Show currently playing music on screensaver #2512, by @nielsvanvelzen
- Add in-app screensaver #2539, by @nielsvanvelzen
- Add separate buttons for artists and album artists in music smart screen #2667, by @nielsvanvelzen
ποΈ Enhancements
- Add AV1 direct play support. #2392, by @MWisBest
- Add playback rewrite backend and plugin systems #2401, by @nielsvanvelzen
- Add media management preference #2415, by @nielsvanvelzen
- Add ExoPlayer backend to playback rewrite #2427, by @nielsvanvelzen
- Add PlaySessionService to playback rewrite #2428, by @nielsvanvelzen
- Update playback module with SDK 1.4.1 changes #2441, by @nielsvanvelzen
- Add option to enable playback rewrite for audio #2455, by @nielsvanvelzen
- Add MediaSessionPlugin to playback rewrite #2457, by @nielsvanvelzen
- adds "shuffle with" button if "always ask" is selected as preferred player. #2459, by @tim-vk
- Add PlaybackManagerOptions for defaultRewindAmount and defaultFastForwardAmount #2473, by @nielsvanvelzen
- Update item delete confirm message string #2477, by @nielsvanvelzen
- Rewrite LibraryDreamService with Compose #2498, by @nielsvanvelzen
- Improve Android TV home screen recommendations #2515, by @OctoNezd
- Remove playlist creation from NowPlaying screen #2523, by @nielsvanvelzen
- Update "Latest" media labels to be "Recently Added" #2549, by @thornbill
- Always use getQuantityString() for time units #2553, by @nielsvanvelzen
- Fix all string capitalization #2563, by @nielsvanvelzen
- Use plurals for amount of tracks in album / episodes in season #2571, by @nielsvanvelzen
- Explicitly use JDK 17 through gradle toolchains #2572, by @DavidFair
- Add blurHashPainter composable #2585, by @nielsvanvelzen
- Remove watched indicator from empty series #2589, by @nielsvanvelzen
- Add media manager implementation using new playback module #2593, by @nielsvanvelzen
- Add androidx.media2 MediaSessionService implementation #2594, by @nielsvanvelzen
- Update and specify full action versions #2600, by @1337joe
- Add (experimental) reactive homepage #2644, by @nielsvanvelzen
- Fix BaseItemInfoRow not showing for persons #2659, by @nielsvanvelzen
- Rewrite GridButton with Compose #2670, by @nielsvanvelzen
- Remove BaseProfile #2691, by @nielsvanvelzen
- Migrate search to SDK to fix cancellation issues #2727, by @polson
- Fix screensaver support in video player #2749, by @nielsvanvelzen
- Migrate ExoPlayer to StyledPlayerView #2754, by @nielsvanvelzen
- Add playback order support to playback rewrite #2783, by @nielsvanvelzen
- Enable playback rewrite by default for music #2802, by @nielsvanvelzen
- Rewrite media session code with androidx.media3 #2803, by @nielsvanvelzen
- Add repeat mode to playback rewrite #2810, by @nielsvanvelzen
- Update unsupported server messages #2815, by @nielsvanvelzen
- Add volume state to playback rewrite #2817, by @nielsvanvelzen
- Use fast forward & rewind durations from preferences #2825, by @nielsvanvelzen
- Replace Glide with Coil #2889, by @nielsvanvelzen
- Remove AccountManager support #2890, by @nielsvanvelzen
- Add preference to disable device type detection notification #2892, by @nielsvanvelzen
- Improve codec info #2893, by @mohd-akram
- Add music progress to screensaver #2922, by @nielsvanvelzen
π₯ Crash fixes
- Revert "Update dependency com.android.tools:desugar_jdk_libs to v2.0.1" #2468, by @nielsvanvelzen
- Fix screensaver crash when loading an invalid backdrop image #2567, by @nielsvanvelzen
- Fix crash when player controls are auto-hiding while closing the player #2848, by @nielsvanvelzen
- Fix application crash on startup #2884, by @nielsvanvelzen
- Fix crash when switching users while playing music #2923, by @nielsvanvelzen
π§ Bugfixes
- Ignore missing notification permission from Glide #2422, by @teobaranga
- Fix crash when scaleType is null in AsyncImage #2554, by @nielsvanvelzen
- Fix missing background in DreamContentLogo #2560, by @nielsvanvelzen
- Fix playback rewrite audio queue in UI #2649, by @nielsvanvelzen
- Disable MPEG transport stream container in ExoPlayer #2695, by @nielsvanvelzen
- Fix ExoPlayer extensions not used for music playback #2711, by @nielsvanvelzen
- Remove old screen locks #2746, by @nielsvanvelzen
- Fix HomeFragmentLatestRow using wrong import for runBlocking function #2747, by @nielsvanvelzen
- Add fallback image to LeanbackChannelWorker #2753, by @nielsvanvelzen
- Fix app closing when media finishes playing #2756, by @nielsvanvelzen
- Use navigation.goBack instead of activity finish in FullDetailsFragment #2757, by @nielsvanvelzen
- Fix view binding leak in fragments #2763, by @nielsvanvelzen
- Fix BackgroundService flickering #2773, by @nielsvanvelzen
- Disable custom key handling when using playback rewrite #2804, by @nielsvanvelzen
- Fix navigation reset called during back stack pop call #2869, by @nielsvanvelzen
- Add missing view action to StartupActivity #2879, by @nielsvanvelzen
- Fix video player background not black #2895, by @nielsvanvelzen
π Refactoring
- Remove gradlew-update.yaml workflow #2445, by @nielsvanvelzen
- Split MediaManager into interface and implementation #2453, by @nielsvanvelzen
- Split MediaManager into MediaManager and VideoQueueManager #2458, by @nielsvanvelzen
- Remove selected photo item from MediaManager and do some more cleaning #2461, by @nielsvanvelzen
- Replace sharedViewModel with activityViewModel #2518, by @nielsvanvelzen
- Replace deprecated Bundle.get with Bundle.getParcelable #2519, by @nielsvanvelzen
- Replace deprecated ExistingPeriodicWorkPolicy.REPLACE with ExistingPeriodicWorkPolicy.UPDATE #2524, by @nielsvanvelzen
- Refactor CustomPlaybackTransportControlGlue to extract logic into actions #2569, by @DavidFair
- Remove some unused drawables/strings/layouts #2570, by @nielsvanvelzen
- Use ItemRowAdapterHelperKt.setItems for NextUpQuery in ItemRowAdapter #2641, by @nielsvanvelzen
- Rewrite background service UI with compose #2652, by @nielsvanvelzen
- Enable nonTransitiveRClass #2664, by @nielsvanvelzen
- Enable nonFinalResIds #2665, by @nielsvanvelzen
- Migrate video player & next up screen to fragments #2745, by @nielsvanvelzen
- Inline validateAuthentication extension into MainActivity #2758, by @nielsvanvelzen
- Use context in ItemLauncher #2760, by @nielsvanvelzen
- Migrate some activity usages to context #2761, by @nielsvanvelzen
- Use view binding in MainActivity & StartupActivity #2762, by @nielsvanvelzen
- Remove left over search hint code #2772, by @nielsvanvelzen
- Replace XML menus with Kotlin #2779, by @nielsvanvelzen
- Convert queue service to core functionality #2801, by @nielsvanvelzen
- Remove unused ProcessLifecycleInitializer #2880, by @nielsvanvelzen
- Use data object in sealed interfaces #2920, by @nielsvanvelzen
- Replace flow.collect usages with onEach & launchIn #2925, by @nielsvanvelzen
π‘ Everything else
- Add androidx.compose.compiler to libraries section in version catalog #2491, by @nielsvanvelzen
- Revert "Update aboutlibraries to v10.6.0" #2520, by @nielsvanvelzen
- Enable Renovate dependency dashboard #2774, by @nielsvanvelzen
π Dependency updates
- Update dependency io.gitlab.arturbosch.detekt to v1.23.1 #2921, by @renovate[bot]
- Update aboutlibraries to v10.8.3 #2898, by @renovate[bot]
- Update github/codeql-action digest to 16964e9 #2583, by @renovate[bot]
- Update Gradle Wrapper from 7.5.1 to 7.6 #2294, by @jellyfin-bot
- Update dependency io.mockk:mockk to v1.13.5 #2656, by @renovate[bot]
- Update actions/setup-java digest to 3f07048 #2482, by @renovate[bot]
- Update appleboy/ssh-action action to v1 #2907, by @renovate[bot]
- Update actions/checkout digest to ac59398 #2339, by @renovate[bot]
- Update actions/stale action to v8 #2606, by @renovate[bot]
- Update actions/upload-artifact digest to 0b7f8ab #2388, by @renovate[bot]
- Update dependency androidx.compose.ui:ui-tooling to v1.4.3 #2736, by @renovate[bot]
- Update dependency androidx.appcompat:appcompat to v1.6.1 #2483, by @renovate[bot]
- Update dependency com.android.tools.build:gradle to v8.1.0 #2910, by @renovate[bot]
- Update dependency com.android.tools:desugar_jdk_libs to v2.0.3 #2628, by @renovate[bot]
- Update dependency com.google.devtools.ksp to v1.8.20-1.0.11 #2673, by @renovate[bot]
- Update kotest to v5.6.2 #2750, by @renovate[bot]
- Update koin to v3.4.2 #2822, by @renovate[bot]
- Update dependency androidx.work:work-runtime-ktx to v2.8.1 #2610, by @renovate[bot]
- Update dependency io.insert-koin:koin-androidx-compose to v3.4.4 #2674, by @renovate[bot]
- Update dependency gradle to v8.2.1 #2887, by @renovate[bot]
- Update dependency androidx.compose.compiler:compiler to v1.5.1 #2912, by @renovate[bot]
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.5.0 #2536, by @renovate[bot]
- Update glide to v4.15.1 #2590, by @renovate[bot]
- Update gradle/gradle-build-action digest to 6095a76 #2544, by @renovate[bot]
- Update androidx-lifecycle to v2.6.1 #2607, by @renovate...
v0.15.11
ποΈ Enhancements
- Add more logging to authentication code #2850, by @nielsvanvelzen
- Show UI mode notification on startup screen #2864, by @nielsvanvelzen
π§ Bugfixes
- focus back on versions button when selecting a version #2819, by @StubbyB
- Fix horizontal grid position resetting on resume #2862, by @nielsvanvelzen
Contributors
v0.15.10
ποΈ Enhancements
- Fix InfoLayoutHelper not using first video stream, update details when selecting version #2812, by @StubbyB
π₯ Crash fixes
- Fix rare race condition crash in HomeFragment #2780, by @nielsvanvelzen
- Fix race condition in HomeFragment causing a crash #2805, by @nielsvanvelzen
π§ Bugfixes
- Hide SSA tags from SRT subtitles #2741, by @nielsvanvelzen
- Fix PictureViewerFragment using activityViewModel #2770, by @nielsvanvelzen
- Fix playback of seasons with external player #2786, by @nielsvanvelzen
- Fix Live TV progress reporting #2816, by @nielsvanvelzen
- Fix ItemLauncher retrieving base item via from media manager when launching a photo #2818, by @nielsvanvelzen
π Dependency updates
- Update dependency com.google.android.exoplayer:exoplayer to v2.18.7 #2771, by @renovate[bot]
- Update dependency org.jellyfin.exoplayer:exoplayer-ffmpeg-extension to v2.18.7+1 #2775, by @renovate[bot]
Contributors
v0.15.9
v0.15.8
ποΈ Enhancements
- Allow changing the (a)ac3 bitstreaming option on all devices #2716, by @nielsvanvelzen
π§ Bugfixes
- Fix ExpandableTextView cutting content #2709, by @nielsvanvelzen
- Fix ExoPlayerProfile not always listing SubRip and SRT as external #2710, by @nielsvanvelzen
- Fix ExoPlayer extensions not used for music playback (backport) #2712, by @nielsvanvelzen
- Add support for retrieving resume items in BaseRowAdapter using the SDK #2723, by @nielsvanvelzen
π Dependency updates
- Update dependency org.jellyfin.sdk:jellyfin-core to v1.4.2 #2704, by @renovate[bot]
- Update dependency org.jellyfin.exoplayer:exoplayer-ffmpeg-extension to v2.18.6+1 #2714, by @renovate[bot]
Contributors
- @nielsvanvelzen
- @renovate[bot]
v0.15.7
This release adds support for PGS and DVB subtitles without transcoding.
ποΈ Enhancements
- Enable PGS subtitles in ExoPlayer #2690, by @nielsvanvelzen
- Enable DVB subtitles in ExoPlayer #2694, by @nielsvanvelzen
π₯ Crash fixes
- Fix app crash when playback stop is requested without an active player #2668, by @nielsvanvelzen
π§ Bugfixes
- Fix offsetStreamIndex when selecting last track #2692, by @nielsvanvelzen
- Fix support for switching embedded subtitle tracks in ExoPlayer #2693, by @nielsvanvelzen
π Dependency updates
Contributors
- @nielsvanvelzen
- @renovate[bot]
v0.15.6
The Jellyfin Android TV app is now available on F-Droid π.
ποΈ Enhancements
- Add F-Droid badge to README #2635, by @nielsvanvelzen
π₯ Crash fixes
- Fix screenOrientation not set for PreferencesActivity #2629, by @nielsvanvelzen
π§ Bugfixes
- Save accounts to account manager by address #2591, by @nielsvanvelzen
- Fix app closing when music queue ends #2621, by @nielsvanvelzen
- Fix "null" on Live TV guide "load channels" button #2634, by @nielsvanvelzen
Contributors
v0.15.5
This update resets your choice for the "automatic sign in" option in some cases and you might need to select your account once after updating.
π§ Bugfixes
- Accept KEYCODE_ENTER as alt to KEYCODE_CENTER #2547, by @DavidFair
- Add IncludeType param when sending number query #2556, by @omerinero
- Add workaround for non reproducible baseline profiles in AGP #2558, by @nielsvanvelzen
- Fix SearchFragment not restoring properly #2564, by @nielsvanvelzen
- Always check server id when retrieving user data from AccountManagerStore #2587, by @nielsvanvelzen
π Dependency updates
Contributors
v0.15.4
ποΈ Enhancements
- Mark LibVLC as experimental #2534, by @nielsvanvelzen
π₯ Crash fixes
- Fix rare picture viewer crash when album is empty #2469, by @nielsvanvelzen
π§ Bugfixes
- Fix old items are shown when new filter is applied. #2472, by @tim-vk
- Don't show "invalid credentials" message when authentication fails with an SDK exception #2517, by @nielsvanvelzen
- Only attach background service in activities #2542, by @nielsvanvelzen
- Fix theme not applied before creating views #2543, by @nielsvanvelzen
π Dependency updates
Contributors
v0.15.3
ποΈ Enhancements
- Increase amount of logs added to crash reports #2420, by @nielsvanvelzen
π§ Bugfixes
- Use HEADER_ACCEPT from SDK as Glide Accept header value #2442, by @nielsvanvelzen
- Change opening menu to ACTION_UP instead of ACTION_DOWN #2443, by @nielsvanvelzen
π Dependency updates
- Update dependency org.jellyfin.sdk:jellyfin-core to v1.4.1 #2440, by @renovate[bot]
Noteworthy changes:- Explicitly set Accept header in KtorClient
- Increase default socket timeout value to 30 seconds
- Update OpenAPI to 10.8.9
Contributors
- @nielsvanvelzen
- @renovate[bot]