How m4ykey/albly works
Albly is an Android music-discovery and album-collection app. Users enter through the collection screen, navigate to album search, new releases, saved albums, album details, and lyrics, with navigation wiring shown in NavigationRoot. Album and search repositories mediate remote and local data; lyrics has a separate remote-backed feature. The README documents Discogs and Genius credentials but gives little further product detail. Relationships beyond the indexed references and excerpts are omitted where their implementation is not shown.
Main entry points: NavigationRoot.kt Navigation root · AlbumRepositoryImpl.kt Album repository · SearchScreen.kt Search screen · CollectionScreen.kt Collection screen
Components 29
App and navigation
- App entry
app/src/main/java/com/m4ykey/albly/app/MainActivity.kt - Navigation root
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt
Album discovery and library
- Album screens
album/src/main/java/com/m4ykey/album/presentation/detail/AlbumDetailScreen.kt - Album view models
album/src/main/java/com/m4ykey/album/presentation/detail/AlbumDetailViewModel.kt - Album use cases
album/src/main/java/com/m4ykey/album/domain/usecase - Album repository
album/src/main/java/com/m4ykey/album/data/repository/AlbumRepositoryImpl.kt - Album services
album/src/main/java/com/m4ykey/album/data/network/service/AlbumService.kt - New releases
album/src/main/java/com/m4ykey/album/data/network/service/RemoteNewReleaseAlbumService.kt - Release paging
album/src/main/java/com/m4ykey/album/data/paging/NewReleasePagingSource.kt - Album database
album/src/main/java/com/m4ykey/album/data/database/AppDatabase.kt - Album DAO
album/src/main/java/com/m4ykey/album/data/local/dao/AlbumDao.kt - Album storage models
album/src/main/java/com/m4ykey/album/data/local/model/AlbumEntity.kt
Search and lyrics
- Search screen
search/src/main/java/com/m4ykey/search/presentation/SearchScreen.kt - Search view model
search/src/main/java/com/m4ykey/search/presentation/SearchViewModel.kt - Search use cases
search/src/main/java/com/m4ykey/search/domain/usecase/SearchAlbumUseCase.kt - Search repository
search/src/main/java/com/m4ykey/search/data/repository/SearchRepositoryImpl.kt - Search services
search/src/main/java/com/m4ykey/search/data/network/service/SearchService.kt - Search paging
search/src/main/java/com/m4ykey/search/data/paging/SearchAlbumPagingSource.kt - Lyrics screen
lyrics/src/main/java/com/m4ykey/lyrics/presentation/LyricsScreen.kt - Lyrics view model
lyrics/src/main/java/com/m4ykey/lyrics/presentation/LyricsViewModel.kt - Lyrics repository
lyrics/src/main/java/com/m4ykey/lyrics/data/repository/LyricsRepositoryImpl.kt - Lyrics service
lyrics/src/main/java/com/m4ykey/lyrics/data/service/RemoteLyricsService.kt
Collection interface
- Collection screen
collection/src/main/java/com/m4ykey/collection/presentation/CollectionScreen.kt - Collection view model
collection/src/main/java/com/m4ykey/collection/presentation/CollectionViewModel.kt
Shared UI and settings
Other components
- App user
- Discogs API
- Genius API
Connections 22
- App user → App entry: opens app
- App entry → Navigation root: starts
app/src/main/java/com/m4ykey/albly/app/MainActivity.kt - Navigation root → Collection screen: routes to
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Navigation root → Search screen: routes to
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Navigation root → Album screens: routes to
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Navigation root → Lyrics screen: routes to
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Navigation root → Settings: routes to
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Album repository → Album services: calls
album/src/main/java/com/m4ykey/album/data/repository/AlbumRepositoryImpl.kt - Album repository → New releases: calls
album/src/main/java/com/m4ykey/album/data/repository/AlbumRepositoryImpl.kt - Album repository → Release paging: creates
album/src/main/java/com/m4ykey/album/data/repository/AlbumRepositoryImpl.kt - Album repository → Album DAO: reads and writes
album/src/main/java/com/m4ykey/album/data/repository/AlbumRepositoryImpl.kt - Album database → Album DAO: defines
album/src/main/java/com/m4ykey/album/data/database/AppDatabase.kt - Album database → Album storage models: stores
album/src/main/java/com/m4ykey/album/data/database/AppDatabase.kt - Search repository → Search services: calls
search/src/main/java/com/m4ykey/search/data/repository/SearchRepositoryImpl.kt - Search repository → Search paging: creates
search/src/main/java/com/m4ykey/search/data/repository/SearchRepositoryImpl.kt - Lyrics repository → Lyrics service: calls
lyrics/src/main/java/com/m4ykey/lyrics/data/repository/LyricsRepositoryImpl.kt - Search services → Discogs API: queries
search/src/main/java/com/m4ykey/search/data/network/service/SearchService.kt - Lyrics service → Genius API: queries
- Search screen → Album screens: opens album
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Search screen → Lyrics screen: opens lyrics
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Collection screen → Album screens: opens album
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt - Collection screen → Search screen: opens search
navigation/src/main/java/com/m4ykey/navigation/NavigationRoot.kt