2020-07-20 19:05:48 +00:00
|
|
|
package code.name.monkey.retromusic
|
|
|
|
|
2020-08-11 18:29:44 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.albums.AlbumDetailsViewModel
|
|
|
|
import code.name.monkey.retromusic.fragments.artists.ArtistDetailsViewModel
|
|
|
|
import code.name.monkey.retromusic.fragments.genres.GenreDetailsViewModel
|
|
|
|
import code.name.monkey.retromusic.fragments.playlists.PlaylistDetailsViewModel
|
2020-08-11 18:58:14 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.search.SearchViewModel
|
2020-07-20 19:05:48 +00:00
|
|
|
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
|
|
|
import code.name.monkey.retromusic.model.Genre
|
|
|
|
import code.name.monkey.retromusic.model.Playlist
|
2020-07-25 20:22:37 +00:00
|
|
|
import code.name.monkey.retromusic.network.networkModule
|
|
|
|
import code.name.monkey.retromusic.providers.RepositoryImpl
|
|
|
|
import org.eclipse.egit.github.core.Repository
|
|
|
|
import org.koin.androidx.viewmodel.dsl.viewModel
|
|
|
|
import org.koin.dsl.bind
|
2020-07-20 19:05:48 +00:00
|
|
|
import org.koin.dsl.module
|
|
|
|
|
2020-07-25 20:22:37 +00:00
|
|
|
private val dataModule = module {
|
|
|
|
single {
|
|
|
|
RepositoryImpl(get(), get())
|
|
|
|
} bind Repository::class
|
|
|
|
}
|
2020-07-20 19:05:48 +00:00
|
|
|
|
2020-07-25 20:22:37 +00:00
|
|
|
private val viewModules = module {
|
2020-07-20 19:05:48 +00:00
|
|
|
|
|
|
|
viewModel {
|
|
|
|
LibraryViewModel(get())
|
|
|
|
}
|
|
|
|
|
|
|
|
viewModel { (albumId: Int) ->
|
2020-08-11 18:29:44 +00:00
|
|
|
AlbumDetailsViewModel(
|
|
|
|
get(),
|
|
|
|
albumId
|
|
|
|
)
|
2020-07-20 19:05:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
viewModel { (artistId: Int) ->
|
2020-08-11 18:29:44 +00:00
|
|
|
ArtistDetailsViewModel(
|
|
|
|
get(),
|
|
|
|
artistId
|
|
|
|
)
|
2020-07-20 19:05:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
viewModel { (playlist: Playlist) ->
|
2020-08-11 18:29:44 +00:00
|
|
|
PlaylistDetailsViewModel(
|
|
|
|
get(),
|
|
|
|
playlist
|
|
|
|
)
|
2020-07-20 19:05:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
viewModel { (genre: Genre) ->
|
2020-08-11 18:29:44 +00:00
|
|
|
GenreDetailsViewModel(
|
|
|
|
get(),
|
|
|
|
genre
|
|
|
|
)
|
2020-07-20 19:05:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
viewModel {
|
|
|
|
SearchViewModel(get())
|
|
|
|
}
|
2020-07-25 20:22:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
val appModules = listOf(dataModule, viewModules, networkModule)
|