How mateusrodcosta/vidyamusic works
Vidya Music is an Android/Jetpack Compose player for the Vidya Intarweb Playlist. A user opens the playlist experience; the app loads playlist configuration, fetches a selected playlist and its tracks, then presents playback controls backed by a Media3 session. Settings form a separate branch for theme and playback preferences, with an About screen. The graph reflects documented capabilities and sampled repository/player implementations; view-model orchestration and several UI/repository details are inferred only from their named modules, so uncertain internal links are omitted.
Main entry points: MainActivity.kt Main activity · PlaylistViewModel.kt Playlist view model · PlaylistRepositoryImpl.kt Playlist repository · AudioControllerImpl.kt Audio controller
Components 23
App and navigation
- Main activity
app/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/MainActivity.kt - App setup
app/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/VidyaMusicApp.kt
Playlist discovery
- Playlist screen
features/playlist/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/features/playlist/screens/PlaylistScreen.kt - Playlist view model
features/playlist/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/features/playlist/PlaylistViewModel.kt - Playlist use cases
domain/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/domain/usecases/LoadPlaylistUseCase.kt - Available playlists
domain/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/domain/usecases/GetAvailablePlaylistsUseCase.kt - Config repository
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/repository/ConfigRepositoryImpl.kt - Asset reader
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/source/AndroidAssetFileReader.kt - Playlist config
- Playlist repository
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/repository/PlaylistRepositoryImpl.kt - Playlist and tracks
domain/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/domain/entity/PlaylistEntity.kt
Playback
- Audio controller API
domain/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/domain/player/AudioController.kt - Audio controller
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/player/AudioControllerImpl.kt - Track mapper
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/player/TrackMapper.kt - Playback service
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/player/PlaybackService.kt
Settings
- Settings screens
features/settings/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/features/settings/screens/SettingsScreen.kt - Settings view model
features/settings/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/features/settings/SettingsViewModel.kt - Preferences API
domain/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/domain/repository/PreferencesRepository.kt - Preferences store
data/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/data/repository/PreferencesRepositoryImpl.kt - About screen
features/settings/src/main/kotlin/com/mateusrodcosta/apps/vidyamusic/features/settings/screens/AboutScreen.kt
Other components
- Listener
- Playlist service
- Media3 player
Connections 22
- Listener → Main activity: opens
- Main activity → Playlist screen: shows
- Main activity → Settings screens: shows
- Main activity → About screen: navigates
- Main activity → Settings view model: reads launch state
- Playlist screen → Playlist view model: forwards actions
- Playlist view model → Available playlists: requests playlists
- Available playlists → Config repository: loads configuration
- Config repository → Asset reader: reads file
- Asset reader → Playlist config: reads
- Playlist view model → Playlist use cases: loads selection
- Playlist use cases → Playlist repository: fetches playlist
- Playlist repository → Playlist service: requests playlist
- Playlist repository → Playlist and tracks: maps response
- Playlist view model → Audio controller API: controls playback
- Audio controller API → Audio controller: implemented by
- Audio controller → Track mapper: maps tracks
- Audio controller → Playback service: connects session
- Playback service → Media3 player: owns player
- Settings screens → Settings view model: forwards changes
- Settings view model → Preferences API: reads and updates
- Preferences API → Preferences store: implemented by