How sm19052002-lang/echo-music works
Echo Music is an Android streaming and local-media player. The main user path is browsing/searching YouTube Music, selecting tracks, and listening through a background media session; the app also supports offline playback, lyrics, recognition, recommendations, Spotify import, and synchronized listening. Nodes represent the principal domain stages and major documented feature branches. Relationship evidence is limited to the README and supplied source excerpts/index; unsampled subsystems are included where the tree and README establish their role, with unverified links omitted or dashed.
Main entry points: MusicService.kt Media Session · YouTube.kt YouTube Music API · MainActivity.kt App Navigation · MusicRecognitionService.kt Audio Recognition
Components 23
App Experience
- App Navigation
app/src/main/kotlin/com/music/echo/MainActivity.kt - Player UI
app/src/main/kotlin/com/music/echo/ui/player/Player.kt
Discovery & Catalog
- Search & Browse
app/src/main/kotlin/com/music/echo/ui/screens/search - YouTube Music API
innertube/src/main/kotlin/com/music/innertube/YouTube.kt - Spotify Integration
app/src/main/kotlin/com/music/echo/spotify - Spotify Import
app/src/main/kotlin/com/music/echo/spotifyimport/SpotifyImportRepository.kt - Recommendations
app/src/main/kotlin/com/music/echo/ai/AiRecommendationHelper.kt - Echo Brain
app/src/main/kotlin/com/music/echo/ai
Playback & Library
- Media Session
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Local Media
app/src/main/kotlin/com/music/echo/localmedia/LocalSongScanner.kt - Offline Downloads
app/src/main/kotlin/com/music/echo/playback/ExoDownloadService.kt - Music Database
core/src/main/kotlin/echo/music/iad1tya/db/DatabaseDao.kt
Listening Features
- Synced Lyrics
app/src/main/kotlin/com/music/echo/ui/component/Lyrics.kt - Lyrics Providers
lyrics/src/main/kotlin/echo/music/iad1tya/lyrics/LyricsTranslationHelper.kt - Echo Find UI
app/src/main/kotlin/com/music/echo/ui/screens/recognition/RecognitionScreen.kt - Audio Recognition
app/src/main/kotlin/com/music/echo/recognition/MusicRecognitionService.kt - Signature Engine
app/src/main/kotlin/com/music/echo/recognition/VibraSignature.kt - ShazamKit
shazamkit/src/main/kotlin/com/music/shazamkit/Shazam.kt - Listen Together UI
app/src/main/kotlin/com/music/echo/ui/screens/ListenTogetherScreen.kt - Room Synchronization
app/src/main/kotlin/com/music/echo/listentogether/ListenTogetherManager.kt - Room Client
app/src/main/kotlin/com/music/echo/listentogether/ListenTogetherClient.kt
Other components
- Listener
- Listen Together Service
Connections 24
- Listener → App Navigation: opens app
app/src/main/kotlin/com/music/echo/MainActivity.kt - App Navigation → Search & Browse: navigates to
- Search & Browse → YouTube Music API: searches catalog
- App Navigation → Player UI: shows playback
app/src/main/kotlin/com/music/echo/MainActivity.kt - Player UI → Media Session: controls
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Media Session → YouTube Music API: fetches streams
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Media Session → Music Database: persists queue
- Local Media → Media Session: provides tracks
- Offline Downloads → YouTube Music API: downloads media
app/src/main/kotlin/com/music/echo/playback/ExoDownloadService.kt - Offline Downloads → Music Database: stores download state
- Media Session → Lyrics Providers: loads lyrics
- Synced Lyrics → Lyrics Providers: displays lyrics
- Spotify Import → Spotify Integration: imports playlists
- Recommendations → YouTube Music API: requests suggestions
- Echo Brain → Media Session: extends queue
- Listener → Echo Find UI: starts recognition
- Echo Find UI → Audio Recognition: requests match
- Audio Recognition → Signature Engine: generates signature
app/src/main/kotlin/com/music/echo/recognition/MusicRecognitionService.kt - Audio Recognition → ShazamKit: checks match
app/src/main/kotlin/com/music/echo/recognition/MusicRecognitionService.kt - Listener → Listen Together UI: joins session
- Listen Together UI → Room Synchronization: manages session
- Room Synchronization → Room Client: handles events
app/src/main/kotlin/com/music/echo/listentogether/ListenTogetherManager.kt - Room Synchronization → Media Session: synchronizes playback
app/src/main/kotlin/com/music/echo/listentogether/ListenTogetherManager.kt - Room Client → Listen Together Service: exchanges room data