Releases: MakD/AFinity
Releases · MakD/AFinity
Release list
v0.10.2-beta
Release Notes v0.10.2-beta
Critical Fixes
- Fixed a crash on the Audiobookshelf podcast library screen caused by large episode lists exceeding SQLite's CursorWindow. Episodes now use a dedicated table (DB v55).
- Fixed storage losing its primary volume on some devices (Xiaomi / Android 16). An internal-storage volume is synthesised when the system reports none.
Major Improvements
Update Security
- Downloaded update APKs are verified against a server-provided SHA-256 digest, and files that fail verification are deleted.
- Updates download to app-private storage, and stale or partial downloads are cleaned up beforehand.
- Downloaded APKs are re-validated on resume, so a deleted or modified file won't be installed.
Jellyseerr Discover Filters
- Filter sheet with release date, runtime, rating and vote-count thresholds, TV status, and TMDB keyword include/exclude.
- Watch-provider filtering with region detection.
- Sorting by popularity, release or air date, rating, and title.
- Filter and sort state persisted per user, server, and category (DB v56).
- Respects the server's Discover region and "hide available" settings. Filtering and sorting now also apply to Upcoming Movies and TV.
UI Standardisation
- Standardised shared UI components: snackbar, connection badge, switches, media cards, transport controls, and empty and loading states.
Music
- Playlists load via reactive Flows and update automatically on create and delete.
UI & Minor Updates
- Fixed inconsistent row heights and title alignment in Similar Items, Movie, and Box Set detail rows.
- Fixed pagination indicators being confined to a single grid cell instead of spanning the full width.
- Fixed a missing space in the "Narrated by" line on the Audiobookshelf item screen.
- Added a download icon to Jellyseerr request buttons.
- Updated the Settings screen to the current Material 3 adaptive layout APIs.
- Release builds fall back to the debug signing key when no
key.propertiesis present.
What's Changed
- Translations update from Hosted Weblate by @weblate in #174
- Translations update from Hosted Weblate by @weblate in #175
- Translations update from Hosted Weblate by @weblate in #176
- Translations update from Hosted Weblate by @weblate in #177
Full Changelog: v0.10.1-beta...v0.10.2-beta
Nightly 2026-07-08
Automated nightly build — 2026-07-08 (IST)
Changes
06b8e1ed ui: refactor watch provider layout in DiscoverFilterBottomSheet
36ad4a9e ui: modernize discover filters and update adaptive layout APIs
1a2bdd63 Translated using Weblate (Russian)
fb8384ab requests: implement accordion filter UI and enhance discovery synchronization
080d3953 Translated using Weblate (Russian)
0f7de470 jellyseerr: implement advanced filtering, sorting, and state persistence for discovery
1a0c123c ui: fix pagination indicator layout in media grids
b72cf0ec ui: implement reusable ConnectionIndicatorBadge and refactor server status UI
Caution
v0.10.1-beta
Release Notes — v0.10.1-beta
Critical Fixes
- Fixed account-switching races that could leak data between accounts
- WebSocket subscriptions auto-resubscribe after failures, with a full refresh on reconnect
- Fixed resource leaks in the update manager and MPV player release
Major Improvements
Real-Time Sync (new)
- Audiobookshelf — live sync (socket.io) for listening progress, new items, and series changes
- Jellyfin — pre-resolved media change events for faster UI updates; library scans refresh only on completion
- Favourites and watchlist sync automatically from external changes
Smarter Server Connections
- LAN address is now genuinely preferred at home — streams stay local instead of routing through the internet
- Local addresses work on Ethernet and VPN (docks, Android boxes, Tailscale subnet routing) instead of forcing offline mode
- Leaving WiFi mid-session swaps to the external URL promptly, even during fullscreen playback
- Connection indicator is consistent across the top bar and Settings, updates live, and turns red when the server is down — not just your internet
- Recognises Tailscale MagicDNS (
*.ts.net),.localhostnames, and IPv6; faster logins with no duplicate probing
Jellyseerr Requests
- New media detail screen: ratings, cast, collections, recommendations, similar titles
- Advanced request options: TVDB series matching, language profiles, tags, "Request as" another user
- Discover follows the server's Discover Sliders; request quotas with indicator, 4K and partial-request settings respected
Home Screen Rework
- Dynamic lazy-loaded sections that hydrate as you scroll, with shimmer placeholders
- Cache-first startup: sections render instantly from local cache, then refresh in the background
Audiobookshelf
- Dedicated library and series screens with "Browse" shortcuts on the Home tab
- Mark as Finished for books and individual podcast episodes
- Unheard-episode badges, incremental page loading, redesigned item header
Music
- Genre browsing with detail screen (Instant Mix, Shuffle, Radio)
- Radio with five modes: Similar, Continuous, Album Mix, Reshuffle, Random
- Playlist download progress, downloaded-track indicators, queue capacity raised to 5,000
Cast
- Chapter navigation with progress-slider markers
- "Auto" bitrate detection, AC3/EAC3 support, 4K @ 60 FPS profile constraints
Nightly Builds (new)
- Automated daily pre-releases installing alongside the beta as "AFinity Nightly", with in-app update checks
UI & Minor Updates
- Login tries multiple URL candidates (HTTP/HTTPS, common ports) with real-time validation
- Fixed the Continue Listening row visibly scrolling on opening the Audiobookshelf Home tab
- Control Panel integrated into Settings, dual-pane on tablets
- Centralised app-wide coroutine scope; reduced duplicate storage logging
- Server version in Settings; refined Licenses screen; device ID now distinguishes installs per app ID and build type
- License changed from LGPL-3.0 to GPL-3.0
- Dependency updates: Hilt 2.60, Compose Adaptive 1.3.0-rc01, AboutLibraries 15.0.3
What's Changed
- Translations update from Hosted Weblate by @weblate in #168
- Translations update from Hosted Weblate by @weblate in #169
- Translations update from Hosted Weblate by @weblate in #171
Full Changelog: v0.10.0-beta...v0.10.1-beta
v0.9.3-beta
Afinity v0.9.3-beta
New
- Added support for authorising Jellyfin QuickConnect sign-in requests directly from Afinity.
- Added support for saving downloads to external storage locations.
Improvements
- Improved network change handling, server reconnection, and metadata refresh reliability.
- Added caching and optimised refresh behaviour for Audiobookshelf libraries.
- Improved SyncPlay with participant details, activity indicators, and group information.
- Added a rich "Next Up" overlay during episode outros with artwork and episode details.
- Improved remote artwork search results in media management tools.
Fixes
- Fixed a race condition that could cause the Home screen to appear blank while offline.
- Fixed downloads not always respecting the selected media version.
- Fixed stale session data appearing in the Control Panel after server switches.
- Fixed an MPV lifecycle issue that could process events after player release.
What's Changed
- Translations update from Hosted Weblate by @weblate in #151
- fix: respect selected sourceId when downloading by @boolemancer in #153
- Add support for saving downloads to external storage by @boolemancer in #154
- Translations update from Hosted Weblate by @weblate in #155
- fix: fix a race condition causing a blank home screen when offline by @boolemancer in #156
New Contributors
- @boolemancer made their first contribution in #153
Full Changelog: v0.9.2-beta...v0.9.3-beta
v0.9.2-beta
v0.9.2-beta
Major Changes
OMDb Awards Integration
- Added OMDb integration to display awards and accolades for movies and shows directly within media detail screens, with local caching to improve performance and reduce API requests.
Audible Ratings for Audiobooks
- Added Audible ratings support for audiobooks, displaying community ratings directly within Audiobookshelf item pages, with local caching and intelligent metadata matching to improve performance and reduce external API requests.
Improvements
Episode Availability Indicators
- Added a distinction between upcoming and missing episodes, making it easier to identify content that has not yet aired versus unavailable content.
Ratings Visibility Consistency
- Expanded the "Show Ratings" preference to additional detail screens and overlays, ensuring ratings and review sections are hidden consistently when disabled. Fixes #115.
Fixes
- Fixed duplicate episodes occasionally appearing in episode lists by improving item deduplication logic. Fixes #133.
- Improved studio artwork loading reliability by correcting asset URL generation and encoding.
What's Changed
- Translations update from Hosted Weblate by @weblate in #149
- Translations update from Hosted Weblate by @weblate in #150
Full Changelog: v0.9.1-beta...v0.9.2-beta
v0.9.1-beta
v0.9.1-beta
Fixes
- Fixed the
Show Ratingspreference not being applied in Library screens, ensuring ratings are hidden consistently throughout the app when disabled. - Fixed SyncPlay seek synchronisation by improving seek event handling and adding support for relative seek operations, resulting in more reliable playback synchronisation between participants.
Full Changelog: v0.9.0-beta...v0.9.1-beta
v0.9.0-beta
v0.9.0-beta
Major Changes
SyncPlay Watch Parties
- Added SyncPlay support, allowing users to create and join synchronised watch parties with real-time playback coordination.
Administrative Media Management
- Added administrator tools for editing metadata, identifying media, and managing artwork directly from item detail screens.
- Administrative changes now automatically refresh affected screens throughout the app.
Live TV Enhancements
- Reworked Live TV playback with improved stream handling, playback reporting, hardware capability detection, and low-latency optimisations.
- Optimised EPG refreshing and navigation to reduce unnecessary background activity and UI flicker.
Player & Media Source Improvements
- Enhanced audio and subtitle track selection with better language matching, forced subtitle support, and richer stream metadata. Closes #140 and #141
- Media details now reflect the selected media source and display Dolby Atmos badges when supported.
External Service Integration
- Added validation for TMDB and MDBList API keys, preventing invalid configurations and providing setup feedback.
Improvements
Ratings & Reviews
- Refactored review rendering using CommonMark and added automatic link detection for improved formatting and compatibility.
- Added a setting to show or hide media ratings throughout the application. Closes #115.
Home Screen
- Improved Home section refresh behaviour to better preserve scroll position while still surfacing newly updated content.
Media Details
- Reorganised ratings, reviews, and external links to make media information easier to access and browse.
Fixes
- Corrected Metacritic user score scaling to use a 10-point rating system properly.
- Updated download dialogues to use "Version" instead of "Quality". Fixes #139.
- Fixed a potential Home screen crash caused by invalid layout positioning when processing smaller content lists. Fixes #143.
What's Changed
- Translations update from Hosted Weblate by @weblate in #142
- Add Syncplay support by @MakD in #147
- Admin Media Management Support by @MakD in #148
- Translations update from Hosted Weblate by @weblate in #145
Full Changelog: v0.8.9-beta...v0.9.0-beta
v0.8.9-beta
Release Notes
v0.8.9-beta
Major Changes
- Added MDBList-based “Certified Fresh” and “Verified Hot” badges to media detail screens.
- Introduced a redesigned ratings and reviews experience with dedicated scorecards for IMDb, Rotten Tomatoes, Metacritic, Trakt, Letterboxd, MyAnimeList, and other rating providers.
Improvements
- Improved media detail layouts by prioritising ratings and reviews higher in the content hierarchy.
- Dynamically hides Favourites and Watchlist tabs when they contain no items for a cleaner navigation experience. Added actionable empty states for Favourites and Watchlist with direct “Browse Media” navigation.
- Improved library refresh handling in the Control Panel with synchronised loading states, task tracking, and duplicate-request prevention.
- Refined automatic horizontal scroll behaviour on the Home screen to preserve user scroll position during live data updates.
- Prioritised ExoPlayer extension renderers over platform decoders for more consistent playback compatibility across devices.
Fixes
- Fixed audio stream selection menus showing tracks from the wrong media source during playback. Fixes #138
What's Changed
- Translations update from Hosted Weblate by @weblate in #136
- Translations update from Hosted Weblate by @weblate in #137
Full Changelog: v0.8.8-beta...v0.8.9-beta
v0.8.8-beta
Release Notes
v0.8.8-beta
Fixes
- Fixed the season watched indicator by relying on the server-provided played state.
- Fixed metadata flickering and regression during refresh cycles by stabilising runtime and episode count values.
- Improved consistency of metadata display for shows, seasons, and boxsets by standardising resolved item usage and calculations.
Full Changelog: v0.8.7-beta...v0.8.8-beta
v0.8.7-beta
Release Notes
v0.8.7-beta
Major Changes
- Added persistent disk caching for ExoPlayer and MPV playback, along with HDR playback improvements and enhanced MPV rendering configuration.
- Added a detailed playback statistics overlay (“Stats for Nerds”) for both video and Audiobookshelf playback sessions.
- Refactored media synchronisation and refresh handling with centralised reactive update systems (
MediaChangeManagerandMediaRefreshBus) for smoother real-time UI updates. Expanded granular reactive updates for Home, Search, Favourites, Watchlist, Libraries, Item Detail, and BoxSet screens for more responsive real-time UI synchronisation. - Migrated the Jellyfin admin control panel to reactive WebSocket-driven updates with smoother live session progress handling.
Improvements
- Improved playback UX with redesigned skip-segment controls, optional auto-skip timers, smooth audio fade transitions, refined trickplay thumbnail caching, and enhanced playback/session synchronisation.
- Reduced UI recompositions and improved rendering performance across Home, TopAppBar, metadata layouts, and dynamic media sections.
- Enhanced handling of missing or unplayable media by disabling unavailable playback actions and refining watched-state indicators.
- Improved Live TV availability detection using Jellyfin UserViews capability checks.
- Standardised dependency injection annotations, formatting, and internal repository/viewmodel organisation.
Other Changes
- Updated the
richtextlibrary to1.0.0-alpha04. - Excluded JetBrains Compose and AndroidX libraries from the generated AboutLibraries licenses list.
- Bumped app version to
0.8.7-beta(versionCode55).
What's Changed
- perf: implement batched UI updates and add watchlist support by @MakD in #130
- Translations update from Hosted Weblate by @weblate in #131
- Translations update from Hosted Weblate by @weblate in #132
- Translations update from Hosted Weblate by @weblate in #134
- Translations update from Hosted Weblate by @weblate in #135
Full Changelog: v0.8.6-beta...v0.8.7-beta