Releases: MakD/AFinity
Releases · MakD/AFinity
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
v0.8.6-beta
Release Notes
v0.8.6-beta
Improvements
- Added server verification for Jellyseerr and Audiobookshelf login/address management flows before authentication or persistence.
- Improved login error handling, URL sanitisation, and connection validation feedback for Jellyseerr and Audiobookshelf services.
- Improved download reliability by validating directory creation before media, subtitle, image, and ABS download operations. Fixes #119
- Made server control panel polling lifecycle-aware to prevent unnecessary background polling and duplicate polling jobs.
- Updated locale-aware formatting in download settings to respect the active Compose locale.
- Improved crash log persistence by moving logs to internal storage and retaining historical crash reports after export.
- Refined application initialisation logic and cleaned up internal build/dependency configuration handling.
Fixes
- Fixed duplicate-key UI issues in downloads lists during active/completed state transitions.
Other Changes
- Bumped version to
0.8.6-beta. - Dropped
x86andx86_64ABI support. - Cleaned up and consolidated dependency version catalogue definitions.
Full Changelog: v0.8.5-beta...v0.8.6-beta
v0.8.5-beta
Release Notes
v0.8.5-beta
Major Changes
- Added a full Jellyfin admin control panel with active session monitoring, scheduled task management, and restart/shutdown controls.
- Refactored server management with modular Jellyfin, Jellyseerr, and Audiobookshelf service views, active/saved server grouping, and multi-address management.
- Added configurable playback buffer size controls for both ExoPlayer and MPV.
- Introduced buffered-progress indicators and improved caching/buffering behaviour across video and audiobook playback.
Improvements
- Improved playlist navigation and subtitle availability feedback in the player UI.
- Improved Audiobookshelf cover quality and refined mini-player offset handling across ABS screens.
- Improved the latest shows fetching, series grouping, and batch metadata resolution performance.
- Centralised reusable loading/error/empty states and episode overlay handling utilities for more consistent UI behaviour.
- Expanded localisation support across server management and control panel flows.
- Updated Gradle, AGP, Kotlin, Compose BOM, and Media3 dependencies.
Fixes
- Fixed accidental single-tap actions being triggered after long-press gestures in the player.
- Refined the latest media refresh logic when Jellyfin returns episode items instead of series entries.
- Improved buffering defaults and option limits to avoid excessive memory usage.
What's Changed
- Translations update from Hosted Weblate by @weblate in #118
- Translations update from Hosted Weblate by @weblate in #121
- Translations update from Hosted Weblate by @weblate in #122
- Translations update from Hosted Weblate by @weblate in #123
- Admin support by @MakD in #126
- Translations update from Hosted Weblate by @weblate in #125
Full Changelog: v0.8.4-beta...v0.8.5-beta
v0.8.4-beta
Release Notes
v0.8.4-beta
Major Changes
- Added full multipart movie and episode support with automatic queueing, multipart metadata, and dedicated “Parts” sections.
- Introduced chapter-based Audiobookshelf playback with Media3 clipping, chapter-aware progress tracking, and custom rewind/forward media controls.
- Expanded playback compatibility with improved xHE-AAC, E-AC3/E-AC3-JOC handling and refined ASS/SSA subtitle rendering in MPV.
- Added customizable app fonts including Google Sans Flex, Quicksand, IBM Plex Sans, and IBM Plex Sans Condensed.
- Added “Upcoming Episodes” and “Available Requests” sections with improved Jellyfin navigation integration.
- Expanded localisation support across the app with large-scale string externalisation and translated metadata formatting improvements.
Improvements
- Refined player-aware layouts across Home, Details, Search, Libraries, Settings, and Live TV using dynamic player offset spacing.
- Improved playback continuity by persisting audio/subtitle selections locally and enhancing track switching reliability.
- Enhanced HeroCarousel behaviour with smoother transitions, better autoscroll handling, adjacent image prefetching, and more stable infinite scrolling.
- Improved adaptive UI sizing and edge-to-edge behaviour using
LocalWindowInfo, density-aware layouts, and refined inset handling. - Added connection-type indicators (Local, Tailscale, Remote, Offline) and improved personalised UI with propagated user names and refined status visuals.
- Enhanced metadata consistency across player controls, cards, overlays, casting UI, multi-episode displays, and logo/image fallbacks.
- Improved Audiobookshelf MiniPlayer and player metadata layouts with chapter-aware progress and richer information display.
- Simplified Live TV playback configuration and improved metadata fetching resilience during network transitions.
- Removed blocking coroutine initialisation across player, networking, image loading, and preferences for smoother async startup behaviour.
Fixes
- Fixed playback cleanup reliability by ensuring progress/session updates are complete during teardown.
- Fixed “Next Up” removal logic for resumable episodes with playback progress.
- Fixed audio/subtitle stream indices not being correctly reported during Jellyfin playback sessions.
- Fixed offline-state inconsistencies and improved cache/image restoration when loading local content.
- Fixed UI overlap issues caused by the persistent mini-player across multiple screens.
- Fixed HeroCarousel pager state inconsistencies during infinite scrolling. Fixes #108
- Fixed ASS/SSA subtitle rendering behaviour in MPV playback. Fixes #36
- Improved coroutine scope handling in CastManager and UpdateManager for better lifecycle resiliency.
Other Changes
- Refactored cache/database scoping for proper multi-server and multi-user isolation.
- Improved Jellyseerr CSRF/session handling and authenticated image loading behaviour.
- Updated internal dependencies and cleaned up repository/state organisation across the app.
What's Changed
- Translations update from Hosted Weblate by @weblate in #99
- Translations update from Hosted Weblate by @weblate in #101
- Translations update from Hosted Weblate by @weblate in #102
- Translations update from Hosted Weblate by @weblate in #103
- Translations update from Hosted Weblate by @weblate in #104
- Translations update from Hosted Weblate by @weblate in #106
- Translations update from Hosted Weblate by @weblate in #107
- Translations update from Hosted Weblate by @weblate in #112
- Translations update from Hosted Weblate by @weblate in #113
- Translations update from Hosted Weblate by @weblate in #114
Full Changelog: v0.8.3-beta...v0.8.4-beta
v0.8.3-beta
v0.8.3-beta
Features
- Added multi-server and multi-user database scoping for complete data isolation
- Introduced Upcoming Episodes section on Home
- Improved episode handling with better unaired/missing state detection
Improvements
- Enhanced Next Up syncing logic and episode filtering
- Improved image loading reliability with authenticated requests
- Fixed WebSocket handling for dynamic session switching
Fixes
- Fixed episode removal logic in Next Up for partially watched items
- Fixed CastManager coroutine cleanup to properly release scope
- Improved UpdateManager stability using
SupervisorJob
Chore
- Version bump to 0.8.3-beta
- Dependency updates and internal cleanup
- Consolidated session storage in
SecurePreferencesRepository
What's Changed
- Translations update from Hosted Weblate by @weblate in #91
- Translations update from Hosted Weblate by @weblate in #94
- Translations update from Hosted Weblate by @weblate in #97
- Translations update from Hosted Weblate by @weblate in #98
Full Changelog: v0.8.2-beta...v0.8.3-beta