github MakD/AFinity v0.1.0-beta
v0.1.0-beta - Offline Mode

latest releases: v0.8.4-beta, v0.8.3-beta, v0.8.2-beta...
5 months ago

Release Notes

Major Changes

  • Offline Mode & Downloads
    Introduced a comprehensive offline system allowing users to download movies and episodes for offline playback. A manual offline mode toggle in Settings enables users to disconnect from the server while retaining access to cached and downloaded content. When offline, the app intelligently restricts navigation to "Home" and "Downloads" and loads data from the local database.

  • Complete Download Management System
    Implemented a full-featured download system with support for queueing, pausing, resuming, and cancelling downloads. The system handles downloading media files along with all associated metadata including images, subtitles, and trickplay files. Downloads are constrained to Wi-Fi by default and require sufficient storage.

  • Downloads Screen & UI
    Added a dedicated "Downloads" destination to the main navigation bar with "Active" and "Completed" tabs for managing downloads. A new Downloads management screen in Settings provides centralized control over all downloads with network status, storage usage, and download controls. Download buttons throughout the app now show contextual icons based on download state (Download, In Progress, Queued, Paused, Completed).

  • Offline Playback Progress Sync
    Introduced a robust background sync system (UserDataSyncWorker) that tracks playback progress locally when offline and automatically syncs it back to the server once connectivity is restored. The Home screen now displays a "Continue Watching" section in offline mode populated from locally stored progress data.

  • Landscape Layout for Item Details
    Implemented a dedicated landscape layout for the item detail screen featuring a full-screen blurred backdrop with gradient overlay. Key information, metadata, and action buttons are displayed in a fixed column on the left, while detailed content scrolls on the right. Added video quality selection dropdown in landscape view for playback and download options.


Minor Updates

  • Enhanced Offline Data Handling

    • Item detail screens now load shows, seasons, and episodes directly from the local database when offline, including calculation of "next up" episodes based on local watch history.
    • Trickplay data and media segments (intros/credits) are now cached locally and loaded from cache for offline use.
    • Download process automatically saves parent show and season metadata along with all associated artwork (primary, backdrop, logo, person images).
  • Improved Download UX

    • Downloads automatically start if only one quality option is available, bypassing the quality selection dialog.
    • Episode downloads can now be initiated directly from the episode detail overlay on the Home screen.
    • Download progress indicators now show real-time status with contextual actions.
  • Database Schema Updates

    • Database version bumped to 14 with new downloads table to persist download state.
    • Updated movies, shows, seasons, and episodes tables to include images, genres, people, and tagline columns for richer offline metadata.
    • Added type converters for AfinityPerson lists.
  • UI Enhancements

    • Home screen now displays separate "Downloaded Shows" and "Downloaded Movies" sections.
    • Top app bar displays a "Cloud Off" icon badge on the user profile picture when in offline mode.
    • Settings reorganized with "Downloads" management screen under General section; logout button moved to General section.
  • Dependencies and Build Updates

    • Updated Android Gradle Plugin (8.13.0 → 8.13.2), Kotlin (2.2.20 → 2.2.21), Compose BOM (2025.10.00 → 2025.12.00)
    • Updated Jetpack libraries: Lifecycle (2.9.4 → 2.10.0), Navigation (2.9.5 → 2.9.6), Room (2.8.2 → 2.8.4), WorkManager (2.10.5 → 2.11.0), DataStore (1.1.7 → 1.2.0), Splashscreen (1.0.1 → 1.2.0)
    • Updated OkHttp (5.2.1 → 5.3.2) and KSP (2.2.20-2.0.4 → 2.3.3)

Fixes

  • Authentication & Network Handling

    • Fixed authentication to restore user session from local cache when offline, preventing login failures when network is unavailable.
    • Downloads now intelligently skip downloading images if a local file URI is already present.
  • Trickplay Downloads

    • Corrected trickplay tile download logic to calculate the number of tiled images correctly and download by tileIndex instead of thumbnailCount.
  • Offline Stability

    • Fixed crashes when viewing downloaded seasons with no cached episodes by properly handling empty episode lists.
    • Enhanced field sets for "Continue Watching" and "Next Up" sections to include media sources and streams, ensuring download and playback options are available without additional network requests.
  • Code Cleanup

    • Removed significant number of KDoc comments from various files to streamline the codebase.
    • Disabled WorkManagerInitializer to allow Hilt to manage worker creation.

What's Changed

  • Unified Season & Episode Experience with Smart Playback and PiP by @MakD in #3
  • Offline Mode Implementation by @MakD in #4

Full Changelog: v0.0.9-alpha...v0.1.0-beta

Don't miss a new AFinity release

NewReleases is sending notifications on new releases.