$ show TeamAmaze/AmazeFileUtilities
This repository contains the Amaze File Utilities Android application, an open-source file management utility suite with built-in media players. The app provides comprehensive file browsing, storage analysis (duplicate, large, hidden, junk files), image/video/audio playback, image editing, document viewing (PDF, EPUB, DOCX), and peer-to-peer file transfer via Wi-Fi Direct. It also includes a cloud streaming server for Chromecast support. The architecture follows the standard Android MVVM pattern with Jetpack components (ViewModel, LiveData, Room, Navigation), and uses a foreground service for audio playback. The codebase is primarily Kotlin with some legacy Java, and is built with two product flavors: one for the Play Store (with billing and ML Kit) and one for F-Droid (without those features). The app demonstrates solid engineering with reusable abstractions like `AbstractMediaFilesAdapter`, `CloudStreamer`, and `FixedSizePriorityQueue`, though the central `FilesViewModel` is overly large (2000+ lines) and some deprecated Android APIs remain in use. The project is actively maintained with recent commits and zero Dependabot alerts.
The LLM identified 4 files worth highlighting for reuse:
A lightweight HTTP server (based on NanoHTTPD) that streams local media files to Chromecast devices. It correctly handles HTTP Range requests for seeking, supports partial content responses, and can be easily extracted and reused in any Android app that needs to serve local files over HTTP. Demonstrates solid understanding of HTTP/1.1 protocol and file I/O.
A base RecyclerView adapter that provides common functionality for media file lists: multiple view types (headers, banners, items), item selection/deselection with checkboxes, integration with Glide preloader, and click listeners. This pattern can be reused in any Android app that displays lists with mixed view types and selection support, reducing boilerplate for similar screens.
A bounded priority queue implementation that keeps only the top N elements based on a comparator. Uses a min-heap internally to efficiently maintain the largest items. This is a classic data structure extracted cleanly, useful for any 'top K' ranking tasks (e.g., largest files, most used apps). Minimal dependencies and fully self-contained.
Parses LRC (LyRiCs) files with synced timestamps for karaoke-style display. Handles both synced and unsynced lyrics, metadata tags, and multiple encoding formats. Can be extracted and used in any music player app that wants to support LRC lyrics. The parsing logic is well-structured and independent of the rest of the audio player code.