Skip to content

Releases: MakD/AFinity

v0.7.1-beta

24 Feb 11:05

Choose a tag to compare

Release Notes

Major Changes

  • Live UI Updates on Playback Events
    The app now updates across all screens instantly when the playback state changes, without requiring manual refresh.

    • Watched status, favourites, and playback progress update immediately on Home, Search, Library, and Detail screens
    • Smart partial updates instead of full-screen reloads for better performance
    • Paginated lists (Library, Genre Results) update individual items without reloading the entire list
    • Episode status changes reflect instantly across related screens
  • Enhanced Network Security
    Improved security by enforcing HTTPS and issuing warnings for insecure connections.

    • Defaults to HTTPS when entering server addresses without a protocol
    • Warning banners are displayed when using HTTP on public networks
    • Sensitive information (tokens, API keys, credentials) redacted from debug logs
    • Network security policy enforces encryption for external APIs while allowing local HTTP connections
    • Automatic protocol detection tries both HTTPS and HTTP for better compatibility

Minor Updates

  • Login Screen Redesign

    • Two-pane layout on tablets and landscape orientation
    • Server discovery/selection on left, connection/login forms on right
    • Improved spacing and IME handling
  • Chromecast Improvements

    • Better content type detection for improved compatibility
    • Native subtitle track switching without media reload (for text-based subtitles), Image-based subtitles (PGS, VOBSUB) still require media reload
    • Fixed resource cleanup to prevent crashes
  • Long-Press Fast-Forward

    • Press and hold on the player screen to temporarily speed up to 2x
    • Visual indicator shows "2x Speed" while active
    • Disabled when player controls are locked
  • UI Refinements

    • Bottom sheets no longer settle in a half-expanded state
    • Genre results now use infinite scrolling instead of a fixed limit
    • Language icon added next to flag in Audiobookshelf item headers
    • Improved watchlist count performance with cached StateFlow

What's Changed

Full Changelog: v0.7.0-beta...v0.7.1-beta

v0.7.0-beta

22 Feb 07:00

Choose a tag to compare

Release Notes

Major Changes

  • Chromecast Support
    Added complete Chromecast integration for video playback to compatible devices.

    • Cast video content to any Chromecast device on your network
    • Full remote control interface with play/pause, seek, and volume controls
    • Seamless playback position transfer when switching between local and cast playback
    • Cast-specific settings for bitrate (quality), audio/subtitle tracks, and playback speed
    • Episode list ("Up Next") for series with quick episode switching during cast sessions
    • System output switcher integration for unified device selection
    • Playback progress synced with the Jellyfin server during cast sessions
    • Automatic resume on local device when disconnecting

    Note: Enable HEVC in Chromecast settings only if your Chromecast device supports hardware decoding of HEVC/H.265 video. If unsure, leave it disabled - the server will transcode to H.264 instead.


Minor Updates

  • Improved Request Caching

    • Requests are now cached immediately upon fetch for faster offline access
    • Media details are enriched asynchronously in the background without blocking the UI
    • Existing cached data preserved when enrichment fails
    • Batch database operations for better performance
  • Genre Backdrops

    • Refactored duotone backdrop generation for more consistent visuals
    • Improved backdrop diversity across genre cards
  • UI Refinements

    • Episode overlay play button icon updated for consistency
    • Cast device chooser respects system light/dark theme
  • Bug Fixes

    • Fixed request approval now correctly applies the default server/profile/root folder when not specified
    • Fixed screen orientation during cast sessions

What's Changed

Full Changelog: v0.6.5-beta...v0.7.0-beta

v0.6.5-beta

17 Feb 16:05

Choose a tag to compare

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

15 Feb 18:49

Choose a tag to compare

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

13 Feb 16:46

Choose a tag to compare

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

11 Feb 05:09

Choose a tag to compare

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

09 Feb 13:35

Choose a tag to compare

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

07 Feb 07:52
7bb1479

Choose a tag to compare

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

  • Translations update from Hosted Weblate by @weblate in #45
  • Audiobookshelf support by @MakD in #46

Full Changelog: v0.5.4-beta...v0.6.0-beta

v0.5.4-beta

02 Feb 12:24

Choose a tag to compare

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

  • Translations update from Hosted Weblate by @weblate in #43

Full Changelog: v0.5.3-beta...v0.5.4-beta

v0.5.3-beta

31 Jan 07:40

Choose a tag to compare

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