$ show hritwikjohri/VoidTV-for-jellyfin
This is an Android TV application that serves as a client for media servers (primarily Jellyfin). It implements a Clean Architecture with clear separation between Data, Domain, and Presentation layers, using Jetpack Compose for the UI, Hilt for dependency injection, and Kotlin Coroutines/Flow for asynchronous operations. The application provides a TV-optimized interface for browsing media libraries, playing content with support for multiple players (ExoPlayer and MPV), handling subtitles/audio tracks/video quality, and managing user preferences. Key features include offline caching, background synchronization, advanced video format support (HDR, Dolby Vision), and a polished user experience with animations and focus handling for TV remotes.
The LLM identified 4 files worth highlighting for reuse:
Detects device media capabilities including video/audio codecs, HDR support, and hardware acceleration. Completely isolated from UI components, depends only on Android framework APIs. Demonstrates non-obvious skill in querying system media capabilities and could be reused in any Android media application.
Provides custom focus handling for TV remotes using Jetpack Compose. Solves the non-trivial problem of D-pad navigation in Compose-based TV applications. While it depends on Compose APIs, it's well-encapsulated and could be extracted for use in other Android TV applications needing sophisticated focus management.
Implements a quick index scroller for grids/lists (similar to alphabet scroller in contacts). Self-contained Compose component that handles touch/drag input to quickly navigate indexed lists. Demonstrates good Compose state management and could be reused in any application needing indexed scrolling functionality.
A reusable selection dialog component for choosing items from a list. Generic enough to be used in many contexts throughout the application. Follows Compose best practices with proper state handling and slot-based design for customization. Represents a well-encapsulated UI pattern that could be extracted for use in other projects.