How vorlon-dev/zen-music works
ZenMusic is an Android music player whose documented workflow is selecting a music source, discovering or searching for media, streaming or downloading tracks, and playing them with lyrics. The sampled Android code exposes a native bridge to the Flutter app and an extension manager; the tree also includes an Echo-style extension contract and a Spotify/librespot bridge. The README documents additional product capabilities, but their Flutter implementations are not present in the supplied tree, so those branches use only documented relationships and enclosing paths. Evidence is limited to the README and SOURCE INDEX excerpts.
Main entry points: ZenExtensionManager.kt Extension manager · MainActivity.kt Android bridge · session.rs Spotify session · SearchFeedClient.kt Search feeds
Components 20
App and playback
- ZenMusic app
- Android bridge
android/app/src/main/kotlin/com/zen/music/zenmusic/MainActivity.kt - Audio engine
android/app/src/main/java/cc/tomko/outify/playback/AudioEngine.kt
Music sources
- Extension manager
android/app/src/main/kotlin/com/zen/music/zenmusic/extensions/ZenExtensionManager.kt - Extension contract
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/Extension.kt - Search feeds
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/SearchFeedClient.kt - Quick search
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/QuickSearchClient.kt - Feed and shelves
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/models/Feed.kt - Track streaming
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/TrackClient.kt
Listening features
- Offline downloads
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/DownloadClient.kt - Synced lyrics
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/LyricsClient.kt - Listen Together
android/app/src/main/java/cc/tomko/outify/core/spirc/Spirc.kt - Song recognition
android/app/src/main - Playback settings
android/app/src/main
Spotify integration
- Spotify auth
spotify_bridge/librespot-ffi/src/oauth.rs - Spotify session
spotify_bridge/librespot-ffi/src/session.rs - Spotify API
spotify_bridge/librespot-ffi/src/spclient.rs - Spotify playback
spotify_bridge/librespot-ffi/src/playback.rs
Other components
- Listener
- Spotify service
Connections 20
- Listener → ZenMusic app: uses
- ZenMusic app → Android bridge: bridges through
android/app/src/main/kotlin/com/zen/music/zenmusic/MainActivity.kt - Android bridge → Extension manager: calls
android/app/src/main/kotlin/com/zen/music/zenmusic/MainActivity.kt - Extension manager → Extension contract: manages
android/app/src/main/kotlin/com/zen/music/zenmusic/extensions/ZenExtensionManager.kt - Extension manager → Search feeds: uses
android/app/src/main/kotlin/com/zen/music/zenmusic/extensions/ZenExtensionManager.kt - Extension manager → Feed and shelves: produces
android/app/src/main/kotlin/com/zen/music/zenmusic/extensions/ZenExtensionManager.kt - Search feeds → Feed and shelves: returns
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/SearchFeedClient.kt - Quick search → Search feeds: extends
android/app/src/main/kotlin/kotlin/dev/brahmkshatriya/echo/common/clients/QuickSearchClient.kt - ZenMusic app → Track streaming: requests streams
- ZenMusic app → Offline downloads: downloads tracks
- Track streaming → Audio engine: plays audio
- ZenMusic app → Synced lyrics: shows synced lyrics
- ZenMusic app → Listen Together: synchronizes listening
- ZenMusic app → Song recognition: recognizes songs
- ZenMusic app → Playback settings: configures playback
- Android bridge → Spotify playback: bridges playback
android/app/src/main/kotlin/com/zen/music/zenmusic/MainActivity.kt - Spotify auth → Spotify session: authenticates
spotify_bridge/librespot-ffi/src/jni_impl/oauth.rs - Spotify session → Spotify API: provides session
spotify_bridge/librespot-ffi/src/spclient.rs - Spotify session → Spotify playback: starts playback
- Spotify playback → Spotify service: streams from