github MakD/AFinity v0.12.01-beta

2 hours ago

Important

Starting v0.12.00-beta, AFinity requires Jellyfin 12.0 or newer.
If you're still on Jellyfin 10.x, stay on v0.10.10-beta until you upgrade.

New features

Modern detail page layout. An optional second layout for item pages, chosen in Settings → Appearance → Detail Page Layout. Ratings become a row of chips, and directors, writers, producers, audio, subtitles and links are gathered into one panel instead of separate rows. Classic stays the default.

Where to Watch. Item pages show which services stream, rent or sell a title in your region, including free and ad-supported options, with data from JustWatch. It uses your device's region and needs a TMDB API key.

More to explore on detail pages. "Starring …" and "More in …" rows suggest other titles from your library by lead actor and genre. Collections and people pages gain a "Not in your library" row with the missing films of a collection and the rest of a person's work. Signed in to Seerr, tapping one opens it there to request; otherwise it opens on TMDB.

Audiobookshelf item pages. Narrators, an author card with how many of their titles you have, "Your listening" stats (time listened, sessions, last played, listening days), and "More by" and "Narrated by" rows. Chapters are listed on the page with the ones you've heard folded away. Podcasts get an Up Next card offering Continue listening, Next unplayed, Latest episode or First episode, and remember the episode order you pick for each show.

Continuous podcast playback. Podcast episodes now play one after another in your chosen order, with progress saved for each episode. It works offline too, using downloaded episodes.

Seerr requests. A separate "Request in 4K" button appears on titles already requested or available in HD, when your Seerr server has 4K enabled and your account is allowed to use it. The request dialog lets you pick the root folder and shows free space on each; anime series pick up the anime defaults set in Seerr (profile, folder, language profile and tags), and when a request fails, the dialog shows Seerr's own error message.

Improvements

  • The app starts faster. The home screen no longer waits for favourites, the watchlist, genres and studios, and that background work is limited to two requests at a time on its own connection so it doesn't compete with what's on screen.
  • Favourites and Watchlist counts in the navigation bar appear immediately on launch.
  • The home screen no longer jumps when the hero carousel loads.
  • Continue Watching, Next Up and Latest ask the server for less data, and duplicate library requests at startup are merged into one.
  • The Live TV guide loads in a single request, "On Now" asks the server only for what is currently airing, and genres are fetched once instead of once per library.
  • Player controls do less work while a video is playing, which makes them smoother.
  • Audiobookshelf descriptions keep their paragraphs, bold and italics, and Audible ratings are looked up in your regional Audible store.
  • Audiobookshelf libraries have proper empty states, with a "Show All" button when a letter filter matches nothing.
  • The Seerr sign-in sheet switches between a Jellyfin account and a Seerr account with a single link.
  • Updated Kotlin, Navigation, WorkManager and Coil.
  • Updated translations: Swedish, Russian, Hungarian, Italian and German.

Fixes

  • Fixed a crash when opening movie and show pages in several languages, including German, French, Spanish, Italian, Dutch, Polish, Portuguese, Hungarian and Turkish (#233).
  • Fixed metadata edits failing to save on Jellyfin 12.1.
  • Downloaded episodes, movies and music tracks are now played from the device when they come up in a queue, playlist or collection, instead of being streamed. This also makes them work offline.
  • Resuming after an "End of item" sleep timer that stopped at the credits now marks the episode as watched and moves to the next one, instead of playing the credits again.
  • Dismissing the picture-in-picture window now stops playback straight away.
  • Images changed on the server now update in the app: series backdrops, thumbnails and logos on episodes, chapter images, artist pictures in albums and playlists, and user avatars.
  • Seerr: editing a request no longer clears its language profile and tags, changes made in the approval dialog are saved before the request is approved, and a request Seerr accepts without actually creating one is reported as a failure.
  • Seerr: fixed the quality profile showing as "Default" on TV requests.
  • Audiobookshelf: listening time is measured from actual playback time, so it is no longer over-reported, and time listened offline is uploaded once the server is reachable again.
  • Audiobookshelf: syncing offline progress no longer overwrites newer progress made on the device in the meantime.
  • Audiobookshelf: a library that was only partly cached is now refreshed instead of staying incomplete.
  • The "can't reach server" notice on Requests and Audiobooks pushes the content down instead of covering it.
  • Log viewer: the level filter shows only the selected level, the warning count no longer includes errors, and stack traces are no longer duplicated.

What's Changed

  • perf: optimize media queries, payload fields, and hero carousel loading by @MakD in 2066a47
  • fix: update log level filtering and sanitize ring buffer stack traces by @MakD in 7aef01a
  • perf: optimize Live TV guide querying, genre resolution, and UI state synchronization by @MakD in 2e7a155
  • feat: implement modern detail layout, watch providers, and external titles by @MakD in c88cc91
  • perf: optimize startup load times and introduce background work queue by @MakD in b9f1c9b
  • fix: prevent layout overlap when ServiceUnreachableBanner is displayed by @MakD in 90f4ac2
  • fix: add missing 'other' quantity items to localized plurals resources by @MakD in 43c4127
  • fix: explicitly set trickplay to null in Jellyfin item updates by @MakD in 81671df
  • feat: enhance Audiobookshelf item details, listening stats, and offline sync tracking by @MakD in a304b26
  • fix: integrate local source resolution into video and music playback queues by @MakD in 967cdd3
  • fix: handle sleep timer resume logic for outro skip events by @MakD in b1cbb62
  • feat: enhance Jellyseerr request management with 4K lanes, anime defaults, and root folder selection by @MakD in 62a48f7
  • feat: implement dynamic podcast playlist queueing and progress sync for Audiobookshelf by @MakD in d31c28a
  • fix: improve image URL generation and tag handling across media models by @MakD in 60c7c6b
  • fix: refine Picture-in-Picture dismissal logic in PlayerActivity by @MakD in 2373119
  • fix: improve Audiobookshelf library cache validation and empty state UI by @MakD in 0aae709
  • Translations update from Hosted Weblate by @weblate in #232
  • Translations update from Hosted Weblate by @weblate in #234
  • Translations update from Hosted Weblate by @weblate in #235
  • Translations update from Hosted Weblate by @weblate in #236
  • Translations update from Hosted Weblate by @weblate in #239

Full Changelog: v0.12.00-beta...v0.12.01-beta

Don't miss a new AFinity release

NewReleases is sending notifications on new releases.