How dora4/doramusic works
DoraMusic is an Android music player. Its primary workflow is browsing or scanning local audio, selecting tracks, and controlling playback through a persistent media service; the README also highlights playback modes, equalizer, notifications, shake-to-skip, headset handling, and theming. The tree and sampled excerpts support the playback/service boundaries and several network APIs, but do not expose all UI-to-service wiring, so uncertain caller links are omitted.
Main entry points: MediaService.kt Media service · Music.java Music records · UIManager.kt Library views · MusicControl.java Playback control
Components 24
Music library
- Library views
app/src/main/java/site/doramusic/app/ui/UIManager.kt - Music scanner
app/src/main/java/site/doramusic/app/media/MusicScanner.kt - Music records
app/src/main/java/site/doramusic/app/db/Music.java - Local search
app/src/main/java/site/doramusic/app/search/ScanMusicActivity.kt
Playback
- Media service
app/src/main/java/site/doramusic/app/media/MediaService.kt - Playback control
app/src/main/java/site/doramusic/app/media/MusicControl.java - Audio engine
app/src/main/java/site/doramusic/app/media/SimpleAudioPlayer.kt - Media manager
app/src/main/java/site/doramusic/app/media/MediaManager.kt - Download service
app/src/main/java/site/doramusic/app/service/DownloadService.kt - Download tasks
app/src/main/java/site/doramusic/app/model/DownloadTask.kt
Player experience
- Main screen
app/src/main/java/site/doramusic/app/ui/activity/MainActivity.kt - Lyrics
app/src/main/java/site/doramusic/app/lrc/DoraLyric.kt
Online features
- Guessing screens
app/src/main/java/site/doramusic/app/ui/activity/GuessingActivity.kt - Guessing API
app/src/main/java/site/doramusic/app/http/service/GuessingService.kt - Chat room
app/src/main/java/site/doramusic/app/chat/ChatRoomActivity.kt - Chat API
app/src/main/java/site/doramusic/app/chat/ChatService.kt - Chat websocket
app/src/main/java/site/doramusic/app/chat/ChatWsManager.kt - System messages
app/src/main/java/site/doramusic/app/sysmsg/SysMsgWsManager.kt - Feedback
app/src/main/java/site/doramusic/app/feedback/FeedbackService.kt - Event tracking
app/src/main/java/site/doramusic/app/track/TrackService.kt
App platform
- Player preferences
app/src/main/java/site/doramusic/app/util/PrefsManager.kt
Other components
- Music listener
- Dora services
- Android system
Connections 20
- Music listener → Main screen: opens
- Main screen → Library views: shows library
- Library views → Music records: reads tracks
- Music scanner → Music records: updates tracks
- Local search → Music records: searches tracks
- Media service → Playback control: delegates playback
- Playback control → Audio engine: controls audio
- Media service → Player preferences: reads settings
- Media service → System messages: connects
- Media service → Android system: posts notifications
- Media service → Android system: runs foreground
- Download service → Download tasks: loads and saves
- Music listener → Guessing screens: opens
- Guessing API → Dora services: requests
- Music listener → Chat room: opens
- Chat API → Dora services: requests
- Chat websocket → Dora services: connects
- System messages → Dora services: connects
- Feedback → Dora services: submits
- Event tracking → Dora services: sends events