Releases: MakD/AFinity
v0.6.5-beta
Release Notes
Major Changes
- Advanced Request Management
Users with manage permissions can now view, edit, and act on Jellyseerr requests directly from the app.- View detailed request information, including server, quality profile, and root folder
- Edit pending requests before approval (4K status, server, quality profile)
- Approve or decline requests with optional override settings
- Delete requests from the management dialogue
- Fixed permission validation logic
- Fixed incorrect status display for 4K requests
- Favourite People
Added support for favouriting and browsing people from Jellyfin.- New "People" section on Favourites screen
- Favourite button on person detail screen
Minor Updates
- Library: Sort order now persists across sessions, updated Watched/Unwatched filter icons
- Request Cards: Requester avatar now displayed, updated approve/decline button design
- UI Fixes: MiniPlayer now respects system navigation bars, trickplay preview maintains correct aspect ratio for portrait videos
What's Changed
- Translations update from Hosted Weblate by @weblate in #56
- Translations update from Hosted Weblate by @weblate in #57
- Translations update from Hosted Weblate by @weblate in #59
- Translations update from Hosted Weblate by @weblate in #61
Full Changelog: v0.6.4-beta...v0.6.5-beta
v0.6.4-beta
Release Notes
Critical Fixes
-
Fixed Audiobookshelf Token Refresh
Resolved critical issue where failed token refresh would leave the app in an unrecoverable state.- System now properly logs out users when the refresh token is invalid
- Refresh requests correctly send an empty JSON body and parse nested response
- Invalid tokens are immediately cleared from secure storage
- App correctly reflects logged-out state after authentication failures
Major Changes
-
Advanced Jellyseerr Request Options
Added support for advanced request configuration with 4K requests and quality profiles.- 4K Requests: Users with REQUEST_4K permissions can now request 4K versions
- Server Selection: Choose a specific Sonarr/Radarr server for the request
- Quality Profiles: Select a quality profile from available options
- Root Folder Display: Shows the configured root folder for the selected server
- Available to users with REQUEST_ADVANCED or MANAGE_REQUESTS permissions
- Redesigned request dialogue with a modern, tile-based layout
-
Manual Screen Rotation Control
Added manual orientation control for the video player with automatic aspect ratio detection.- New rotation button in player controls to toggle between portrait and landscape
- Player automatically detects video aspect ratio and sets initial orientation
- Manual override available via rotation button
- Player UI now respects system safe drawing areas (no overlap with navigation bars or cutouts)
Minor Updates
-
Improved Audiobookshelf Podcast Playback
- Podcast series now resumes from the most recently listened-to, unfinished episode
- Falls back to the first episode in sort order if no listening history exists
- Tapping individual episodes resumes from the saved position instead of the start
- Player correctly seeks a specific timestamp within podcast playlists
-
UI Refinements
- Adjusted "Explicit" and "Abridged" icon sizes for better alignment
- Updated Jellyseerr/Seerr logo after merger and rebranding
- Improved visual presentation of advanced request options
What's Changed
Full Changelog: v0.6.3-beta...v0.6.4-beta
v0.6.3-beta
Release Notes
Major Changes
-
Automatic Token Refresh for Audiobookshelf
Implemented automatic access token refreshing for Audiobookshelf connections.- System automatically refreshes expired tokens using the refresh token
- Failed requests due to expired tokens are automatically retried with a new token
- More resilient connection to Audiobookshelf servers
- Playback continues uninterrupted even if authentication expires during an active session
- Improved overall reliability of Audiobookshelf integration
Minor Updates
-
Improved Library Fetching
- Changed to use UserViewsApi instead of admin-only LibraryApi for more reliable library retrieval (Fixes #51)
- Removed "Mixed" collection type from supported types
-
Better Post-Login Experience
- Audiobookshelf libraries now automatically refresh immediately after login
- More responsive user experience when connecting to Audiobookshelf
-
Reduced Log Noise
- Changed decryption error logging to debug level for non-critical missing data scenarios
What's Changed
Full Changelog: v0.6.2-beta...v0.6.3-beta
v0.6.2-beta
Release Notes
Critical Bug Fixes
Important: This release fixes critical issues with Audiobookshelf podcast playback. Users are strongly recommended to update immediately.
-
Fixed Server Crash Issue
Resolved a critical bug that could crash the Audiobookshelf server when starting podcast playback. -
Fixed Podcast Playlist and Progress Tracking
Completely overhauled podcast playlist handling and progress syncing.- Podcast playlists now correctly load the entire sorted episode list instead of single episodes
- Each episode in a playlist is now tracked as a distinct playback session
- Progress for individual episodes accurately saved to Audiobookshelf server
- Proper session management when transitioning between episodes
- Progress syncing now works correctly for all podcast playback scenarios
What's Changed
Full Changelog: v0.6.1-beta...v0.6.2-beta
v0.6.1-beta
Release Notes
Major Changes
-
Enhanced Audiobookshelf Experience
Significant improvements to the Audiobookshelf integration with better navigation, progress tracking, and content discovery.- Unified Library View: Merged individual library screens into the main libraries tab with an A-Z scroller for quick navigation
- Episode Sorting: Sort podcast episodes by publication date, title, season, episode number, or filename (ascending/descending)
- Real-time Progress Updates: Progress indicators update automatically across the app without manual refresh
- Status Indicators:
- "Finished" badge on completed items
- Progress bars and remaining time on in-progress episodes
- Checkmark icons on finished episodes
- "Listen Again" for completed content, "Continue Listening" for in-progress
- Rich Metadata Display:
- Language indicators with flag icons
- Explicit content and abridged status chips
- Publisher, publication year, and tags
- Genre chips in item headers
- Improved Episode UI:
- Expandable episode descriptions with HTML rendering for links
- Episode lists are now in dedicated full-screen dialogues for better focus
- Individual progress tracking per episode
Minor Updates
- UI Refinements
- Progress bars repositioned as overlays on cover art for a cleaner look
- Improved duration formatting for chapters and episodes (e.g., "1h 30m", "< 1m")
- Better language code to flag resolution
- Updated explicit content icon design
- Performance Improvements
- Chapter and episode lists now use lazy loading for better performance with long lists
- Optimised state management for expanded episodes
What's Changed
Full Changelog: v0.6.0-beta...v0.6.1-beta
v0.6.0-beta
Release Notes
Major Changes
-
Audiobookshelf Integration (Optional)
Added support for connecting to Audiobookshelf servers for audiobook and podcast playback.Note: Audiobookshelf integration is completely optional. Afinity remains primarily a Jellyfin client. For any issues with this integration, please open bug reports in the Afinity repository, not the official Audiobookshelf repository.
- Connect Audiobookshelf server via Settings (credentials stored per Jellyfin user)
- Browse libraries with tabbed navigation (Home, Series, individual libraries)
- Genre-based discovery and series collections
- Dedicated audio player with background playback, media notifications, and lock screen controls
- Sleep timer, playback speed control, and chapter navigation
- Progress syncing with Audiobookshelf server
- Persistent mini-player for navigation during playback
- Integration with main search (includes Audiobookshelf content when searching)
- Automatic session management (closes when logging out or switching Jellyfin servers)
Minor Updates
- Code Quality: Added ktfmt for consistent code formatting across the project
- Icon Updates: Replaced Seerr icon with official logo, updated Audiobookshelf-related icons
- UI Refinements: Improved keyboard handling in bottom sheets, better notification permission flow
What's Changed
Full Changelog: v0.5.4-beta...v0.6.0-beta
v0.5.4-beta
Release Notes
Major Changes
- Advanced MPV Configuration Options
Introduced comprehensive MPV player configuration settings for enhanced control over playback performance and hardware compatibility.- Hardware decoding options: Disabled, MediaCodec, MediaCodec (Copy)
- Video output selection: gpu, gpu-next
- Audio output options: AudioTrack, OpenSL ES, AAudio
- Settings accessible when MPV is selected as the video engine
- Updated default configuration: MediaCodec (Copy) for hardware decoding, gpu-next for video output
- Audio and Subtitle Language Preferences
Implemented automatic track selection based on user-configured language preferences.- Configure preferred audio and subtitle languages in Player settings
- Language selection dialogue with search functionality
- Cross-engine compatibility (ExoPlayer and MPV)
- Subtitle track selector displays codec format (SRT, ASS, PGS) for improved identification
- Settings apply automatically at playback initialisation
Minor Updates
- Settings UI Refinements
- Implemented smooth animations for conditional settings visibility
- Improved visual feedback when toggling between player configurations
- Enhanced user experience for MPV options and subtitle styling controls
What's Changed
Full Changelog: v0.5.3-beta...v0.5.4-beta
v0.5.3-beta
Release Notes
Major Changes
- Resumable Downloads
Downloads can now be paused and resumed from where they left off, making the download process more robust and resilient to network interruptions.- Pause active downloads and resume later without starting over
- Downloads automatically resume from the last downloaded byte after failures
- Retry failed downloads with one tap
- Subtitles and audio streams are properly registered for offline playback
- Download controls now correctly operate on selected episodes
- Server-Scoped Downloads
The download system has been completely refactored to properly handle multiple servers and users.- Downloads, storage calculations, and offline content are now scoped to the active session
- Switching servers/users shows the correct download status for that session
- Storage usage is calculated separately per server
- Total storage display shows space used across all servers
- Offline content filtering works correctly per session
Note: Existing downloads from previous versions are now orphaned. Users are recommended to re-download content to correctly map downloads with their server and user account.
- Internationalization Support
Complete externalisation of UI strings to support future translations.- All user-facing text moved to string resources
- Centralised text management for easier maintenance
- Foundation for multi-language support
- Accessibility improvements with localised content descriptions
Minor Updates
- Downloads UI Redesign
- Modern unified StatusHub showing download usage, device storage, and settings
- Circular progress indicator for device storage visualisation
- Cleaner card designs for active and completed downloads
- Device storage stats now displayed
- Wi-Fi Only Downloads
- New setting to restrict downloads to Wi-Fi connections
- Warning displayed when allowing mobile data downloads
- Prevents unexpected mobile data charges
- Collections Sorting
- Collections now sorted by release date for chronological order
Performance Improvements
- Live TV Optimisations
- Faster channel availability check with reduced data transfer
- Reduced "On Now" program limit from 50 to 20 for better performance
Bug Fixes
- Fixed discovered servers using name/ID instead of network address for connection
- Fixed layout shift on login screen during server discovery
What's Changed
- Translations update from Hosted Weblate by @weblate in #41
- Translations update from Hosted Weblate by @weblate in #42
New Contributors
Full Changelog: v0.5.2-beta...v0.5.3-beta
v0.5.2-beta
Release Notes
Bug Fixes
- Conditional Live TV Tab Display
The Live TV tab now only appears in navigation if the server has Live TV channels available. Prevents non-functional tab from showing on servers without Live TV configured. - Fixed Library Screen Layout Issues
Resolved unintended layout jumps when loading or navigating away from the library content screen.
What's Changed
- fix(livetv): Conditionally show Live TV tab based on server access by @MakD in bd7ce47
- refactor(LibraryContentScreen): Simplify layout by removing manual safe drawing insets by @MakD in 28e4bc2
- chore: Bump version to 0.5.2-beta by @MakD
Full Changelog: v0.5.1-beta...v0.5.2-beta
v0.5.1-beta
Release Notes
Bug Fixes
- Improved Live TV Playback
Enhanced playback reliability and user experience for Live TV channels.- Direct stream prioritisation for IPTV sources (
.m3u8and.m3ufiles) to bypass transcoding - Increased streaming bitrate limit to 140Mbps for high-quality direct streams
- Enabled Direct Play and Direct Stream for better performance
- Fixed player controls not auto-hiding during live stream playback
- More accurate playback state detection for live streams, especially with the MPV player
- Controls now correctly hide even when the player doesn't report "playing" state, but the stream is advancing
- Direct stream prioritisation for IPTV sources (
What's Changed
- fix(livetv): Improve direct stream playback and player controls by @MakD in 1083d88
- fix(player): Improve playback state for live TV streams by @MakD in e080c37
Full Changelog: v0.5.0-beta...v0.5.1-beta