$ show Sam42a/DUNE
DUNE is a specialized Android TV client application for the Jellyfin media server ecosystem. It functions as a media consumption interface optimized for remote control navigation, featuring video/audio playback, library browsing, live TV (DVR) management, and extensive user customization. The architecture is a monolithic Android application with modularized internal structure (app, playback, preference modules), utilizing a hybrid UI approach that combines Jetpack Compose for modern screens (preferences, overlays) with Android Leanback widgets for traditional TV browsing. The codebase demonstrates strong separation of concerns, particularly in the playback layer which abstracts media rendering logic from the UI. It relies heavily on the Jellyfin SDK for API communication and ExoPlayer (Media3) for media rendering.
The LLM identified 4 files worth highlighting for reuse:
Orchestrates media playback logic by managing state (playing, paused, buffering) and coordinating between different backend implementations (ExoPlayer, VLC, etc.). It exposes a clean API for the UI layer to control playback without exposing underlying complexity, demonstrating a robust mediation pattern suitable for media applications.
Provides a generic, type-safe abstraction for user preferences that decouples business logic from SharedPreferences implementation. It supports async updates and versioned migrations, making it a reusable component for managing configuration state across different Android applications.
Encapsulates logic for constructing Jellyfin image URLs, handling aspect ratios, and managing blurhash placeholders. This utility class centralizes image handling logic, reducing duplication and ensuring consistent image loading behavior across the application.
Demonstrates the integration of Jetpack Compose with Android TV focus navigation. It implements custom modifiers and focus handling logic to ensure Compose components work seamlessly with remote control navigation, a pattern valuable for modernizing TV applications.